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])

Изменено: