"Параллельный" программатор для АТ89

С. РЮМИК, г. Чернигов, Украина
Широкими возможностями при сравнительной дешевизне внимание радиолюбителей привлекают 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 с. Команды, список которых выведен на экран монитора, подают, нажимая клавиши с буквами ла­тинского алфавита. Регистр (верхний или нижний) не имеет значения.

Байты сигнатуры
Микросхема
(Hex)
1
2
3
АТ89С1051
11
Нет
AT89C1051U
12
Нет
АТ89С2051
21
Нет
АТ89С2051Х2
22
Нет
АТ89С4051
41
Нет
АТ89С51
51
FF
АТ89С51-хххх-5
51
05
AT89LV51
61
FF
АТ89С52
52
FF
АТ89С52-ХХХХ-5
52
05
AT89LV52
62
FF
AT89S53
53
Нет
AT89LS53
63
Нет
АТ89С55
55
FF
АТ89С55-ХХХХ-5
55
05
AT89LV55
65
FF
AT89S8252
72
Нет
AT89LS8252
82
Нет
Имя двоичного файла, данные из ко­торого должны быть загружены в память микроконтроллера, вводят после пода­чи команды "Чтение файла". Содержи­мое этой памяти можно предваритель­но прочитать и сохранить в аналогичном файле (команда "Запись в файл"). При сверке содержимого памяти с дан­ными из файла (команда "Сверка с фай­лом") возможно появление на экране сообщений, подобных такому: В ячейке 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 должны иметь предельное отклонение от номи-

нала не более 1 % или быть подобраны такой точностью. Микросхему •Р142ЕН19 можно заменить импорт-чым аналогом TL431CLR ЛИТЕРАТУРА 1. Using a Personal Computer to Program ■- e AT89C51 /C52/LV51 /LV52/C1051 /C2051. — . 2. AT89 Series Programmer Interface — 'tp: //www. atmel.com/pub/atmel/ apcpgm.exe>. 3. Рюмик С. Замена микросхем в фир­менном программаторе. — Радиомир. Ваш • змпьютер, 2003, № 5, с. 32—34. Редактор — А. Долгий, графика — А. Долгий, скриншот — автора

Обсудить эту статью на форуме (0 ответов).
Вся информация, предоставленная на данном ресурсе разрешена к ознакомлению детям школьного возраста. Все практическое использование может быть связана с повышенной электрической опасностью и разрешено детям только под присмотром взрослых.