Современные микроконтроллеры образуют целые семейства, они настолько разнообразны и функционально насыщены, что возникает необходимость в выборе специализированных программаторов. На нашем рынке хорошо обосновались недорогие микроконтроллеры PIC от компании Microchip, а также AVR (серии AT, Tiny и Mega) от компании Atmel. Хотя автор неоднократно работал с микроконтроллерами Siemens, Philips, Renesas, Toshiba, и др. [1], к сожалению, эти компании не так заботятся о пользователях, как Microchip и Atmel.
Разрабатывая микроконтроллерные устройства, автор столкнулся с проблемой программирования микроконтроллеров. Дело в том, что эта сфера бурно развивается, а программаторы зачастую имеют собственные программы управления. Для радиолюбителя каждая копейка дорога, а характеристики микроконтроллеров, предлагаемых поставщиками, далеко не всегда совпадают с информацией на страницах журналов.
Для семейства микроконтроллеров Tiny от Atmel автор нашел выход, прочитав книгу [2] и собрав за 40 минут очень дешевый.программатор, представленный на рис. 1.1, — аналог STK200 (на сегодняшний день компания Atmel выпускает и поддерживает только программатор версии STK500, но он значительно дороже).
Рис. 1.1. Программатор STK200 от компании Atmel
Для работы с STK200 существует специальная DOS-программа, которая достаточно проста и надежна, хотя и имеет некоторые особенности. Ее можно найти в Internet или на компакт-диске, прилагаемом к книге [2].
На основании своего опыта работы с STK200 автор немного изменил оригинальную схему, а так же выявил некоторые недостатки программы:
• работа только в MS DOS или максимум в система Windows 98 в режиме эмуляции DOS;
• ввод функции программирования вручную, что на сегодняшний день очень несовременно;
• плохая организация перезаписи микроконтроллера. Для перезаписи лучше использовать файлы .bat, указанные в книге [2]. При наличии всех ключей перезапись происходит с ошибками, поэтому необходимо очистить микроконтроллер, затем проверить и после сообщения об ошибке записать заново. Привыкнув к специфике записи/перезаписи, радиолюбители обретут хороший опыт для работы с разными программаторами.
Состав программатора:
• микросхема IC1- 74НС244 (или аналог);
• R1—7кОм;
• R2 — 910 Ом;
• С1 — 47мкФх 16 В;
• С2 — 0,1 мкФ х 16 В (рекомендуется установить блокировочный конденсатор по питанию поближе к микросхеме);
• D1— КД522;
• SV1 — любой для питания бытовой аппаратуры;
• XI — IDC 10 (при желании, плоский разъем);
• Х2 —DB25.
Монтажные схемы программатора представлены на рис. 1.2. Плату можно собрать навесным монтажом и поместить в корпус разъема DB25 (рис. 1.3). Для этого плату необходимо вырезать строго по внутренним размерам разъема и поместить между выводами DB25. Монтаж выполняется навесным способом (рис. 1.4).
Разъем питания устанавливается на корпус программатора. Автор использовал два разъема на выходе из программатора:
• стандартный согласно оригинальной плате STK200 фирмы Atmel (разводка — табл. 1.1);
• нестандартный Е1ка22 (табл. 1.2, рис. 1.5).
От программатора с платы монтажа лучше пустить шлейф небольшой длины (не более 15 см) для подключения непосредственно к программируемой плате. Можно создать отдельную плату для программирования любого микроконтроллера, используя при этом только программатор STK200 (рис. 1.6). Со временем на этой отдельной плате для "прошивки" ^ микроконтроллера можно реализовать любые- варианты программирования на панельках.
После сборки и проверки программатора STK200 необходимо выполнить следующие действия.
1. Подключить шлейфом программатор к порту LPT компьютера.
2. Подать питание от внешнего источника.
3. Перейти в режим DOS (для этого автор, например, использовал программу Volkov Commander).
4. Найти файл .ехе программатора (автор использовал eal.exe) и запустить его с указанием названия программируемого микроконтроллера, имени порта LPT, названия программатора, ключей операции, байта в Flash-коде, имени файла "прошивки".
Если все введено правильно, то программа сразу же начинает работать и в течение нескольких секунд запишет данные в микроконтроллер. В случае возникновения ошибок их необходимо расшифровать, проверить правильность введенной фразы и исправить.
Внимание!
Файл . ехе и файл "прошивки" должны находится в одной папке (и на диске С).
Примеры сообщений в режиме DOS показаны на рис 1.7. Команды перевода выходов программатора в высокоимпедансное состояние:
Рис. 1.7. Примеры сообщений в процессе программирования микроконтроллера
Во время попытки перезаписать микроконтроллер с помощью ключей, не прошла программа:
Для выбора типа программатора устанавливаются ключи:
• -ab — работа через Altera ByteBlaster;
• -as — работа через адаптер Atmel STK*00 (рассматриваемый программатор);
• -аа — автоматический выбор ByteBlaster/STK;
• -az — пытаться переводить выходы LPT в Z-состояние для "отключения" программатора от схемы ("byte-blaster для ленивых", работает в режиме "FBPRG");
• -аг — инверсия полярности сброса (например, для подачи его через резистор на базу присутствующего в схеме транзистора);
• -ai# — установить время неактивного сигнала Reset после стирания равным # мс;
• -ар — подавать питание кристалла через свободные выходы данных LPT (несовместимо с -ab и -as).
Для управления программой существуют ключи, которые записываются после фразы eal. exe +tinyl2 -р378 -as.
Порядок программирования "прошитой" микросхемы, предложенный автором:
1. -е — стереть содержимое микросхемы;
2. -v — проверить на совпадение с файлом;
3. -w+ — записать файл в микросхему.
Остальные ключи имеют следующие функции:
• -b — проверить микроконтроллер на наличие данных в памяти;
• -r — прочитать данные с кристалла в файл;
• -1 — установить уровень защиты (при разработке лучше не использовать);
• -f — список предохранителей для тех кристаллов, в которых они "прошиваются" по ISP (используется при перенастройке микроконтроллера);
• -с — как байт в Flash-коде.
С остальными ключами можно ознакомится, прочитав книгу [2].
Программатор можно успешно применять для внутрисхемного программирования, но при этом необходимо отслеживать выводы его подключения к программируемой схеме. В такой схеме не должно быть перемычек или выключателей "на ноль", а так же активных элементов, подключенных к питанию или "земле". В случае накоротко программатор выйдет из строя.