Программатор для микроконтроллеров AT89C51/52/55
Программатор подключается к последовательному порту компьютера. При управлении программатором используются только стандартные функции Windows API, поэтому программа должна работать под всеми версиями Windows. Я проверял под Windows 98. Если у вас что-то не работает, то пишите, буду дорабатывать.
Основу программатора составляет микроконтроллер AT90S4414. Почему такой дорогой, спросите Вы? Да, можно было использовать контроллер AT89C51. Но если вы только еще собрались делать программатор, т.е. у вас его нет, то чем вы прошьете контроллер для программатора? AT90S4414 дороже, но имеет возможность программирования по последовательной шине SPI. Программатор для такой шины состоит из 3-х резисторов, 3-х конденсаторов и кварца и подключается к параллельному порту. Я использовал программатор SP12 c сайта http://www.xs4all.nl/
sbolt/e-spider_prog.html. Там вы сможете найти схему подключения к порту LPT и программное обеспечение под различные операционные системы: DOS/WINDOWS, LINUX и даже WINDOWS 2000! Кстати, там вы сможете найти программатор и для контроллеров, совместимых с семейством MSC-51 и имеющих интерфейс SPI: AT89S8252, AT89S53.
Для более дешевого варианта преобразователь уровней COM-порта в ТТЛ и обратно выполнен на дискретных элементах, хотя можно было использовать готовые микросхемы типа DS275, MAX232, но их нужно сначала найти и купить. А два транзистора и пяток резисторов с конденсатором можно найти всегда. Правда, такой вариант имеет недостаток: уровень логического «0», передаваемого контроллером, будет не +12 в, а всего +5 в. Но стандарт последовательного порта предполагает уровень логического «0» +3. +12В, так что +5 соответствует стандарту. Эту схему преобразователя я придумал не сам, а нашел на сайте ATMEL www.atmel.com. Там эта схема используется в программаторе для микроконтроллеров семейства AVR. Там же сообщается о том, что старые платы ввода-вывода могут не работать при таком малом уровне напряжения.
Ниже вы можете скачать прошивку для контроллера AT90S4414 в форматах ROM и HEX (SP12 понимает оба этих формата), управляющую программу, иструкцию по сборке и проверке программатора. Управляющая программа имеет подробный Help.
Источник
Радиосхемы Схемы электрические принципиальные
Мы в социальных сетях
Главное меню
Реклама на сайте
Схемы программаторов
Параллельный программатор для микроконтроллеров АТ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»).
ДЕТАЛИ И КОНСТРУКЦИЯ ПРОГРАММАТОРА
Программатор собран на двусторонней печатной плате размером 140×140 мм.
Стабилизатор 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 можно найти на ее сайте по адресу
Входящие в пакет программы пригодны для управления как «фирменным», так и предлагаемым программаторами. Однако лучше воспользоваться русифицированной программой at89.exe. размещенной на FTP-сервере журнала. С ее помощью можно программировать все микроконтроллеры серии АТ89 с параллельным интерфейсом, в том числе АТ89С4051, АТ89С55, AT89S51, AT89S52, AT89S53, «не охваченные» фирменным пакетом. Программа автоматически определяет тип установленного в одну из панелей микроконтроллера, анализируя для этого его сигнатуру — два или три байта, специально записанные в постоянной памяти. Перечень сигнатур микроконтроллеров семейства АТ89 приведен в таблице. Если все байты сигнатуры равны OFFH, отсутствует в панели или неисправен микроконтроллер, а возможно — не включено питание программатора. такой режим в свойствах файла. Иначе программирование микросхем придется повторять по три-четыре раза подряд, пока не прекратятся сообщения об ошибках верификации. Весь процесс программирования занимает не более одной-двух минут, а собственно загрузка FLASH-памяти — максимум 10. 15 с. Команды, список которых выведен на экран монитора, подают, нажимая клавиши с буквами латинского алфавита. Регистр (верхний или нижний) не имеет значения.
Источник