i2cdetect不会显示设备,但它就在那里

时间:2014-12-24 06:27:19

标签: linux i2c

只是一个简单的问题。在我的i2c bus 0上,我有两个设备,0x320x20

当我使用i2cdetect时,只显示其中一个。

# ./i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:       -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- 32 -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

奇怪的是,我可以使用i2cseti2cget向他们两个发送和接收消息。我想这不是一个技术问题,而是技术上的好奇心 - 为什么0x20假装没人在家?

谢谢!

1 个答案:

答案 0 :(得分:5)

各种I2C设备在读/写字节时的行为可能不同。

例如,某些人可能期望使用write_then_read命令,并且不会确认独立的读取命令。其他人可能希望读/写至少16位数据,否则交易失败。

i2cdetect可以使用不同的探测方法,例如读/写命令,通过命令行选项进行调整。你可以尝试-r或-q。

如果这不起作用,请查看命令实现和设备的数据表,并确保可以进行探测。