i2cdetect не показывает устройство, но оно есть

Просто быстрый вопрос. На моем i2c bus 0У меня есть два устройства, 0x32 а также 0x20,

Когда я использую 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: -- -- -- -- -- -- -- --

Странно то, что я могу использовать i2cset а также i2cget отправлять и получать сообщения на них обоих просто отлично. Я полагаю, что это не техническая проблема, а техническое любопытство - почему 0x20 делать вид, что никого нет дома?

Спасибо!

1 ответ

Решение

Различные устройства I2C могут вести себя по-разному при чтении / записи байтов.

Некоторые, например, могут ожидать команду write_then_read и не будут признавать отдельную команду чтения. Другие могут ожидать, что по крайней мере 16 бит данных будут прочитаны / записаны, в противном случае транзакция завершится неудачно.

i2cdetect может использовать различные подходы для исследования, такие как команда чтения / записи, настроенная с помощью параметров командной строки. Вы можете попробовать -r или -q.

Если это не сработает, посмотрите на реализацию команды и таблицу данных вашего устройства, и убедитесь, что зондирование возможно.

Другие вопросы по тегам