Не удалось получить информацию через SMBus для чипа Atmel - PullRequest
0 голосов
/ 07 декабря 2018

Это мои настройки, чип 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.enter image description here

1 Ответ

0 голосов
/ 13 декабря 2018

После чата с поставщиком устройства необходимо отправить один байт на устройство (без кода команды) и прочитать указанное количество байтов (без кода команды).

$ sudo i2cset -y 6 0x6a0x00 # SMBus = 6, добавление устройства = 0x6a

$ sudo i2cget -y 6 0x6a 0x00 c # ожидаемые «однобайтовые» данные возвращаются

У меня вопрос, поддерживает ли инструмент i2cчитать заданное количество возвращаемых данных или какой-либо другой инструмент, поддерживающий его?Насколько я понимаю, глядя на спецификацию SMBus, этот тип протокола cmd с обратным чтением не поддерживается (не входит в число поддерживаемых протоколов 15x).

...