问题标签 [i2c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 错误定义在哪里?用于 i2c 的示例 linux c/c++ 程序
当经典的 linux c/c++ 软件出现问题时,我们有一个神奇的变量 errno,它为我们提供了刚刚出错的线索。
但是这些错误是在哪里定义的?
让我们举个例子(它实际上是 Qt 应用程序的一部分,因此是 qDebug())。
下一步是查看 errno 是什么,以便我们决定是退出还是尝试解决问题。
所以我们可能会在这一点上添加一个 if 或 switch。
我的问题是在哪里可以找到“9”代表的错误?我不喜欢我的代码中那种神奇的数字。
/谢谢
sleep - Failed TWI transaction after sleep on Xmega
we've had some troubles with TWI/I2C after waking up from sleep with the Atmel Xmega256A3. Instead of digging into the details of TWI/I2C we've decided to use the supplied twi_master_driver from Atmel attached to AVR1308 application note.
The problem is one or a few failed TWI transactions just after waking up from sleep. On the I2C-bus connected to the XMega we have a few potentiometers, a thermometer and an RTC. The XMega acts as the only master on the bus.
We use the sleep functions found in AVRLIBC:
The XMega as woken from sleep by the RTC which sets a pin high. After the XMega is woken from sleep, we want to set a value on one of the potentiometers, but this fails. For some reason, the TWI-transaction result is TWIM_RESULT_NACK_RECEIVED instead of TWIM_RESULT_OK in the first transaction. After that everything seems to work again.
Have we missed anything here? Is there any known issues with the XMega, sleep and TWI? Do we need to reset the TWI of clear any flags after waking from sleep?
Best regards Fredrik
android - 基于 Tegra 的机器人平台
我正在研究开发运行 Android 的基于 Tegra 的机器人平台的可能性。为此,我需要能够进行串行、I2C 和可能的 PWM 通信,Tegra 平台是否允许这样做?Android 是否支持访问这种硬件级别的通信?
c - 使用 i2c 总线访问驱动程序时出现未知的核心转储
目前我正在为 Arm 9 嵌入式应用程序开发两个驱动程序。它们都是 i2c 驱动程序,每个都使用 IO 扩展器 pcf8575。我已经独立测试了驱动程序,但是当我将它们都编译到内核中并运行我的主应用程序时,我得到了下面的核心转储。它通常不会在第一次驱动程序访问期间发生。这似乎是随机发生的。当我的驱动程序调用 i2c 驱动程序在 I2c 总线上传输时肯定会发生这种情况(i2c_master_send(client, &buff[0], count) )。我将附上我的两个驱动程序的主要文件。它们很相似,都非常简单。我已经独立地对它们进行了很多测试。通过在两个非常不同的硬件上获得相同的结果,我已将其排除为硬件问题。我想我 我什至不确定它何时说内核分页请求甚至开始查找。我很难相信问题出在 i2c-core 驱动程序中,但这是它正在死去的代码部分。
这是pcf8575 lcd驱动程序文件(另一个驱动程序几乎是一个剪切和粘贴,它被设置为读取而不是写入)
c - i2c 设备的 linux 驱动程序——读取两个字节
我正在尝试为似乎与典型设备略有不同的 I2C 设备编写 Linux 驱动程序。具体来说,我需要连续读取两个字节,中间不发送停止位,如下所示:
我已经研究了几种方法,包括 i2c_transfer()、i2c_master_send() 和 i2c_master_recv(),但我不确定它们是否支持这些。有没有什么方法可以直接使用这些功能而不是非常痛苦?到目前为止,我发现的文档对此事还不是很清楚。
EDIT#1:添加符号键使其可读。礼貌http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/i2c/i2c-protocol
linux - 如何访问 i2c 设备驱动程序节点
情况一:
我有一个 i2c 芯片驱动程序作为 linux 内核的一部分。我可以从内核启动消息中验证 i2c 芯片驱动程序是否在内核中(我的芯片驱动程序是 mma8450)
dmesg:
我也可以在(0x1c 是芯片的 i2c 地址)中看到这个驱动程序
我在 /dev 接口中看不到此驱动程序节点。我的问题是如何在 /dev 中创建此设备的节点,以便我可以在用户程序中访问此设备?
情况2:
我创建了相同芯片驱动程序的模块并且没有使其成为内核的一部分。我可以使用 insmod mma8450 加载此模块,我如何创建此设备的节点,因为我没有它的主要/次要编号?(我在 mma8450 源代码中看不到分配给此驱动程序的主要和次要编号)
任何帮助表示赞赏
问候
linux - 在 linux 中与 i2c 设备通信时遇到问题
我在与 linux 中的 i2c 设备通信时遇到问题。该设备连接到通常显示为 /dev/i2c-0 的 SMBus。我的驱动程序的 init 函数被调用,驱动程序通过 i2c_add_driver 注册,但是驱动程序永远不会被探测。
在我的硬件板的初始化函数中,我调用了 i2c_register_board_info(n, i2c_board_info, array_size)。这里 n 应该是 0 以便在 SMBus 上注册设备,但是无论我将 n 设置为什么,都会导致 SMBus 显示为 /dev/i2c-(n + 1)。
有任何想法吗?
c# - I2CDevice.CreateReadTransaction() 和 new I2CDevice.I2CReadTransaction() 有什么区别?
我正在研究.NET MF I2C API,我有点困惑。似乎有多种方法可以创建 I2C 事务。
我可以使用I2CDevice.CreateReadTransaction方法,也可以简单地创建一个新的I2CDevice.I2CReadTransaction对象。我很困惑有什么区别。两者都采用相同数量的参数。
linux-kernel - 如何修补 linux 内核以添加陀螺仪支持
我正在尝试将 Invensense 的 MPU3000/3050 与嵌入式 linux(基于 ARM 的 LPC3141 板,嵌入式艺术家)一起使用。我在网上找到了这个有趣的补丁
https://patchwork.kernel.org/patch/703991/
如何在我的内核中实现它?