Бит 7 — в AT90S2313 зарезервирован и всегда читается как 0.
Биты 6…0 — EEAR6…0 — адрес EEPROM. Адресный регистр EEPROM задает адрес в 128-байтовом пространстве EEPROM. Байты данных EEPROM адресуются линейно в диапазоне 0…127.
Рис. 2.37. Регистр данных EEPROM — EEDR
Биты 7…0 — EEDR7…0 — Данные EEPROM. При записи регистр EEDR содержит данные, которые должны записываться в EEPROM по адресу, находящемуся в регистре EEAR. После операции чтения в этот регистр записываются данные, прочитанные из EEPROM, по адресу, заданному в регистре EEAR.
Рис. 2.38. Регистр управления EEPROM — EECR
Биты 7…3 — в AT90S2313 зарезервированы и всегда читаются как 0.
Бит 2 — EEMWE — управление разрешением записи. Этот бит определяет, будут ли записаны данные при установке EEWE. Если бит EEMWE установлен, при установке EEWE данные записываются по выбранному адресу EEPROM. Если этот бит сброшен, установка EEWE не имеет эффекта. После программной установки этот бит сбрасывается аппаратно через четыре такта процессора.
Бит 1 — EEWE — разрешение записи в EEPROM. Сигнал EEWE является стробом записи в EEPROM. После установки правильных адреса и данных для записи в EEPROM необходимо установить бит EEWE. При записи 1 в бит EEWE должен быть установлен бит EEMWE, тогда происходит запись в EEPROM. Для записи в EEPROM должна соблюдаться следующая последовательность:
1. Ждать обнуления EEWE.
2. Записать адрес в EEAR.
3. Записать данные в EEDR.
4. Установить в 1 бит EEMWE.
5. Не позже чем через 4 такта после установки EEMWE установить EEWE.
Универсальный асинхронный приемопередатчик 55
После того, как время записи истечет (примерно 2,5 мс для Vcc = = 5 В и 4 мс для Vcc = 2,7 В), бит EEWE очищается аппаратно. Программист может проверять этот бит и ожидать его установки в ноль перед тем, как записывать следующий байт. При установке EEWE микроконтроллер останавливается на два цикла перед исполнением следующей команды.
Бит 0 — EERE — разрешение чтения из EEPROM. Сигнал EERE является стробом чтения из EEPROM. После установки нужного адреса в регистре EEAR должен быть установлен бит EERE. После того как бит EERE будет аппаратно очищен, затребованные данные будут находиться в регистре EEDR. Чтение EEPROM занимает одну команду и не требует отслеживания бита EERE. После установки бита EERE микроконтроллер останавливается на 4 цикла перед тем, как будет выполнена следующая команда. Перед чтением пользователь должен проверить состояние бита EEWE. Если изменять содержимое регистров EEPROM во время операции записи в EEPROM, запись в ячейку памяти прерывается и результат операции записи становится неопределенным.
2.8. Универсальный асинхронный приемопередатчик
Микроконтроллер AT90S2313 имеет встроенный универсальный асинхронный приемопередатчик (UART).
Основные характеристики UART:
• генерация произвольных значений скорости;
• высокая скорость даже при низких тактовых частотах;
• 8 или 9 битов данных;
• фильтрация шума;
• определение переполнения;
• детектирование ошибки кадра;
• определение неверного стартового бита;
• три раздельных прерывания — завершение передачи, очистка регистра передачи и завершение приема.
Структурная схема узла передачи данных UART показана на рис. 2.39.
Рис. 2.39. Структурная схема узла передачи данных UART
Передача данных инициируется записью передаваемых данных в регистр ввода/вывода данных UART — UDR. Данные пересылаются из UDR в сдвиговый регистр передатчика, когда:
• новый символ записывается в UDR после того, как был выдвинут стоповый бит для предыдущего символа. При этом сдвиговый регистр загружается сразу;
• новый символ записывается в UDR до того, как выдвинут стоповый бит для предыдущего символа. При этом сдвиговый регистр записывается сразу после того, как будет выдвинут стоповый бит предыдущего символа.
При этом в регистре состояния UART — USR устанавливается бит UDRE — признак очистки регистра данных. Когда этот бит установлен, UART готов к приему следующего символа. При перезаписи UDR в 10(11) — разрядный сдвиговый регистр бит 0 сдвигового регистра обнуляется (стартовый бит), а бит 9 или 10 устанавливается (столовый бит). Если выбрано 9-битовое слово данных (установлен бит CHR9 в регистре UCR), бит ТХВ8 из UCR переписывается в 9-й бит сдвигового регистра передатчика.