Установка режима программирования
Для установки микроконтроллера в режим параллельного программирования используется следующий алгоритм:
- Подать напряжение 4,5 - 5,5 В между выводами VCC и GND.
- Установить на выводах RESET и BS низкий уровень и ожидать не менее 100 нс.
- Подать напряжение 11,5 - 12,5 В на вывод RESET. Состояние вывода BS1 в течение 100 нс после подачи напряжения +12 В меняться не должно, иначе режим программирования установлен не будет.
Очистка кристалла
Операция очистки кристалла очищает Flash и EEPROM память и биты блокирования. Биты блокирования не сбрасываются до тех пор, пока память программ не будет полностью очищена. Состояние битов-предохранителей при очистке кристалла остаются неизменным. Очистка кристалла должна выполняться перед программированием Flash памяти.
Загрузка команды очистки кристалла (Chip Erase)
- Установить биты XA1 и XA0 в состояние 1 и 0. Эта установка разрешает загрузку команды.
- Установить бит BS1 в состояние 0.
- Установить биты PB(7 - 0) в состояние 1000 0000. Это команда очистки кристалла.
- Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается команда и запускается процедура очистки матриц Flash и EEPROM памяти. После подачи импульса на XTAL1 на WR подается отрицательный импульс, чтобы обеспечить в конце цикла стирания памяти стирание бита блокировки, и ожидать по крайней мере 10 мс. Процедура очистки кристалла не приводит к какой либо активности вывода RDY/BSY.
Программирование Flash памяти
Flash память микроконтроллеров ATmega603/103 организован из 256/512 страниц по 256 байт каждая. При программировании Flash памяти данные программы фиксируются в буфере страницы, что позволяет единовременно программировать целую страницу. Ниже приведена процедура, описывающая программирование всего объема Flash памяти.
A: Загрузка команды программирования Flash памяти (Program Flash)
- Установить биты XA1 и XA0 в состояние 1 и 0, соответственно. Эта установка разрешает загрузку команды.
- Установить бит BS1 в состояние 0.
- Установить биты PB(7 - 0) в состояние 0001 0000. Это команда программирования Flash памяти.
- Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается команда.
B: Загрузка младшего байта адреса
- Установить биты XA1 и XA0 в состояние 0 и 0. Эта установка разрешает загрузку адреса
- Установить бит BS1 в состояние 0.
- Установить в битах PB(7 - 0) младший байт адреса ($00 - $FF).
- Подать на вывод XTAL1 положительный импульс. Этим импульсом загружается младший байт адреса.