Обращение к EEPROM ведется посредством регистров расположенных в пространстве I/O. Время обращения при записи составляет от 2,5 до 4 мс, в зависимости от напряжения VCC. Однако существует специальная функция, которая позволяет пользовательскому ПО обнаруживать момент, когда можно начинать запись следующего байта - для индикации момента готовности EEPROM к записи новых данных может быть установлено специальное прерывание по завершению записи EEPROM (EEPROM Write Complete). Случайная запись в EEPROM предотвращается выполнением специальной процедуры, показанной подробнее в описании регистра управления EEPROM.
После процедуры записи в EEPROM CPU, прежде чем начать выполнение следующей команды, останавливается на два тактовых цикла. При чтении EEPROM CPU останавливается на 4 тактовых цикла.
Регистр адреса EEPROM- EEARH, EEARL - (EEPROM Address Register)
Биты
|
|
$1F ($3F) $1E ($3E)
| -
| -
| -
| -
| EEAR11
| EEAR10
| EEAR9
| EEAR8
| EEAR7
| EEAR6
| EEAR5
| EEAR4
| EEAR3
| EEAR2
| EEAR1
| EEAR0
|
| EEARH EEARL
|
|
|
|
Чтение/Запись
| R
| R
| R
| R
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
|
Начальное состояние
|
|
|
Посредством регистров адреса EEARH и EEARL определяется адрес в пространстве адресов EEPROM емкостью 2 К/4 К. Байты данных EEPROM адресуются линейно в пределах от 0 до 2047/4095. Микроконтроллер ATmega603 оснащен EEPROM с адресным пространством 2 К и бит I/O EEAR11 при чтении всегда будет в состоянии 0.
Регистр данных EEPROM - EEDR - (EEPROM Data Register)
Биты
|
|
$1D1 ($3D)
|
| EEDR
|
Чтение/Запись
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
| R/W
|
|
|
Начальное состояние
|
|
|
- Bits 7..0 - EEDR7..0: EEPROM Data - Данные EEPROM
В процессе выполнения операции записи в регистре EEDR содержатся данные, записываемые в EEPROM по адресу, задаваемому регистром EEAR. При чтении регистр EEDR содержит данные, считываемые из EEPROM по адресу, определяемому EEAR.