C: Загрузка байта данных
- Установить биты XA1 и XA0 в состояние 0 и 1, соответственно. Эта установка разрешает загрузку данных.
- Установить в битах PB(7 - 0) младший байт данных ($00 - $FF).
- Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается байт данных.
D: Фиксация младшего байта данных
- Установить бит BS1 в состояние 0. Эта установка выбирает младший байт данных.
- Подать на вывод PAGEL положительный импульс. Этим импульсом загружается байт данных.
E: Загрузка байта данных
- Установить биты XA1 и XA0 в состояние 0 и 1, соответственно. Эта установка разрешает загрузку данных.
- Установить в битах PB(7 - 0) старший байт данных ($00 - $FF).
- Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается байт данных.
F: Фиксация старшего байта данных
- Установить бит BS1 в состояние 1. Эта установка выбирает старший байт данных.
- Подать на вывод PAGEL положительный импульс. Этим импульсом загружается байт данных.
G: Пункты с B по F повторяются 128 раз до полного заполнения буфера страницы.
H: Загрузка старшего байта адреса
- Установить биты XA1 и XA0 в состояние 0 и 0, соответственно. Эта установка разрешает загрузку адреса.
- Установить бит BS1 в состояние 1. Эта установка выбирает старший байт адреса.
- Установить в битах PB(7 - 0) старший байт адреса (для Atmega603: $7F, для Atmega103: $FF).
- Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается старший байт адреса.
I: Программирование страницы
- Подать на вывод WR отрицательный импульс. Этим импульсом запускается программирование страницы данных. Вывод переходит RDY/BSY на низкий уровень.
- Ожидать перехода вывода RDY/BSY на высокий уровень.
J: Завершение программирования страницы.
- Установить биты XA1 и XA0 в состояние 1 и 0. Эта установка разрешает загрузку команды.
- Установить биты PB(7 - 0) в состояние 0000 0000. Это команда «Нет операции».
- Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается команда и сбрасываются все внутренние сигналы записи.
K: Пункты с A по J повторяются 256/512 раз, или до тех пор, пока все данные не будут запрограммированы.
Программирование EEPROM
Алгоритм программирования EEPROM памяти данных приведен ниже (подробности загрузки команд, адресов и данных см. в разделе Программирование Flash памяти).
- Загрузить команду 0001 0001.
- Загрузить младший адрес EEPROM ($00 - $FF).
- Загрузить старший адрес EEPROM (для ATmega603: $07, для ATmega103: $0F).
- Загрузить младший байт данных EEPROM ($00 - $FF).
- Подать на вывод WR отрицательный импульс и ожидать перехода вывода RDY/BSY на высокий уровень.
Команда загружается только перед программированием первого байта.