Логотип

Наши каналы в социальных сетях

Схемы программаторов

материалы в категории

Параллельный программатор для микроконтроллеров АТ89С51, АТ89С52

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

Вилку Х2 программатора соединить— с розеткой LPT-порта IBM-совместими»-го компьютера кабелем длиной до 2 м.
В компьютере должен быть включен расширенный режим работы LPT-nope (ЕСР/ЕРР). В современных системных блоках он действует по умолчанию, если это не так, режим порта можно изме­нить, запустив при начальной загрузке компьютера программу BIOS SELECT (пункты меню "Integrated Peripherals"— "Parallel Port Mode").

ДЕТАЛИ И КОНСТРУКЦИЯ ПРОГРАММАТОРА

Программатор собран на двусторонней печатной плате размером 140x140 мм.
Стабилизатор DA1 устанавливают на теплоотвод площадью не ме­нее 20 см2.
Можно собрать программатор и на макетной плате навесным монтажом. Учтите, что конденсаторы С-и кварцевый резонатор ZQ1 должны быть расположены как можно ближе к контактам 18, 19 панели XS2.
Свободные входы микросхем DD1 (выв 13—15), DD2 (вывод 8) и DD7 (выв 15, 17) необходимо соединить с их "общим" выводом или выводом питание повысит помехоустойчивость прибора .
Все цифровые микросхемы можно заменять их функциональными аналогами серий К555, КР1533 или импортными, воспользовавшись, например: рекомендациями [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 В (его регулируют подстроечным резистором R2).
Конденсатор С1 подает выбросы напряжения при перехоных процессах. Его емкость (аналогично конденсатору С14 на рис. 1) не должна быть слишком большой.

Микросхема КР1184ЕН2 имеет внутренний детектор понижения выходного напряжения, который срабатывает при его уменьшении более чем на от установленного значения. В результате открывается транзистор Л и включается светодиод HL1.
Нагру­зочная способность выхода не велика и поэтому номинал резистора R4 уменьшать нельзя.
Если микросхему КР1184ЕН (LP2951CL) приобрести не удалось, то стабилизатор на микросхеме I(см. рис. 1) можно заменить узлом схема которого показана на рис 4 Минимальное падение напряжения на нем составит 0,15...0,2 В при токе нагрузки 20 мА.

Коллекторный ток транзистора VT4 при указанном на схеме номинале резистора R5 не может превысить 50 мА, что позволяет не устанавливать этот транзистор на теплоотвод.


При низком логическом уровне в точке А транзистор VT1 открыт и выходное напряжение стабилизатора — 12 В (регулируют подстроенным резистором R1). При высоком уровне и закрытом транзисторе оно уменьшится до 5 В.

Резисторы R7 и R8 должны иметь предельное отклонение от номинала не более 1 % или быть подобраны такой точностью.

Микросхему КР142ЕН19 можно заменить импортным аналогом TL431CLR

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

Почта сайта