Среди цыфровых интегральных микросхем микроконтроллеры (МК) сегодня занимают такое же место, как операционные усилители среди аналоговых. Это универсальные приборы, их применение в электронных устройствах самого различного применения постоянно расширятся. Современные МК объединяют в своем корпусе процессорное ядро, запоминающее устройства для сохранения выполняемой программы и данных, устройства приема входных и формирования выходных сигналов и множество вспомогательных узлов. Работу с МК невозможно производить, не программируя их. В настоящей статье автор приводит описание простого в изготовлении и недорогого радиолюбительского программатора для МК РІC среднего семейства в DIP-корпусах.
Сегодня почти все необходимое для программирования, в том числе источники повышенного напряжения находятся внутри самых МК, а число выводов, соединяемых с программатором, сокращенно до минимума. Обычно достаточно линии синхронизации, одной-двух линий для передачи последовательным кодом команд, адресов и данных а еще одной для подачи сигнала, переводящего контроллер в режим программирования (минимум четыре). Наряду с последовательным в некоторых МК используется режим параллельного программирования, причем возможности последнего шире. Аппаратная часть программатора во многих случаях превратилась в простой буфер, согласующий логические уровни сигналов одного из портов компьютера и контроллера. Сравнительно сложной она остается лишь у приборов, способных работать с программируемыми микросхемами различных типов. Однако, как и у разработанного и описанного выше программатора, схема может быть достаточно простой.
Все множество микроконтроллеров РІС, как, впрочем , и других МК, можно разделить на группы по числу выводов. Самые маленькие – это 8- или даже 6-выводные МК серии PIC12F. Их применяют, когда достаточно 3-6 внешних сигналов. Следующая группа – МК в корпусе с 18(20) выводами (PIC16F84, PIC16F628 и др.). К ним уже можно подключить цифровой семисегментный индикатор, и еще остается 7-9 выводов для кнопок, разных датчиков и внешних сигналов. Конечно, этого не всегда достаточно, поэтому также применяют МК с 28 и 40 выводами (например, PIC16F87x). По системе команд и такими характеристиками, как быстродействие, объем памяти, МК имеют, как правило, более расширенную память программ и данных.
Современная тенденция – все большая универсализация выводов микроконтроллера. Неприкосновенными остаются лишь цепи питания. Нередко выводи имеют не только двойное, но и тройное назначение, совмещая разные функции в зависимости от выбранной конфигурации аппаратной части. Для связи программаторов с компьютером (ПК) используются стандартные порты ПК, такие как COM, LPT и USB. Важна возможность из выходных сигналов портов формировать нужные импульсы, программно изменяя уровни напряжения этих портов, и «читать» ответные сигналы МК. Число практически равноправных выходных сигналов легко получить не только напряжение +5 В мощностью, достаточной для питания самого адаптера и программируемой микросхемы, но и +12…14 В для программирования МК. При этом удается обойтись без дополнительного внешнего источника питания, который, как правило, необходим LPT адаптерам.
В старых ПК последовательные порты (СОМ-порты) могут иметь 9 или 25 выводов. При совпадении типа разъемов ПК и программатора можно изготовить переходник самому по схеме, показанной на рис.1. Для подключения адаптера с 25-контактной розеткой к 9-контактной вилке порта разъем Х1 должен быть розеткой (индекс F ), а Х2 – вилкой (с индексом М). В противоположном случае – наоборот . Длинна соединительных кабелей (шлейфов) или проводов компьютер-программатор во всех случаях должна быть минимальной, не более 0,2…0,5 м. Понятно, это доставит некоторые неудобства, так как разъемы портов размещены обычно на труднодоступной тыльной стороне корпуса системного блока. Но придется смириться с неудобствами. Именно длинные провода – одна из главных причин сбоев в процессе программирования.
Принципиальная электрическая схема программатора (адаптера) показана на рис.2. За основу взята схема, так называемого, JDM-программатора. Его схема содержит ряд решений «на грани фола», однако адаптер зарекомендовал себя с наилучшей стороны. Автор пользуется таким программатором неизменно уже около 10-ти лет. Сбои были только по невнимательности оператора (неправильное указание типа контроллера, неправильная установка контроллера в панель и т.д.).
Схема содержит всего два транзистора Q1 и Q2, шесть диодов D1- D6, в том числе 2 стабилитрона D5, D6 на 5,1 и на 9,1 В, два конденсатора С1 и С2, сдвоенный переключатель SW1 и несколько резисторов. В прижимную панельку SOCZET 40 с нулевым усилием можно устанавливать PIC-контроллеры в DIP-корпусах на 8, 16, 28 и на 40 выводов, как указано на схеме рис.2. При этом переключатель SW1 также необходимо устанавливать в соответствующее положение. Для работы с программатором на компьютере устанавливается программа-оболочка IC-Prog. Программа позволяет работать с большим числом как программируемых микросхем, так и JDM-адаптеров различных типов, в том числе и представленном в этой статье.
Для операционных систем Windows-2000 и Windows XP потребуется еще один файл: icprog.sys. Файл драйвера необходимо поместить в одну папку с исполняемой программой icprog.exe. Программа русифицирована. В опции «Language» (язык) нужно установить «Russian» (рис.3). В разделе «Настройки» - «Программатор» нужно установить «JDM Programmer» (рис.4). При первом запуске IC-Prog в операционных системах Windows-200 и Windows XP необходимо в меню «Настройки» - «Опции» открыть закладку «Общее» и отметить в ней пункт «NT/2000». В разделе «Найстройки» - «Программатор» нужно установить максимальную задержку ввода-вывода, равную 40, для старых компьютеров – меньшую (рис.4). Тип используемой микросхемы выбирают в меню «Настройки» - «Микросхемы» (рис.5).
Интересная особенность буфера памяти программы IC-Prog – это возможность дизассемблировать находящиехся в буфере коды и выдавать в форме команд MK. К сожаление, дизассембер «знаком» только с системой команд микроконтроллеров серии PIC16F. К ним можно добавить PIC12F, если поместить в папку с файлом icprog.exe файл динамической библиотеки disasm.dll, которую надо скачать со странницы [3]. При программировании особое внимание нужно обращать на правую часть окна IC-Prog. Там находится табло «Конфигурация», в которой необходимо обратить внимание на закладку «Код защиты». Должна стоять опция: «CP OFF». В этом случае код защиты микроконтроллера не установлен, его можно перепрограммировать и считывать десятки тысяч раз. Если установлена другая опция, то микросхема программируется всего один раз, но ее уже невозможно считать, хотя возможно стереть и переписать новую прошивку, но эта тема отдельной публикации.
Источник: Радиоаматор №9, 2014
Автор: Александр Саволюк, г. Киев