Не удалось получить информацию через SMBus для чипа Atmel
Это моя установка, микросхема Atmel (SAMD20E18A-MUT) шины SM с двумя контактами, подключенными к хост-компьютеру через микросхему SMBus/USB-адаптер CP2112).
На стороне хоста удалось отсканировать SMBus (6) с помощью i2c-tools и увидеть устройство Atmel по адресу ведомого 0x6a.
отправить 1-байтовые данные на устройство $sudo i2cset -y 6 0x6a 0x00 0x00
получить 9 байтов данных sudo i2cdump -y -r 0x00-0x08 6 0x6a
он возвращает все ноль, ожидая получить некоторые данные. У меня вопрос, каким должен быть мой "АДРЕС ДАННЫХ" в i2cset, в настоящее время я использую 0x00. Я смотрю на лист данных Atmel, но не могу понять, какой будет правильный адрес. Что-нибудь, что я должен проверить?
Примечание: другим людям удалось получить ненулевой ответ на том же устройстве, но они используют коммерческие адаптеры Ginkgo SMBU / USB.
1 ответ
После чата с поставщиком устройства необходимо отправить один байт на устройство (без кода команды) и прочитать указанное количество байтов (без кода команды).
$ sudo i2cset -y 6 0x6a 0x00 # SMBus = 6, добавление устройства = 0x6a
$ sudo i2cget -y 6 0x6a 0x00 C# ожидаемые "однобайтовые" данные возвращаются
У меня вопрос: поддерживает ли i2c-tool чтение заданного количества возвращаемых данных или какой-либо другой инструмент его поддерживает? Насколько я понимаю, глядя на спецификацию SMBus, этот тип протокола cmd с обратным чтением не поддерживается (не входит в число поддерживаемых протоколов 15x).