С. РЮМИК, г. Чернигов, Украина
Широкими возможностями при сравнительной дешевизне внимание радиолюбителей привлекают MSC-51 -совместимые микроконтроллеры фирмы Atmel серии АТ89С с параллельным интерфейсом программирования. К сожалению, многие распространенные сегодня программаторы для них непригодны. Нужен специализированный. Автору предлагаемой статьи удалось изготовить такой по рекомендациям фирмы Atmel, но на элементной базе, выпускаемой предприятиями СНГ.
О сновная проблема при разработке самодельного программатора — знать и точно соблюдать алгоритмы программирования микроконтроллеров. Многих неожиданностей удается избежать, воспользовавшись схемами и программным обеспечением, публикуемыми фирмами-разработчиками микросхем.
Для загрузки программных кодов в микроконтроллеры АТ89С51, АТ89С52, АТ89С1051, АТ89С2051, AT89S8252 фирма Atmel рекомендует устройство, описанное в [1]. Его относительная сложность (семь цифровых и две аналоговые микросхемы) и скромное программное обеспечение, работающее под DOS, с лихвой окупаются надежностью программирования с соблюдением всех фирменных алгоритмов.
На рис. 1 приведена схема программатора, отличающегося от "фирменного" в основном элементной базой. Запись в регистры DD2—DD5 информации, поступающей от компьютера по линиям DATA1—DATA8, происходит по спадам импульсов отрицательной полярности на входах С, поступающих от дешифратора DD1. В регистре DD3 и части регистра DD4 хранят 13-разрядный адрес ячейки внутренней памяти микроконтроллера, в DD5 — байт данных, предназначенных для записи в эту ячейку, в DD2 и свободных от адреса разрядах DD4 — коды управления. Цепь R13C1 при включении питания приводит регистр DD2 в исходное состояние, предотвращая случайное искажение содержимого памяти программируемого микроконтроллера.
Шинный формирователь DD6 служит для передачи данных с выходов микроконтроллера на линии DATA1—DATA8. Выходы микросхемы DD6 не должны быть активными, когда LPT-порт работает "на вывод". Это учтено в программе, формирующей разрешающие сигналы на управляющих входах микросхем.
Резисторы R1—R12 уменьшают "звон", сопровождающий перепады сигналов на линиях LPT-порта и защищают его от перегрузок. Когда выходы элементов компьютера, подключенные к линиям порта, и выходы некоторых элементов программатора, в том числе самой программируемой микросхемы, находятся в высокоимпедансном состоянии, резисторы наборов DR1—DR3 поддерживают в соответствующих цепях высокий логический уровень.
Программируемые микросхемы устанавливают в одну из двух панелей: АТ89С1051, АТ89С2051. АТ89С4051 в корпусе DIP-20 — в XS1; АТ89С51 и другие в корпусе DIP-40 — в XS2. Кварцевый резонатор ZQ1 частотой 6 МГц с конденсаторами С4 и С5 необходим, чтобы во время программирования работал внутренний тактовый генератор микроконтроллера, установленного в панель XS2. Тем, которые устанавливают в панель XS1, резонатор не требуется. На контакт 5 этой панели поступают тактовые импульсы, сформированные программно.
Питающее напряжение на разъем Х1 программатора подают от внешнего источника. Им может быть, например, сетевой адаптер видеоприставки "SEGA Mega Drive-H". Хотя при номинальной нагрузке (1 А) его выходное напряжение не превышает 11 В, при токе 70...90 мА, потребляемом программатором, оно возрастает до 14. ..15 В.
Напряжение 5 В для питания микросхем (в том числе программируемой) получают с помощью интегрального стабилизатора DA1. Напряжение на выходе стабилизатора DA2 при низком логическом уровне на выводе 18 шинного формирователя DD7 — 12 В. Точное значение устанавливают подстроечным резистором R21. При высоком логическом уровне на выводе 18 открывшийся транзистор VT2 подключает параллельно R21 еще один подстроечный резистор R19, что уменьшает выходное напряжение стабилизатора DA2 до 5 В.
Скорость нарастания напряжения на выходе стабилизатора после смены высокого уровня на выводе 18 DD7 низким зависит от емкости конденсатора С14. При слишком большой его емкости и высокой скорости работы управляющего компьютера несколько младших ячеек FLASH-памяти микроконтроллера могут оказаться запрограммированными с ошибками.
Выходное напряжение стабилизатора DA2 поступает на вывод 31 (EA/VPP) панели XS2 непосредственно, а на вывод 1 панели XS1 (RST/VPP) — через ключ на транзисторе VT1. При напряжении 12В ключ открыт независимо от логического уровня на выводе 16 регистра DD2, а при 5 В — только в случае, если этот уровень низкий.
Пониженная яркость свечения све-тодиода HL2 свидетельствует о напряжении 5 В на выходе DA2 и о том, что программируемая микросхема находится в режиме считывания кодов из ее памяти. В режиме стирания и запи:» в память напряжение возрастаем 12 В, яркость светодиода заметно увеличивается. Это справедливо для вов= микроконтроллеров, кроме тех, кота-рым напряжение 12 В не требуе~:: При программировании двадцатк-гэ водных микроконтроллеров 6yzif включен и светодиод HL1.
Вилку Х2 программатора соедини*— с розеткой LPT-порта IBM-совместими»-го компьютера кабелем длиной до 2 ■ В компьютере должен быть вкле—е-расширенный режим работы LPT-nope (ЕСР/ЕРР). В современных систем—»;: блоках он действует по умолчаник ли это не так, режим порта можно изменить, запустив при начальной загр.~«-компьютера программу BIOS SE^.-(пункты меню "Integrated Peripherals"— "Parallel Port Mode").
ДЕТАЛИ И КОНСТРУКЦИЯ
Программатор собран на двусторо»-
ней печатной плате размера i.....
140x140 мм. Стабилизатор DA1 устами-ливают на теплоотвод площадью не менее 20 см2. Можно собрать программаи-тор и на макетной плате навесным мда-тажом. Учтите, что конденсаторы С-и кварцевый резонатор ZQ1 должжм быть расположены как можно бг^ш-к контактам 18, 19 панели XS2. Свобеж-ные входы микросхем DD1 (выв:^ 13—15), DD2 (вывод 8) и DD7 (вывс^= 15, 17) необходимо соединить с их общим выводом или выводом питание повысит помехоустойчивость прибора
Все цифровые микросхемы мож-с заменять их функциональными ана-": гами серий К555, КР1533 или импсс" ными, воспользовавшись, наприм-j: рекомендациями [2]. Транзисторы . VT2 — любые маломощные соответствующей структуры, желательно с минимальным падением напряжения на ут-стке коллектор—эмиттер открытопи транзистора.
Подстроечные резисторы п • R21 — СПЗ-19А. Наборы резистосхв DR1—DR3 — НР1-4-9М могут быть Ш-менены на НР1-4-8М, на зарубе*-э-серии 9А или на соответствующее число обычных малогабаритных резис-; ров указанных на схеме номиналов --зисторы R1—R12 можно размес"." внутри корпуса вилки Х2.
Панели XS1 и XS2 должны выдес -
вать многократную установку и изъ=-.....-
микросхем. Лучше всего приме-.-ZIF-панели (с нулевым усилием ус-; новки), предназначенные для ми«о: схем с расстоянием между рядами •: -тактов 7,5 мм (XS1) и 15mm(XS2). Го^--ся и универсальные панели, допуск;-щие установку как "узких", так и "шиэ:-ких" микросхем.
Учитывая, что ZIF-панели в нескс т= ко раз дороже всех остальных дета~~" программатора, вместе взятых, на пле-те предусмотрены контактные пппп.--ки для установки обычных, желатег^ с цанговыми контактами. Приме*----самые дешевые панели с плоскими • :-тактами нежелательно. После мне: численных замен микросхемы та- ■ контакты теряют надежность. |
НАЛАЖИВАНИЕ
овое включение программатора :оизводят, не соединяя его с компью-м и без программируемой микроомы. Прежде всего, проверяют нали---•е напряжения 13,5...15,5 В на входе 5=0,1 В на выходе стабилизаторов ZA1, DA2. В последнем случае нужное -ачение устанавливают подстроечным :еэистором R19.
При соединении между собой выво-
_;•= 1 и 10 микросхемы DD6 напряжение
- выводах 3, 5, 7, 9, 12, 14, 16, 18
_: -жно уменьшаться с 5 до 3...4 В. Если
~: не так, имеются ошибки в монтаже
-■ микросхема DD6 неисправна.
Для дальнейшей проверки соединяют программатор с компьютером. Сигналы на линиях LPT-порта при работе программатора выглядят на экране осциллографа довольно хаотично, судить по их форме об исправности устройства сложно. Рекомендуется запустить тестовую программу atmeltst.exe, имеющуюся на FTP-cep-вере журнала (адрес указан в конце статьи). В ответ на появившийся на экране запрос введите номер LPT-порта, к которому подключен программатор (1 или 2), после чего экран монитора примет вид, показанный на рис. 2.
Программа предоставляет доступ к любому из четырех регистров DD2—DD5, позволяя записывать в них любые восьмиразрядные двоичные коды. Рекомендуемую последовательность действий подскажет текст в нижней части экрана. Например, для проверки прохождения кодов управления следует выбрать на экране строку "Тест сигналов F3, СО—С2" и проверить с помощью осциллографа или вольтметра логические уровни на выходах микросхемы DD2. Все они должны быть низкими и сменяться высокими при нажатии соответствующих клавиш F1—F8.
Манипулируя состоянием разрядов, проверяют прохождение сигналов по цепям программатора в соответствии с егосхемой. Например, низкому уровню на выводе 19 DD2 (старший разряд регистра) должны соответствовать высокий уровень на выводе 18 DD7 и напряжение 5 В на выходе стабилизатора DA2. После нажатия клавиши F8 напряжение должно увеличиться до 12 В и одновременно возрасти яркость свечения светодиода HL2. После повторного нажатия клавиши F8 напряжение и яркость должны вернуться к прежним значениям.
Аналогичным образом проверяют другие регистры и соединенные с их выходами цепи.
|
ПРОГРАММИРОВАНИЕ
Бесплатно распространяемый пакет программ обслуживания программатора фирмы Atmel можно найти на ее сайте по адресу < a href=http://www.atmel.com/ dyn/resources/proddocuments/APCPGM.EXE>http://www.atmel.com/ dyn/resources/proddocuments/APCPGM.EXE. Входящие в пакет программы пригодны для управления как "фирменным", так и предлагаемым программаторами. Однако лучше воспользоваться русифицированной программой at89.exe. размещенной на FTP-сервере журнала. С ее помощью можно программировать все микроконтроллеры серии АТ89 с параллельным интерфейсом, в том числе АТ89С4051, АТ89С55, AT89S51, AT89S52, AT89S53, "не охваченные" фирменным пакетом.
Программа автоматически определяет тип установленного в одну из панелей микроконтроллера, анализируя для этого его сигнатуру — два или три байта, специально записанные в постоянной памяти. Перечень сигнатур микроконтроллеров семейства АТ89 приведен в таблице. Если все байты сигнатуры равны OFFH, отсутствует в панели или неисправен микроконтроллер, а возможно — не включено питание программатора.
такой режим в свойствах файла. Иначе программирование микросхем придется повторять по три-четыре раза подряд, пока не прекратятся сообщения об ошибках верификации.
Весь процесс программирования занимает не более одной-двух минут, а собственно загрузка FLASH-памяти — максимум 10...15 с. Команды, список которых выведен на экран монитора, подают, нажимая клавиши с буквами латинского алфавита. Регистр (верхний или нижний) не имеет значения.
Имя двоичного файла, данные из которого должны быть загружены в память микроконтроллера, вводят после подачи команды "Чтение файла". Содержимое этой памяти можно предварительно прочитать и сохранить в аналогичном файле (команда "Запись в файл"). При сверке содержимого памяти с данными из файла (команда "Сверка с файлом") возможно появление на экране сообщений, подобных такому:
В ячейке FLASH 039А = FF ?! 6В
Это означает, что в ячейке FLASH-памяти (памяти программ) микроконтроллера по адресу 39АН записан код OFFH вместо 6ВН, указанного в файле.
ЗАМЕНА СТАБИЛИЗАТОРА DA2
При питании от маломощного сете-вого адаптера и пониженном сетево». напряжении на программатор можег поступать всего 12...13 В. Для стаби-. затора DA1 такая ситуация благопр на (на нем рассеивается меньшая мс_ ность). А вот стабилизатор DA2 может выйти из рабочего режима, в резуле~: те чего напряжение, подаваемое -программируемый микроконтролг-;: упадет ниже допустимых 11,5 В. Опыт показывает, что микросхемы фир«/=, Atmel успешно программируются и ~: 10,5 В. Однако гарантировать э нельзя.
|
Если применить в стабилизат:: микросхему КР1184ЕН2 или ее п: тип LP2951CL фирмы Nation» Semiconductor (имеется на многих материнских платах компьютеров), можш добиться надежной работы програ».".• тора при уменьшении напряжения п.--; ния до 11,8 В.
Стабилизатор собирают по схени изображенной на рис. 3, и подюиша-ют к показанным на рис. 1 точкам и В. Микросхема DA2, транзистор резисторы R18—R21 и конденс С14 из программатора должны с=" исключены.
Диод VD1 (см. рис. 3) при высс>:......
логическом уровне в точке А закрыл и выходное напряжение 5±0,03 В за^;-прецизионный делитель напряже-»--находящийся внутри микросхемы QA" При низком уровне в точке А дис. крыт, резисторы R1 и R2 шунтирую" :_ но из плеч внутреннего делителя. В» ходное напряжение возрастав" 12 В (его регулируют подстроечны1 зистором R2). Конденсатор С1 пода= -ет выбросы напряжения при пере*:_ ных процессах. Его емкость (аналог.---! конденсатору С14 на рис. 1) не дог»-, быть слишком большой.
Микросхема КР1184ЕН2 имеет в-тренний детектор понижения выхо^-го напряжения, который срабаты=.~ при его уменьшении более чем на от установленного значения. В рез, -: тате открывается транзистор Л и включается светодиод HL1. Нагрузочная способность выхода невег. с поэтому номинал резистора R4 уме- -шать нельзя.
Если микросхему КР1184Е-. (LP2951CL) приобрести не уда.-: стабилизатор на микросхеме I-(см. рис. 1) можно заменить узлов» схема которого показана на рис. * Минимальное падение напряжения на нем составит 0,15...0,2 В при токе на-"оузки 20 мА. Коллекторный ток тран-:.-стора VT4 при указанном на схеме -:минале резистора R5 не может "севысить 50 мА, что позволяет не . :~анавливать этот транзистор на теллоотвод.
При низком логическом уровне з точке А транзистор VT1 открыт и вы-■ :дное напряжение стабилизатора — ' 2 В (регулируют подстроенным резис-~:эом R1). При высоком уровне и за-<рытом транзисторе оно уменьшится до 5 В. Резисторы R7 и R8 должны иметь предельное отклонение от номи-
|