Beagle Bone Black I2C2问题

时间:2020-01-10 16:24:30

标签: i2c beagleboneblack

我在将I2C sensor与Beagle Bone Black(BBB)配合使用时遇到麻烦。 BBB正在运行专门针对BBB的新刷新的18.04 Ubuntu映像。

我使用以下引脚将传感器(VIN,GND,SCL,SDA)连接到BBB上相应的I2C2引脚(4、2、19、20)。

BBB Pinout 该传感器应该使用地址0x40,但是扫描I2C2(使用i2cdetect -r 2)不会显示该传感器。

i2cdetect -r 2 output

我已经用两个单独的传感器进行了测试,因为我最初以为我可能以某种方式油炸了原始传感器,但是结果是相同的。实际上,当根本没有任何连接时,运行I2C2扫描命令会产生完全相同的结果。

我在许多地方都读到默认情况下可能不会启用I2C2,但是我认为在我的情况下它已启用,因为我可以扫描I2C2而不会出错。这个假设不正确吗?再次,这是一个新刷新的BBB,并且我尚未启用/禁用任何功能-它应该处于默认状态。

我还验证了传感器和BBB之间的电线连接。芯片上VIN和GND之间的电压为3.3V,因此肯定已通电。

为什么不能使用BBB连接到I2C传感器?

2 个答案:

答案 0 :(得分:1)

可能是您所使用的源已过时或不是i2c的可行条目。

此外,您可以使用此命令确保i2c2引脚可用:

config-pin p9.21 i2c

config-pin p9.22 i2c

这也可能起作用。如果这不起作用,请用您的整个来源答复。

赛斯

P.S。另外,如果您有时间,并且软件没有设置自己的i2c库,则可能需要使用i2c库。他们有smbus2,您仍然可以在其中安装pip和其他i2c库。

答案 1 :(得分:0)

这是您应检查的几件事(以随机顺序)。

列出i2cdetect -l内的所有I2C总线,然后全部尝试。根据平台的不同,Linux中的i2c总线号可能与数据表和引脚排列中使用的外设号不同。例如。 “ I2C2”可能是Linux中的总线i2c-1或i2c-3)。

使用示波器或逻辑分析仪查看是否正在驱动SCL和SDA线。如果不是,请检查上面的公交车号。如果是,则检查设备是否给出ACK;如果不行,则其他任何操作将永远无法进行:仔细检查芯片从机地址。您可以使用pulseview购买和使用便宜的逻辑分析仪。

只需为您的芯片加载Linux驱动程序(有关如何从用户空间进行操作,请参见the kernel docs进行快速测试)。然后查看检查设备是否出现,或者在进行探测时使用dmesg查看任何内核错误消息。

相关问题