понедельник, 18 марта 2013 г.

Постоянная память данных EEPROM

Микроконтроллер ATmega328P имеет постоянное запоминающее устройство - память EEPROM, имеющая емкость 1024 Байта. При отключении питания и сбросе микроконтроллера все данные, хранящиеся в EEPROM остаются без изменений.

Регистры EEPROM:
  • EEAR (16 бит) - регистр адреса 
  • EEDR - регистр данных
  • EECR - регистр управления
Регистр EEARH:
7
6
5
4
3
2
1
0
-
-
-
-
-
-
EEAR9
EEAR8

Регистр EEARL:
7
6
5
4
3
2
1
0
EEAR7
EEAR6
EEAR5
EEAR4
EEAR3
EEAR2
EEAR1
EEAR0

Для управления прерываниями, а также чтением и записью в EEPROM используется регистр EECR:
7
6
5
4
3
2
1
0
-
-
EEPM1
EEPM0
EERIE
EEMPE
EEPE
EERE

Биты EEPM1 (5) и EEPM0 (4) регистра EECR управляют режимами обновления EEPROM:
  • 00 - стирание старого значения и запись нового (3.4 мс)
  • 01 - только стирание старого значения (1.8 мс)
  • 10 - только запись нового значения (1.8 мс)
  • 11 - резерв
Бит EERIE (3) регистра EECR разрешает прерывания по завершению записи в EEPROM при записи в него 1.
Бит EEMPE (2) регистра EECR разрешает запись в EEPROM если в него записать 1 (сбрасывается в 0 через 4 машинных цикла).
Бит EEPE (1) регистра EECR управляет записью в EEPROM (если записать в него 1, то будет произведена запись данных из регистра EEDR в EEPROM по адресу EEAR).
Бит EERE (0) регистра EECR управляет чтением в EEPROM (если записать в него 1, то будет произведено чтение данных из EEPROM по адресу EEAR в регистр EEDR ).