В ADB Shell PIO не принимает I2C-устройство - PullRequest
1 голос
/ 25 марта 2019

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

1 Ответ

2 голосов
/ 26 марта 2019

Я правильно подключил магнитометр к 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

Возможно, в этой команде есть пара неправильных вещей, в соответствии с таблицей HMC5883L :

  1. Устройство использует основанный на регистре доступ, что означает, что необработанное чтение может завершиться неудачей.Вы должны использовать команду типа read-reg-byte для проверки связи с устройством.
  2. Адрес устройства I2C - 0x1E.Таблица данных дает вам заполненный 8-битный формат адреса в полном байте (который равен 0x3D и 0x3C, в зависимости от бита R / W), что немного сбивает с толку.

Таким образом, лучшая команда для отправки и проверки вашего устройства будет такой, которая должна сообщать значение регистра STATUS:

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

Если вы по-прежнему получаете ту же ошибку с указанным вышекоманду, проверьте схему выводов , чтобы убедиться, что вы подключены к правому порту I2C (I2C1 против I2C2).

...