Программирование 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