Обращение к EEPROM при чтении/записи
Обращение к 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.
Регистр управления EEPROM - EECR - (EEPROM Control Register)
Биты
|
|
$1C ($3C)
| -
| -
| -
| -
| EERIE
| EEMWE
| EEWE
| EERE
|
| EECR
|
Чтение/Запись
|
|
|
Начальное состояние
|
|
|
- Bits 7..4 - Res: Reserved bits - Зарезервированные биты
Эти биты в микроконтроллерах ATmega603/103 зарезервированы и при считывании всегда покажут состояние 0. - Bit 3 - EERIE: EEPROM Ready Interrupt Enable - Разрешение прерывания по готовности EEPROM
При установленных в состояние 1 бите EERIE и I-бите регистра SREG разрешается прерывание по готовности EEPROM. При очищенном бите EERIE прерывание запрещено. Запрос прерывания по готовности EEPROM при очищенном бите EEWE генерируется непрерывно. - Bit 2 - EEMWE: EEPROM Master Write Enable - Управление разрешением записи EEPROM
Бит EEMWE определяет, будет ли установленный в состояние 1 бит EEWE разрешать запись в EEPROM. При установленном в состояние 1 бите EEMWE установка бита EEWE приведет к записи в EEPROM по заданному адресу. Если же бит EEMWE будет находиться в состоянии 0, то установка бита EEWE никакого эффекта не окажет. Установленный программным путем бит EEMWE аппаратно очищается через четыре тактовых цикла. См. описание процедуры записи EEPROM в описании бита EEWE. - Bit 1 - EEWE: EEPROM Write Enable - Разрешение записи EEPROM
Сигнал разрешения записи EEPROM EEWE (EEPROM Write Enable Signal) является стробом записи в EEPROM. Запись установленных данных по установленному адресу EEPROM выполняется по установке бита EEWE. При этом бит EEMWE обязательно должен быть в состоянии 1, иначе запись не произойдет. Процесс записи EEPROM выполняется следующей процедурой (очередность выполнения пунктов 2 и 3 значения не имеет): -
- Подождать сброса бита EEWE в состояние 0.
- Записать новый адрес в EEAR (при необходимости).
- Записать новые данные (при необходимости).
- Установить в состояние 1 бит EEMWE регистра EECR.
- В течение четырех тактовых циклов после установки EEMWE установить в состояние 1 бит EEWE.
По истечении времени записи (типовое значение 2,5 мс при V CC = 5 В или 4 мс при V CC = 2,7 В) бит EEWE аппаратно очищается. Пользовательское программное обеспечение может тестировать состояние этого бита для определения момента сброса его в 0, чтобы начать запись следующего байта. После установки бита EEWE CPU, прежде чем начать выполнение следующей команды, останавливается на два тактовых цикла.
Дата добавления: 2015-07-18; просмотров: 64 | Нарушение авторских прав
Читайте в этой же книге: Регистр управления коэффициентом деления частоты кварцевого генератора - XTAL Divide Control Register - XDIV | Сброс по включению питания | Внешнее управление сбросом | Обработка прерываний | Время отклика на прерывание | Таймеры/счетчики | Регистры сравнения выхода таймеров/счетчиков | Асинхронная работа таймера/счетчика0 | Разрядный таймер/счетчик1 | Регистры сравнения выхода таймера/счетчика1 |
mybiblioteka.su - 2015-2024 год. (0.007 сек.)