在 ADB Shell 中,PIO 未拾取 I2C 设备

In ADB Shell, PIO is not picking up I2C device

ADB PIO 未拾取 I2C 设备(HMC5883L 磁力计)。

我已将磁力计正确连接到 VCC、GND、SDA 和 SCL。然后在 adb shell 内我使用 pio i2c I2C1 0x3D read-raw 1 它给了我 [WARNING:client_errors.cc(35)] error 6: No such device or address

我想知道我遗漏了什么,如有任何帮助,我们将不胜感激!

Stats:
Android-Things
NXP i.MX7d on PICO-Pi
HMC5883L 3 Axis Magnetometer on I2C
Android Studio - Command Line ADB

I have the magnetometer connected correctly to VCC, GND, SDA & SCL. Then within adb shell I use pio i2c I2C1 0x3D read-raw 1 and it's giving me [WARNING:client_errors.cc(35)] error 6: No such device or address

根据 HMC5883L datasheet:

,此命令可能存在一些问题
  1. 设备使用基于寄存器的访问,这意味着原始读取可能会失败。您应该使用 read-reg-byte 之类的命令来测试与设备的通信。
  2. I2C 设备地址为0x1E。数据表以完整字节的形式为您提供了地址的完整 8 位格式(即 0x3D0x3C,具体取决于 R/W 位),这有点令人困惑。

因此,发送和测试设备的更好命令是这个命令,它应该报告 STATUS 寄存器的值:

$ pio i2c I2C1 0x1E read-reg-byte 0x09

如果您仍然收到与上述命令相同的错误,请检查 pinout diagram 以确认您连接到正确的 I2C 端口(I2C1 与 I2C2)。