The lackluster response here made me wonder this.
我一直背负着一个设备 (Analog Devices 525x)那(来自数据表,第 16 页):
disables the I2C interface during the internal [EEPROM] write cycle.
这似乎不公平,因为“我现在要离开沙发了,所以暂时不要使用它,因为我让一个人撕裂了座垫”。老实说,为什么那会是我的问题?
无论如何,数据表建议确认轮询是答案 - 进入 Linux 内核...Linux GPIO bit bashed I2C 驱动程序是否提供执行此操作的机制?本质上发送一个地址写入位设置并继续这样做,直到出现 ACK。
我在 ARM 上使用 2.6.14,带有向后移植的 GPIO 位攻击驱动程序(我认为来自 2.6.19)。
最佳答案
看起来不太现成,但是
您可能需要查看像 Flag I2C_M_NOSTART 这样的协议(protocol)修改标志 只是不同,在你的补丁中。 至少有一种方法可以做到(诚然是一种困惑的方式)
为了您的利益,我希望您不需要将普通的 i2c 设备放在同一总线上。
老实说,硬件供应商一直在做这样的事情。只要问题成为您的问题,他们就会认为该问题“已解决”。
我看到那里有很多损坏的 I2C,您可以让其他人的生活更美好。
关于linux - Linux 内核中的 I2C 写确认轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1195659/