Я наблюдаю следующее поведение на платформе Intel с designware i2c (семейство Baytrail).
$ i2cdump -y1 7 0x4a
00: aa 00 bb cc ...
i2ctransfer -y1 7 w1@0x4a 0x00 r1
0xaa
i2ctransfer -y1 7 w1@0x4a 0x01 r1
0x00
i2ctransfer -y1 7 w1@0x4a 0x02 r1
0xbb
i2ctransfer -y1 7 w1@0x4a 0x03 r1
0xcc
, но когда я пытаюсь прочитать несколько байтов подряд, похоже, что возвращаются неверные данные:
i2ctransfer -y1 7 w1@0x4a 0x00 r4
0x24 0xa0 0x24 0xa0
Почему данные не совпадают? Я что-то пропустил? Это поведение устройства зависит? Или зависимый хост-контроллер i2c?