Программирование Flash и eeprom памяти

Микроконтроллеры 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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: