Программирование AVR-микроконтроллеров без программатора.
Ни для кого не является секретом, что неотъемлемой частью работы с микроконтроллерами является их программирование, то есть запись в его память управляющей программы. На страницах нашего журнала и многих других неоднократно описывались устройства, позволяющие делать это. Эти устройства называются программаторами микроконтроллеров. Программатор – вещь довольно дорогая и сложная при самостоятельном её изготовлении.
Другое дело, если вы решили заняться микроконтроллерами AVR. Наличие последовательного порта программирования вместе с FLASH – памятью в данной серии микроконтроллеров дает возможность значительно упростить программатор или вообще обойтись без его помощи!
Многие схемы простых программаторов публиковались на страницах разных изданий. Но, к сожалению, не все схемы оказываются работоспособными. Такие горькие опыты вынудили пойти на поиск другого программатора. В результате поиска в Интернете на персональной странице китайского радиоинженера Джерри Менга (http://www.qsl.net/ba1fb/) была найдена простенькая программа (http://www.qsl.net/ba1fb/fbprg.zip-архив 38 КБ), которая позволяет программировать AVR-микроконтроллеры без программатора, просто подключив микроконтроллер соответствующим образом к параллельному порту компьютера. Поначалу возникали сомнения в её работоспособности. Но после первого же программирования они сразу же прошли. И вот уже год я пользуюсь данным программатором, который ни разу не подвел, причем его работоспособность проверялась на трех компьютерах, которые имеют разные материнские платы.

Итак, перейдем собственно к описанию самого программатора (если его можно так назвать). Схема подключения микроконтроллера к LPT-порту компьютера показана на рис.1. С самого начала данная схема показалась несколько ненадежной, поскольку питание программируемого микроконтроллера осуществляется от того же LPT-порта. В результате экспериментов я пришел к несколько видоизмененной схеме (рис.2). Питание микроконтроллера здесь уже осуществляется от внешнего блока питания и стабилизируется при помощи интегрального стабилизатора DA1. В схему также введен конденсатор С1 и индикатор наличия напряжения питания HL1.

Несмотря на то, что программа обслуживания программатора написана под MS-DOS, она имеет неплохой графический интерфейс (рис.3).

Ниже перечислены команды основного меню программы:
– Load HEX file to Flash buffer – загрузка HEX файла в Flash буфер программы;
– Load HEX file to EEPROM buffer – загрузка HEX файла в EEPROM буфер программы;
– Display Flash buffer – показать Flash буфер;
– Display EEPROM buffer – показать EEPROM буфер;
– Program – программирование микроконтроллера;
– Read Device code – прочитать код устройства (микроконтроллера);
– Read Flash & EEPROM to buffer – прочитать Flash и EEPROM память микроконтроллера в буфер программы;
– Save Flash buffer to HEX file – записать содержимое Flash буфера в HEX файл;
– Save EEPROM buffer to HEX file – записать содержимое EEPROM буфера в HEX файл;
– Setup – установка параметров программирования;
– Show schematic – показать схему программатора;
– Quit – выход из программы.
Остановимся более детально на некоторых пунктах. Так при загрузке файла в Flash буфер вы должны будете ввести имя файла с расширением HEX, а при загрузке файла в EEPROM буфер – то же самое, только с расширением ЕЕР (HEX файл, который будет записан в EEPROM память микроконтроллера). Аналогично и при записи содержимого буферов в файл, только в этом случае программа создаст новый файл с именем, которое Вы ввели. В меню «Setup» Вы можете выбрать тип программируемого микроконтроллера.
Программатор поддерживает следующие типы AVR-микроконтроллеров: AT90S1200, AT90S1220, AT90S2313, AT90S4414, AT90S8515. Также в данном меню вы можете разрешить или запретить установку битов блокировки памяти (Lock protect bit). Здесь же можно разрешить или запретить программирование Flash и EEPROM памяти, а также их верификацию.
Программатор собран на печатной плате размерами 45×45 мм. На место микроконтроллера запаивается панелька под корпус DIP-20 (AT90S1200 и AT90S2313). Вилка LPT порта
припаивается непосредственно к печатным проводникам платы. Как правило, контакты данной вилки пронумерованы, поэтому проблем с её подключением быть не должно.
Единственным недостатком данного программатора, на мой взгляд, является необходимость после каждого программирования вынимать микроконтроллер из панельки программатора и устанавливать его собственно в саму плату устройства. Но что поделаешь, это та небольшая плата за простоту программатора.
Автор: Марис Потапчук, г. Ровно
Источник: РадиоХобби 5-2004