Программирование AVR-микроконтроллеров без программатора


Марис Потапчук, г. Ровно

Ни для кого не является секретом, что неотъемлемой частью работы с микроконтроллерами является их программирование, то есть запись в его память управляющей программы. На страницах нашего журнала и многих других неоднократно описывались устройства, позволяющие делать это. Эти устройства называются программаторами микроконтроллеров. Программатор - вещь довольно дорогая и сложная при самостоятельном её изготовлении.

Другое дело, если вы решили заняться микроконтроллерами AVR. Наличие последовательного порта программирования вместе с FLASH - памятью в данной серии микроконтроллеров дает возможность значительно упростить программатор или вообще обойтись без его помощи!

Многие схемы простых программаторов публиковались на страницах разных

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

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

Схема
Puc.1.

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

Схема
Puc.2.

Питание микроконтроллера здесь уже осуществляется от внешнего блока питания и стабилизируется при помощи интегрального стабилизатора DA1. В схему также введен конденсатор С1 и индикатор наличия напряжения питания HL1.

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

Схема
Puc.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 памяти, а также их верификацию.

Программатор собран на печатной плате размерами 45x45 мм. На место микроконтроллера запаивается панелька под корпус DIP-20 (AT90S1200 и AT90S2313). Вилка LPT порта

припаивается непосредственно к печатным проводникам платы. Как правило, контакты данной вилки пронумерованы, поэтому проблем с её подключением быть не должно.

Единственным недостатком данного программатора, на мой взгляд, является необходимость после каждого программирования вынимать микроконтроллер из панельки программатора и устанавливать его собственно в саму плату устройства. Но что поделаешь, это та небольшая плата за простоту программатора.


РадиоХобби N 5-2004