В общей сложности микроконтроллеры семейства Mega поддерживают следующие режимы программирования:
режим последовательного программирования (по интерфейсу SPI);
режим параллельного программирования при высоком напряжении;
режим программирования через интерфейс JTAG.
Под “высоким” напряжением здесь понимается управляющее напряжение (12 В), подаваемое на вывод RESET микроконтроллера для перевода последнего в режим программирования.
Режимы программирования для конкретного микроконтроллера представлены в табл. 9.1.
Таблица 14.1. Режимы программирования микроконтроллеров семейства Mega
Кроме того, микроконтроллеры семейства Mega имеют возможность самопрограммирования. Под этим термином понимается изменение содержимого памяти программ, управляемое самим микроконтроллером.
В процессе программирования могут выполняться следующие операции:
стирание кристалла (chip erase);
чтение/запись FLASH-памяти программ;
чтение/запись EEPROM-памяти данных;
чтение/запись конфигурационных ячеек;
чтение/запись ячеек защиты;
чтение ячеек идентификатора;
чтение калибровочного байта.
Все модели микроконтроллеров поставляются со стертой памятью программ и памятью данных (во всех ячейках находится число $FF) и пригодны к немедленному программированию.