Опыт работы с программатором STK200. Разрабатывая микроконтроллерные устройства, автор столкнулся с проблемой программирования микроконтроллеров. Очень часто программаторы имеют свои собственные программы управления. Где их взять, и сколько драгоценного времени и денег необходимо потратить на сборку программатора? Современные микроконтроллеры входят в целые семейства, они настолько разнообразны и функционально выражены, что возникает необходимость в выборе специализированных программаторов. На наших рынках хорошо обосновались (очень дешевые) микроконтроллеры PIC фирмы Microchip и AT, tiny, Mega фирмы Atmel. Хотя автор неоднократно работал с МК Siemens, Philips, Renesas, Tochiba, и др. [1]. К сожалению, эти фирмы не так заботятся о пользователях как Microchip и Atmel. Проблема с программаторами стоит остро из-за бурного их развития. Для радиолюбителей каждая копейка дорога, а МК предлагаемые фирмами и напечатанные на страницах журнала абсолютно разные, поэтому этот программатор именно дешевый вариант программирования МК. Для семейства tiny фирмы Atmel автор нашел выход, прочитав книгу [2] и собрав программатор рис1 (себестоимость программатора около 15 грн.) за 40 минут. Этот программатор повторяет функции хорошо известного программатора STK200 фирмы Atmel. Фирма на сегодняшний день выпускает и поддерживает только версии STK500, но он слишком дорого стоит. К программатору STK200 разработана программа в режиме DOS. Программа достаточно проста, и работает надежно, хотя имеет некоторые особенности. Ее можно взять с сайта: www.ln.com.ua. Или приобрести книгу автора с оригинальным диском [2]. Надо сказать, что этот программатор не является собственной разработкой автора, статья написана как руководство по пользованию. Из опыта работы с программатором автор немного изменил оригинальную схему, а так же выявил недостатки программы. К программе привыкнуть очень тяжело- это расплата за простоту. Основной недостаток это работа программы только в MS DOS или максимум Windows 98 в режиме DOS. Второй недостаток это ввод функции программирования вручную, что на сегодняшний день очень не современно. Третьим недостатком является плохая организация перезаписи МК. Для перезаписи лучше использовать .bat файлы, указанные в книге [2]. При наличии всех ключей перезапись идет с ошибками, поэтому для перезаписи необходимо стереть МК, затем проверить, после сообщения об ошибке записать заново. Привыкнув к специфике записи, перезаписи, радиолюбители получат хороший опыт по работе с разными программаторами. Детали программатора: микросхема IC1- 74HC244 (или аналог), R1-7кОм, R2- 910 Ом, C1- 47мкФх16В, C2- 0.1 мкФх16В (рекомендуется установить блокировочный конденсатор по питанию поближе к микросхеме), D1- КД522, SV1- любой для питания бытовой аппаратуры, X1-IDС 10 (при желании плоский разъем), X2- DB25. Монтажная плата для сборки рис 2. Плату можно собрать навесным монтажом и вставить в корпус разъема DB25 см фото 1. Для этого плату необходимо вырезать строго по внутренним размерам разъема и вставить между выводами разъема DB25, монтаж вести навесным способом см фото1, 2. Разъем питания устанавливается на корпус программатора. Автор использовал два разъема на выходе из программатора: один стандартный согласно оригинальной плате STK200 фирмы Atmel разводка табл. 1, второй нестандартный Elka22, табл. 2 фото 3. От программатора с платы монтажа лучше пустить шлейф небольшой длины (не более 15 см) для подключения непосредственно к программируемой плате. Можно сделать отдельно плату для программирования любого МК, при этом использовать только программатор STK200 см фото 4. Со временем на этой отдельной плате, для прошивки МК можно собрать на панельках любые варианты программирования, на любой вкус. После сборки и проверки программатора STK200, необходимо через шлейф подключить программатор к LPT порту компьютера и подать питание от внешнего источника. Выйти в режим DOS (автор использовал программу Volkov commander) выбрать путь к .ехе файлу и запустить файл, дописать название записываемого МК, название LPT порта, название программатора, ключи операции программы, байт в FLASH коде, название файла прошивки. Если все введено правильно программа начинает работать сразу и в течение нескольких секунд запишет данные в МК. Если есть ошибки необходимо их расшифровать проверить правильность набранной фразы и исправить. Обратите внимание, что .ехе файл и файл прошивки должны находится в одной папке (и на диске С). Автор приводит примеры сообщений в режиме DOS рис 3. Автор перевел выходы программатора в высокоимпедансное состояние. C:\ПРОГРА~1\TOOLS\AVREAL\AV122R9>eal.exe +tiny12 -p378 -az -ebvw+ -c elka22.hex avreal/DOS16 - AVR controllers LPT programmer by Redchuck Alexandr v1.22rev9 (Sep 2 2002 22:38:32) ReAl@real.kiev.ua Command: +tiny12 -p378 -az -ebvw+ -c elka22.hex Can't resync Reset pin released LPT outputs -> Hi-Z state Во время попытки перезаписать МК с помощью ключей, не прошла программа. C:\ПРОГРА~1\TOOLS\AVREAL\AV122R9>eal.exe +tiny12 -p378 -as -ebvw+ -c elka22.hex avreal/DOS16 - AVR controllers LPT programmer by Redchuck Alexandr v1.22rev9 (Sep 2 2002 22:38:32) ReAl@real.kiev.ua Command: +tiny12 -p378 -as -ebvw+ -c elka22.hex Device connected, TINY12 detected Device erased Device connected, TINY12 detected Fuses OSCCAL = 49 BODEN = 1 BLEV = 0 CKSEL = 2 RSTDSBL = 1 SPIEN = 0 Code: done not blank Data: .. done blank Reset pin released Автор попытался записать МК без питания. Нет питания на плате и на программаторе. C:\ПРОГРА~1\TOOLS\AVREAL\AV122R9>eal.exe +tiny12 -p378 -as -ebvw+ -c elka22.hex avreal/DOS16 - AVR controllers LPT programmer by Redchuck Alexandr v1.22rev9 (Sep 2 2002 22:38:32) ReAl@real.kiev.ua Command: +tiny12 -p378 -as -ebvw+ -c elka22.hex Not connected Can't continue Reset pin released Запись МК прошла успешно. C:\ПРОГРА~1\TOOLS\AVREAL\AV122R9>eal.exe +tiny12 -p378 -as -w+ -c elka22.hex avreal/DOS16 - AVR controllers LPT programmer by Redchuck Alexandr v1.22rev9 (Sep 2 2002 22:38:32) ReAl@real.kiev.ua Command: +tiny12 -p378 -as -w+ -c elka22.hex Device connected, TINY12 detected Fuses OSCCAL = 49 BODEN = 1 BLEV = 0 CKSEL = 2 RSTDSBL = 1 SPIEN = 0 Programming code memory done Reset pin released Для выбора типа программатора устанавливаются ключи: -ab работа через Altera ByteBlaster. -as работа через адаптер Atmel STK*00 (рассматриваемый программатор). -aa автоматический выбор ByteBlaster/STK. -az пытаться переводить выходы LPT в Z-состояние для "отключения" программатора от схемы ("byte-blaster для ленивых", работает в "FBPRG" режиме). -ar инверсия полярности сброса (например, для подачи его через резистор в базу присутствующего в схеме транзистора). -ai# установить время неактивного Reset после стирания равным # mS. Необходимо устанавливать большим времени задержки снятия сброса присутствующим в схеме супервизором. -ap подавать питание чипа через свободные выходы данных LPT (несовместимо с -ab,-as). Для управления программой существуют ключи. Ключи записываются после фразы eal.exe +tiny12 -p378 -as Автор предлагает порядок записи прошитой микросхемы: -е стереть содержимое микросхемы. -v проверить на совпадение с файлом. -w+ записать файл в микросхему. Остальные ключи имеют функции: -b проверить МК на наличие данных в памяти. -r прочитать данные из чипа в файл. -l установить уровень защиты ( при разработке лучше не использовать). -f список fuses для тех чипов, в которых они шьются по ISP (используется при перенастройке МК). -с как байт в FLASH коде. С остальными ключами можно ознакомится, прочитав книгу [2]. Программатор можно успешно применять для внутрисхемного программирования, но при этом необходимо отслеживать выводы подключения программатора к программируемой схеме. В программируемой схеме не должно быть перемычек или выключателей на ноль, а так же активных элементов подключенных к питанию или земле. В случае закороток программатор выйдет из строя. Литература: 1. Зобин Ю, Тамазов А, Микроконтроллеры популярных семейств М: Радио №6-8, 2000. 2. Голубцов М.С. Кириченкова А.В. Микроконтроллеры AVR: от простого к сложному . 2-е издание. М: Солон-Пресс, 2004 с диском.