Микроконтроллеры ATmega603/103 оснащены внутрисистемно программируемой Flash памятью, емкостью 64/128 Кбайт, и 2/4 Кбайтами EEPROM памяти данных. При поставке микроконтроллеров и встроенная Flash память программ и EEPROM память данных находятся в очищеном состоянии (т.е. содержимое в состоянии $FF) и они готовы к программированию. Приборы поддерживают режим высоковольтного (12 В) параллельного программирования и режим низковольного последовательного программирования. Напряжение программирования 12 В используется только если программирование разрешено, в ином случае ток по этому выводу не потребляется. Режим последовательного программирования является обычным способом загрузки программ и данных в микроконтроллеры, находящиеся непосредственно в системе пользователя.
Матрица памяти программ микроконтроллеров ATmega603/103 организована из 256/512 страниц по 256 байт каждая. При программировании Flash памяти данные программы фиксируются в буфере страницы, что позволяет программировать сразу целую страницу данных программы в любом из режимов программирования.
Матрица EEPROM памяти данных микроконтроллеров программируется по-байтово (байт - за - байтом) во всех режимах программирования. В последовательном режиме программирования встроенная функция самотактирования EEPROM выполняет автоматическую предварительную очистку каждого программируемого байта.
Режим параллельного программирования
В данном разделе описывается программирование и проверка Flash памяти программ, EEPROM памяти данных, битов блокирования программирования памяти и битов-предохранителей в режиме параллельного программирования. Используемые при этом импульсы должны быть длительностью не менее 500 нс, если это специально не оговорено.
Обозначения сигналов
В данном разделе ряд выводов микроконтроллеров ATmega603/103 указывается обозначениями сигналов, отражающими их функциональное назначение в процессе параллельного программирования, а не по обозначениям выводов. Выводы не указанные в таблице имеют обычные обозначения.
Таблица 35. Соответствие обозначений выводов обозначениям сигналов
Обозначение сигнала в режиме программирования | Обозначение вывода | I/O | Описание |
RDY / BSY | PD1 | O | 0: Прибор занят программированием, 1: Прибор готов к новой команде |
OE | PD2 | I | Разрешение выхода (Активен низким уровнем) |
WR | PD3 | I | Импульс записи (Активен низким уровнем) |
BS1 | PD4 | I | Выбор байта (бит 0) |
XA0 | PD5 | I | Режим XTAL (бит 0) |
XA1 | PD6 | I | Режим XTAL (бит 1) |
BS2 | PD7 | I | Выбор байта (бит 2 -всегда на низком уровне) |
PAGEL | PA0 | I | Загрузка страницы программирования памяти |
Биты XA1/XA0 определяют действие, запускаемое по положительному импульсу на XTAL1. Установки битов представлены в следующей таблице:
Таблица 36. Кодирование битов XA1 и XA0
XA1 | XA0 | Характер действия при поступлении импульса на XTAL1 |
Загрузка Flash или EEPROM адреса (старший или младший байт адреса Flash памяти определяет бит BS1) | ||
Загрузка данных (старший или младший байт адреса Flash памяти определяет бит BS1) | ||
Загрузка команды | ||
Нет действия, ожидание |
При поступлении импульсов WR или OE загруженная команда определяет действие на входе или выходе. Команда является байтом, в котором каждый бит определяет функцию, как это отражено в таблице:
Таблица 37. Кодирование битов байта команды
N бита | Выполняемая операция при установленном бите |
Очистка кристалла | |
Запись бита-предохранителя. Размещаются в байте данных по следующим битам: D5: SPIEN бит-предохранитель, D3: EESAVE бит-предохранитель, D1: SUT1 бит-предохранитель, D0: SUT0 бит-предохранитель (Примечание: запись 0 для программирования, запись 1 для стирания) | |
Запись бита блокирования. Размещаются в байте данных по следующим битам::D2: LB2, D1: LB1 (Примечание: запись 0 для программирования) | |
Запись Flash или EEPROM памяти (определяется битом 0) | |
Чтение сигнатуры | |
Чтение битов блокирования и битов-предохранителей. Размещаются в байте данных по следующим битам:D5: SPIEN бит-предохранитель, D3: EESAVE бит-предохранитель, D2: LB2, D1: SUT1/LB1, D0: SUT0 (Примечание: состояние 0 программируется) | |
Чтение из Flash или EEPROM памяти (определяется битом 0) | |
0: Обращение к Flash, 1: Обращение к EEPROM |