Чтение блока python cmbus2, начиная со второго адреса памяти в EEPROM

Я взаимодействую с 24LC512 и 47C16 EEProm/EERam

Я сохранил несколько байтов, начиная с местоположения 0 на обоих чипах.

на 24LC512 я получаю эти результаты - обратите внимание, когда я выполняю чтение блока, используя bus.read_i2c_block_data, он начинается со 2-й ячейки памяти. Когда я сбрасываю указатель обратно на 0 и читаю с помощью bus.read_byte, он считывает местоположение в 0 и правильно увеличивает указатель на 1

>>> bus.write_byte_data(0x54, 0, 0)
>>> bus.read_byte(0x54)
45
>>> bus.write_byte_data(0x54, 0, 0)
>>> bus.read_i2c_block_data(0x54, 0, 6)
[46, 71, 65, 32, 48, 255]
>>> bus.write_byte_data(0x54, 0, 0)
>>> bus.read_byte(0x54)
45
>>> bus.read_byte(0x54)
46
>>> bus.read_byte(0x54)
71
>>> bus.read_byte(0x54)
65
>>> bus.read_byte(0x54)
32
>>> bus.read_byte(0x54)
48

Я получаю те же результаты на 47C16

>>> bus.write_byte_data(0x50, 0, 0)
>>> bus.read_i2c_block_data(0x50, 0, 6)
[46, 71, 70, 32, 49, 255]
>>> bus.write_byte_data(0x50, 0, 0)
>>> bus.read_byte(0x50)
45
>>> 
>>> bus.read_byte(0x50)
46
>>> bus.read_byte(0x50)
71
>>> bus.read_byte(0x50)
70
>>> bus.read_byte(0x50)
32
>>> bus.read_byte(0x50)
49

Похоже, я не правильно использую read_i2c_block_data - хотя это то, что я прочитал в документации. Что я делаю неправильно??

спасибо за любые указатели, которые вы можете предоставить

0 ответов

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