CircuitPython
Для работы с модулем EEPROM используем библиотеку adafruit_24lc32 (ссылка в конце урока). Всё, что нам нужно сделать для её установки — это скопировать файл adafruit_24lc32.mpy в папку lib на накопителе CIRCUITPY.
Более подробно о работе с библиотеками CircuitPython мы писали в одном из ранних наших уроков: Библиотеки для CircuitPython
УСТАНОВКА ЗАВИСИМОСТЕЙ
Чтобы библиотека adafruit_24lc32 заработала, необходимо будет добавить еще две «зависимости»:
- adafruit_bus_device
- adafruit_register
Все эти библиотеки есть в сборнике от Adafruit. Точно также, копируем их на накопитель CIRCUITPY.
Программа
Для составления программы используем среду разработки Mu.
Пусть, тестовая программа сначала запишет один байт в EEPROM, а затем считает его. То же самое проделает с группой байт. Начнём с подключения всех необходимых библиотек. Помним, что в python это делается с помощью команды import.
Кроме adafruit_24lc32 нам будут нужны еще одна библиотека:
- board — хранит названия всех контактов платы контроллера и их синонимы.
import board
import adafruit_24lc32
Затем создаём объект I2C, который организует работу с шиной. Следом — объект класса EEPROM_I2C, в котором описаны нужные для работы с модулем функции.
i2c = board.I2C()
eeprom = adafruit_24lc32.EEPROM_I2C(i2c)
Библиотека отображает весь объём памяти в обычный список. Запись в ячейку памяти осуществляется присваиванием элементу данного списка. Например, меняем содержимое ячейки с адресом 127:
eeprom[127] = 89
Вся программа полностью:
import board
import adafruit_24lc32
i2c = board.I2C()
eeprom = adafruit_24lc32.EEPROM_I2C(i2c)
# объём памяти в битах
print("length: {}".format(len(eeprom)))
# запись в EEPROM одного байта
eeprom[0] = 4
# чтение из EEPROM одного байта
print(eeprom[0])
# запись в EEPROM группы байт
eeprom[0:4] = [9, 3, 8, 1]
# чтение из EEPROM группы байт
print(eeprom[0:4])