i2cdetect没有捕获任何地址。如何判断I2C是否正常工作?


8

我很难将Raspberry Pi与任何I2C传感器接口。我已经阅读了很多有关如何使I2C驱动程序正常工作的教程,并且我的连接正确。尽管如此,i2cdetect(或任何基于I2C的代码)仍无法获得任何地址。

该问题有哪些必要的疑难解答步骤?我如何知道销钉是否损坏?

我使用MPU6050和MAG3110作为示例设备。

Answers:


4

您是否正在查看正确的I2C总线,在版本1和版本2之间,GPIO头已从使用I2C 0更改为I2C 1,请参阅eLinux-RPi底层外设,以了解各种引脚更改的详细信息。

i2cdetect 0
i2cdetect 1

应该分别扫描两个总线,如果您的设备在呼叫之一之后出现,则表明它们正在运行。

如果您无法使用示波器,则可以监控引脚并i2cdetect再次运行。您正在寻找电压电平,以在两个引脚上的高电平(3.3v)和低电平(0v)之间产生脉冲。

I2C跟踪示例

如果您确定这些引脚不起作用,则尝试将它们用作简单的GPIO引脚(版本1、0和1用于版本2,将2和3用于版本2)并手动将其驱动为高电平,请使用以下引脚检查它们是否为高电平(3.3v)万用表,然后将其驱动为低电平并检查其低电平(0v)。

如果您不知道如何手动驱动GPIO引脚,请参见此处的Python示例和此处的BASH示例。

如果它们没有在命令上上下波动,则引脚有问题,如果引脚确实存在问题,但是您仍然无法使I2C正常工作,那么您的问题将需要进一步调查。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.