Блокировка записи i2cset не работает

Я пытаюсь использовать инструменты i2c для чтения и записи на устройства I2C. Блочная запись i2cset не работает. Я получаю сообщение «Ошибка: слишком много аргументов!»

Запись байтов и слов действительно работает. Что именно подразумевается под блоком? Это 256 байт?

Команда, я использую это - ./i2cset -y 0x01 0x55 0x00 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0x00 0x9A 0x00 0xEC 0x00 i

0x01 - по шине #, 0x55 - это адрес устройства #, 0x00 - это начальный адрес регистра #, i - для блочной записи.


person hithesh    schedule 27.05.2018    source источник
comment
Вы пишете в допустимые диапазоны регистров? Не многие устройства имеют такое количество регистров.   -  person samuelnj    schedule 06.06.2018
comment
да. Оказывается, некоторые процессоры не поддерживают операции чтения / записи блоков.   -  person hithesh    schedule 07.06.2018


Ответы (1)


Попробуйте i2ctransfer

i2ctransfer [-f] [-y] [-v] [-a] i2cbus desc [data] [desc [data]] ... 
i2ctransfer 1 w54@0x55 0x00 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0x9A 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0xCD 0x00 0x9A 0x00 0xEC 0x00
person betontalpfa    schedule 03.12.2020