Программатор для PIC, AVR и микросхем памятиСтоимость программаторов промышленного изготовления вряд ли приемлема для
радиолюбителей, не занимающихся серийным производством микроконтроллерных
устройств. Автор предлагаемой статьи не стал приобретать промышленный
программатор, а сделал собственный, по его мнению, удовлетворяющий всем
предъявляемым к такому устройству требованиям и способный работать под
управлением нескольких популярных среди радиолюбителей программ.
Предлагаемый программатор работает под управлением программы 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г.
Связь с автором: Нет данных
Веб сайт автора: Нет данных
Прислал: Нет данных
Источник: http://eldigi.ru
|