Итак, если Вы решили работать не с платой DEVELOPMENT BOARD, а со своей собственной микропроцессорной системой, то Вам необходимо приобрести еще какое-либо программирующее устройство. Как упоминалось выше, существует два способа программирования AVR-микроконтроллеров: последовательное программирование через SPI-интерфейс и параллельное программирование.
Параллельное программирование, которое требует извлечения AVR-микроконтроллера из системы и установки его в программатор, весьма неудобно на этапе отладки программы.
Для программирования Вашей микропроцессорной системы по SPI-интерфейсу непосредственно в системе фирмой Атмел предлагается программа AVRPROG и программирующий SPI-кабель, в который встроен последовательный программатор.
Кроме того, функцией программирования по последовательному SPI-интерфейсу обладает параллельный программатор FLASHER. Способ отладки микропроцессорной системы при помощи SPI-интерфейса отличается своей дешевизной, но, однако, имеет и недостатки. Во-первых, каждый раз при внесении изменений в программу Вы перепрограммируете FLASH-память микроконтроллера, количество циклов перезаписи которой ограничено хоть и достаточно большим, но все же конечным числом. Во-вторых, описанный способ не дает возможности пошаговой отладки программы.
В связи с этим, фирмой Атмел разработаны более мощные, но и более дорогие внутрисхемные эмуляторы (in-circuit emulator) ICEPRO и megaICEPRO. Они представляют собой микропроцессорные устройства, которые с одной стороны связываются с Вашей микропроцессорной системой через панель, предназначенную для установки AVR-микроконтроллера, а с другой - с персональным компьютером и работают под управлением уже упоминавшейся программы фирмы Атмел AVRSTUDIO.
Внутрисхемные эмуляторы позволяют выполнять программу в Вашей системе в пошаговом режиме и неограниченное число раз вносить изменения в программу. При работе с внутрисхемным эмулятором Вы одновременно можете на экране компьютера наблюдать состояние внутренних ресурсов процессора, а на микропроцессорной плате - реакцию системы на те или иные команды программы.
Завершающим этапом программирования AVR-микроконтроллера является занесение в память уже отлаженной программы. Оно может быть выполнено так же, как и при отладке программы, через SPI-интерфейс. Однако необходимо помнить, что последовательное программирование младших моделей AVR не позволяет изменять FUSE-биты микроконтроллера.
Если в микропроцессорной системе не предусмотрен SPI-интерфейс а также при серийном производстве для повышения скорости программирования большого числа микроконтроллеров удобно использовать программаторы, которые выполняют параллельное программирование. Следует отметить, что параллельные программаторы обычно являются универсальными устройствами и позволяют, кроме AVR, работать и с другими типами микроконтроллеров, с постоянными запоминающими устройствами и микросхемами программируемой логики.
Фирма ЭФО предлагает два типа программаторов, поддерживающих программирование AVR-микроконтроллеров. Программатор FLASHER может выполнять как параллельное программирование, так и последовательное через SPI-интерфейс. Универсальный программатор СТЕРХ поддерживает лишь параллельное программирование.