Стоимость программаторов
промышленного изготовления вряд ли
приемлема для
радиолюбителей, не занимающихся
серийным производством
микроконтроллерных устройств.
Автор предлагаемой
статьи не стал
приобретать промышленный программатор, а
сделал собственный, по его
мнению, удовлетворяющий всем
предъявляемым
к такому устройству требованиям и
способный
работать под
управлением нескольких популярных среди
радиолюбителей программ.
Предлагаемый программатор работает
под управлением
программы PonyProg
[1], распространяемой
бесплатно. Если ограничиться
программированием МК PIC и
микросхем памяти, можно воспользоваться
также программами IC-Progl05
[2]
и WinPic800 [3]. распространяемыми на
тех
же условиях.
Программирование 18-выводных МК PIC
и 20-выводных
AVR производится без
каких-либо коммутаций.
Достаточно установить
МК в
предназначенную для него
панель и выбрать его
тип в меню используемой
программы. От установки
панелей
для всех МК этих семейств
автор
сознательно отказался,
так как в любительской
практике они
используются очень редко.
При необходимости
нужные панели
можно установить
дополнительно или подключать
требующиеся для программирования выводы
МК к предусмотренному в
программаторе разъему. Этот
же
разъем используется при внутрисхемном программировании.
Кроме
МК. устройство
позволяет программировать микросхемы памяти
с последовательным
интерфейсом, имеющиеся в
меню используемых
программ. Для
подобных микро
схем с интерфейсом I2С
в программаторе предусмотрена панель.
До начала процесса программ
ирования и по его
завершении
напряжение питания программируемой микросхемы отключено,
что
дает возможность
безопасно установить микросхему в
панель, а
затем извлечь ее.
Прежде чем
рассматривать работу
программатора подробно,
вспомним некоторые особенности
программирования МК семейств PIC
и AVR. Номера упоминаемых
далее выводов МК
различных
типов можно найти в технической
документации.
Чтобы пере
вести в режим программирования МК
семейства PIC,
требуется подать на
его вывод
MCLR напряжение
+12...14
В. Обмен информацией
с устройством, управляющим программированием,
происходит через двунаправленный вывод
DATA. Синхронизирующие обмен
импульсы
поступают на вывод CLOCK.
МК
семейства
AVR повышенного
напряжения не требуют. Они
переходят в
режим программирования при
низком логическом
уровне на
выводе RESET.
При этом необходимо,
чтобы к соответствующим выводам
МК был подключен кварцевый
резонатор. Информация принимается
через
вывод MOSI, а передается через
вывод
MISO Вход
синхронизирующих импульсов — вывод
SCK
Схема
программатора изображена на
рис. 1
Ее наиболее
существенное
отличие от прототипа заключается
в использовании для
связи с СОМ-портом компьютера микросхемы
МАХ232СРЕ (DA2) —
специализированного
преобразователя уровней RS232—ТТЛ. Это позволило
выполнить
все требования
по уровням передаваемых с
игналов и нагрузочной
способности линий порта
и значительно
улучшило надежность
работы устройства
Чтобы излишне не
нагружать СОМ-порт, предусмотрено питание
программатора и программируемой микросхемы
только от внешнего
источника.
Его постоянное (15 В) или
переменное
(10...12
В) напряжение поступает в
программатор через
диодный мост VD1,
служащий выпрямителем
переменного напряжения
или приводящий
постоянное к правильной
полярности.
Интегральный стабилизатор DA1
питает напряжением 5 В
преобразователь уровня DA2.
Светодиод
HL1 сигнализирует о включении питания.
Стабилизатор
DA3 на
12 В — управляемый.
Он включен
при высоком логическом
уровне
напряжения на управляющем
входе 4
и выключен при
низком уровне. Это свойство
использовано для управления напряжением,
переводящим МК семейства
PIC
в режим программирования, и напряжением
питания
программируемой микросхемы,
которое получают из 12
В с
помощью интегрального стабилизатора
DA4. О
включенном питании
программируемой микросхемы
сигнализирует светодиод HL2.
Очень важен правильный выбор
емкости конденсатора С7 на
выходе стабилизатора DA3.
При
слишком большом ее значении напряжение,
переводящее
МК семейства
PIC в режим программирования,
после включения
стабилизатора будет нарастать
недостаточно быстро,
что приведет
к сбою.
Устанавливать конденсатор С7
слишком маленькой емкости или
вовсе отказываться от него
нельзя — это
приведет
к самовозбуждению стабилизатора и сделает
программирование
невозможным
Диод
VD2 ограничивает до безопасного
значения отрицательное
напряжение, которое может
поступить на
управляющий вход
стабилизатора DA3
с контакта 3
разъема XS1 (линии TXD
СОМ-порта). Узел на транзисторе
VT2 формирует сигнал
RESET
для МК семейства AVR.
Узел
на
транзисторах VT1
и VT3 разделяет имеющуюся
в МК
семейства PIC двунаправленную
линию DATA
на две
однонаправленных для
компьютера. Под названиями
MOSI и MISO эти
же однонаправленные линии используются
при программировании МК
семейства
AVR.
Для аналогичного преобразования в
[1]
был применен
логический инвертор на одном
транзисторе. Однако
его практическое использование
выявило довольно
большое число
сбоев, причина
которых, по мнению
автора, — недостаточная задержка
информационного сигнала на линии
DATA относительно синхронизирующего
на
линии CLOCK. Добавление второго инвертора
увеличило
задержку и
устранило сбои, однако "лишнюю"
инверсию приходится
компенсировать соответствующей настройкой
управляющей пр
ограммы, о чем
будет сказано
далее.
Программатор собран
на макетной плате (рис.
2). Монтаж —
навесной. На плате установлены
всего
три панели для программируемых микросхем
(XS2—XS4),
но ее
размеры (97x55 мм) выбраны
с запасом,
достаточным, чтобы при
необходимости установить
даже 40-контактные
панели. Светодиоды
HL1 и HL2
должны быть разного цвета
свечения, так легче визуально
контролировать режим работы
программатора.
Используя для управления программированием программу
PonyProg,
следует
выбрать в соответствующем ее окне
программатор "SI
Prog I/O" и
задать инверсию
сигналов в
соответствии с
табл. 1. Программа
WinPic при работе в
ОС Windows ХР позволяет
программировать только МК
семейства
PIC и микросхемы памяти. Однако
в
ОС Windows
98 МК этой программой
не программируют
ся. С программой IC-Prog
ситуация обратная.
При настройке
обеих программ
должен быть выбран
программатор "JDM Programmer". Инверсию
сигналов задают в
соответствии с табл. 2
(для
WinPic) и табл. 3 (для
IC-Prog).
Наличие нескольких
во многом равноценных управляющих
программ дает
возможность пользоваться программатором
даже при
возникновении проблем
в работе
с одной из
них. Например, МК, отсутст
вующий в списке доступных одной
программе, может быть
найден
в списке другой.
Такое случилось
при
попытке запрограммировать
МК PIC16F628A. В списке
программы PonyProg
имеется лишь PIC16F628,
но при
его выборе
и устано
вке в панель программатора
микросхемы PIC16F628A на экране
монитора появляется сообщение "Неизвестный
тип микроконтроллера". Даже
если
проигнорировать это сообщение, попытки не
только
запрограммировать, но
и просто прочитать содержимое
памяти МК
положительного результата не
дают. Однако
в списках
программ WinPic800
и IC-Prog нужный
МК есть, его программирование
с помощью этих программ
выполняется без замечаний.
Кроме
МК, упомянутого выше, программатор проверен
с
PIC16F84A-20I/P HATTiny2313-20PU.
ЛИТЕРАТУРА
1. Lanconelly С. PonyProg — serial device programmer — www. lancos.com/prog. html
2. Gijzen B. IC-Prog Prolotype Programmer — www. ic-prog.com/icprog105E.zip
3. Font S. Software for PIC programming Windows 95/98/NT/2000/ME/XP compatible. — www.winpic800. com/descargas/WlnPlc800.zlp
Автор С. МАКАРЕЦ. Журнал Радио №10 2007г.
Источник: eldigi. ru