Найти тему
Будни инженера

Энергонезависимая память AVR

В современных устройствах на микроконтроллерах довольно часто возникает необходимость сохранения данных и после выключения питания. Обычно это какие-то настройки. Например, уставки температуры в терморегуляторах.

Для решения подобных задач в микроконтроллерах AVR используется энергонезависимая память, или EEPROM - Electrically Erasable Programmable Read-Only Memory - электрически стираемое перепрограммируемое ПЗУ (ЭСППЗУ), один из видов энергонезависимой памяти (таких, как PROM и EPROM). Память такого типа может стираться и заполняться данными до миллиона раз.

Такая память может быть выполнена в виде внешней микросхемы. Однако почти все современные микроконтроллеры имеют встроенную (внутреннюю) энергонезависимую память. Поскольку в простых устройствах обычно не требуется большое количество хранимых данных, то, например, микроконтроллеры AVR имеют EEPROM относительно небольшого объёма - от 64 Байт до 8 КБ.

EEPROM - это необычная память. Поэтому микроконтроллер обращается к ней не так, как, например, к оперативной памяти. Для центрального процессора не существует адресного пространства EEPROM. К этому виду памяти процессор обращается с помощью регистров ввода-вывода. Для микроконтроллеров с объёмом энергонезависимой памяти до 256 байт таких регистров всего три:

  • EEAR - регистр адреса EEPROM
  • EEDR - регистр данных EEPROM
  • EECR - регистр управления EEPROM

Если объём EEPROM в микроконтроллере превышает 256 байт, то вместо одного регистра адреса (EEAR) у такого МК будут два регистра: EEARH и EEARL.

Регистры доступа к EEPROM имеют следующие адреса:

  • EEAR - $1E
  • EEARL - $1E
  • EEARH - $1F
  • EEDR - $1D
  • EECR - $1C

Регистры адреса EEAR (или EEARH, EEARL) доступны только для записи. При помощи этих регистров микроконтроллер выбирает ячейку, куда нужно записать или откуда нужно прочитать данные.

Регистр данных (EEDR) работает как на запись, так и на чтение. Через этот регистр в EEPROM поступает записываемый байт. Через него же процессор получает байт при чтении из EEPROM.

Регистр управления (EECR) определяет режимы работы. Именно через него подаются команды чтения и записи EEPROM.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…