Программаторы для pic своими руками. Самодельный программатор для PIC-контроллеров. Особенности практического использования

Довольно большую популярность в интернете набирают схемы с использованием микроконтроллеров. Микроконтроллер – это такая специальная микросхема, которая, по сути своей, является маленьким компьютером, со своими портами ввода-вывода, памятью. Благодаря микроконтроллером можно создавать весьма функциональные схемы с минимумом пассивных компонентов, например, электронные часы, плееры, различные светодиодные эффекты, устройства автоматизации.

Для того, чтобы микросхема начала исполнять какие-либо функции, нужно её прошить, т.е. загрузить в её память код прошивки. Сделать это можно с помощью специального устройства, называемого программатором. Программатор связывает компьютер, на котором находится файл прошивки с прошиваемым микроконтроллером. Стоит упомянуть, что существуют микроконтроллеры семейства AVR, например такие, как Atmega8, Attiny13, и серии pic, например PIC12F675, PIC16F676. Pic-серия принадлежит компании Microchip, а AVR компании Atmel, поэтому способы прошивки pic и AVR отличаются. В этой статье рассмотрим процесс создания программатора Extra-pic, с помощью которого можно прошить микроконтроллер серии pic.
К достоинствам именно этого программатора можно отнести простоту его схемы, надёжность работы, универсальность, ведь поддерживает он все распространённые микроконтроллеры. На компьютере поддерживается также самыми распространёнными программами для прошивки, такими как Ic-prog, WinPic800, PonyProg, PICPgm.

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


Она содержит в себе две микросхемы, импортную MAX232 и отечественную КР1533ЛА3, которую можно заменить на КР155ЛА3. Два транзистора, КТ502, который можно заменить на КТ345, КТ3107 или любой другой маломощный PNP транзистор. КТ3102 также можно менять, например, на BC457, КТ315. Зелёный светодиод служит индикатором наличия питания, красный загорается во время процесса прошивки микроконтроллера. Диод 1N4007 служит для защиты схемы от подачи напряжения неправильной полярности.

Материалы


Список необходимых для сборки программатора деталей:
  • Стабилизатор 78L05 – 2 шт.
  • Стабилизатор 78L12 – 1 шт.
  • Светодиод на 3 в. зелёный – 1 шт.
  • Светодиод на 3 в. красный – 1 шт.
  • Диод 1N4007 – 1 шт.
  • Диод 1N4148 – 2 шт.
  • Резистор 0,125 Вт 4,7 кОм – 2 шт.
  • Резистор 0,125 Вт 1 кОм – 6 шт.
  • Конденсатор 10 мкФ 16В – 4 шт.
  • Конденсатор 220 мкФ 25В – 1 шт.
  • Конденсатор 100 нФ – 3 шт.
  • Транзистор КТ3102 – 1 шт.
  • Транзистор КТ502 – 1 шт.
  • Микросхема MAX232 – 1 шт.
  • Микросхема КР1533ЛА3 – 1 шт.
  • Разъём питания – 1 шт
  • Разъём COM порта «мама» - 1 шт.
  • Панелька DIP40 – 1 шт.
  • Панелька DIP8 – 2 шт.
  • Панелька DIP14 – 1 шт.
  • Панелька DIP16 – 1 шт.
  • Панелька DIP18 – 1 шт.
  • Панелька DIP28 – 1 шт.
Кроме того, необходим паяльник и умение им пользоваться.

Изготовление печатной платы

Программатор собирается на печатной плате размерами 100х70 мм. Печатная плата выполняется методом ЛУТ, файл к статье прилагается. Отзеркаливать изображение перед печатью не нужно.


Скачать плату:

(cкачиваний: 639)

Сборка программатора

Первым делом на печатную плату впаиваются перемычки, затем резисторы, диоды. В последнюю очередь нужно впаять панельки и разъёмы питания и СОМ порта.



Т.к. на печатное плате много панелек под прошиваемые микроконтроллеры, а используются у них не все выводы, можно пойти на такую хитрость и вынуть неиспользуемые контакты из панелек. При этом меньше времени уйдёт на пайку и вставить микросхему в такую панельку будет уже куда проще.


Разъём СОМ порта (он называется DB-9) имеет два штырька, которые должны «втыкаться» в плату. Чтобы не сверлить под них лишние отверстия на плате, можно открутить два винтика под бокам разъёма, при этом штырьки отпадут, как и металлическая окантовка разъёма.


После впайки всех деталей плату нужно отмыть от флюса, прозвонить соседние контакты, нет ли замыканий. Убедиться в том, что в панельках нет микросхем (вынуть нужно в том числе и МАХ232, и КР1533ЛА3), подключить питание. Проверить, присутствует ли напряжение 5 вольт на выходах стабилизаторов. Если всё хорошо, можно устанавливать микросхемы МАХ232 и КР1533ЛА3, программатор готов к работе. Напряжение питания схемы 15-24 вольта.



Плата программатора содержит 4 панельки для микроконтроллеров и одну для прошивки микросхем памяти. Перед установкой на плату прошиваемого микроконтроллера нужно посмотреть, совпадает ли его распиновка с распиновкой на плате программатора. Программатор можно подключать к СОМ-порту компьютера напрямую, либо же через удлинительный кабель. Успешной сборки!

USB программатор PIC контроллеров - 3.8 out of 5 based on 11 votes

Фотогорафии программатора предоставленны Ансаганом Хасеновым

В данной статье рассматриваются практические аспекты сборки несложного USB программатора PIC микроконтроллеров, который имеет оригинальное название GTP-USB (Grabador TodoPic-USB). Существует старшая модель этого программатора GTP-USB plus который поддерживает и AVR микроконтроллеры, но предлагается за деньги. Однозначных сведений по схемам и прошивкам к GTP-USB plus обнаружить не удалось. Если у вас есть информация по GTP-USB plus, прошу связаться со мной.

Итак, GTP-USB. Данный программатор собран на микроконтроллере PIC18F2550. GTP-USB нельзя рекомендовать начинающим, т.к. для сборки требуется прошить PIC18F2550 и для этого требуется программатор. Замкнутый круг, но не настолько замкнутый, чтобы это стало препятствием для сборки.

Из оригинальной схемы GTP-USB исключены элементы индикации для упрощения рисунка печатной платы. Основной индикатор - это монитор вашего компьютера, на котором из программы WinPic800 версий 3.55G или 3.55B вы можете наблюдать за процессом программирования.

Облегченная схема GTP-USB.

Сигнальные линии Vpp1 и Vpp2 определены под микроконтроллеры в корпусах с различным количеством выводов. Линия Vpp/ICSP определена для внутрисхемного программирования. Остальные линии типовые.

Программатор собран на односторонней печатной плате .

Адаптер можно безболезненно подключать к любому другому программатору PIC-микроконтроллеров, что, безусловно, удобно.

После сборки производим первое включение. По факту первого подключения GTP-USB к ПК появляется сообщение

Затем следует традиционный запрос на установку драйвера. Драйвер расположен в управляющей программе WinPic800 по примерному пути \WinPic800 3.55G\GTP-USB\Driver GTP-USB\.


Соглашаемся с предупреждениями и продолжаем установку.

Обращаю внимание. Данная схема программатора и прошивка к нему проверены на практике и работают с управляющей программой WinPic800 версий 3.55G и 3.55B. Более старшие версии, например, 3.63C не работают с этим программатором. Производим настройку управляющей программы: в меню Settings - Hardware (Установки - Оборудование) выбираем GTP-USB-#0 или GTP-USB-#F1 и нажимаем Apply (Применить).

Нажимаем на панели кнопку и производим тест оборудования. В результате успешного тестирования появляется сообщение (см. ниже), которое не может нас не радовать.

Данный программатор отлично работал со следующими контроллерами (из того что было в наличии): PIC12F675, PIC16F84A, PIC16F628A, PIC16F874A, PIC16F876A, PIC18F252. Тест контроллеров, запись и чтение данных - выполнены успешно. Скорость работы впечатляет. Чтение 1-2 сек. Запись 3-5 сек. Глюков не замечено. Часть зашитых МК протестировано в железе - работает.


Рассказать в:
Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей - не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом - как его запрограммировать. Одним из самых простых вариантов программаторов является JDM программатор.
Программа - программатор ProgCode v 1.0Эта программа работает в WindowsXP. Позволяет программировать PIC контроллеры среднего семейства(PIC16Fxxx) через COM порт компьютера. Индикатор подключения программатора(в правом верхнем углу окна) при отсутствии программатора на выбранном в настройках порту окрашивается в красный цвет. Если программатор подключен - программа обнаруживает его и индикатор в правом верхнем углу принимает вид, который показан на рисунке 1. В левой части окна программы расположена панель управления. Эту панель можно свернуть нажав на кнопку в панели инструментов или, кликнув по левому краю окна (это удобно, когда окно программы развёрнуто во весь экран).

Рисунок (скриншот программы ProgCode v1.0)


Если в программу загружается HEX файл, то желательно перед этим выбрать в списке контроллеров тот МК, для которого расчитана загружаемая прошивка. Если этого не сделать, то файл, расчитанный на микроконтроллер с памятью большего размера чем выбран в списке, будет обрезан и части программы потеряна - при таком варианте загрузки файла выводится предупреждение.

Если этого не произошло, то выбрать нужный контроллер можно и после загрузки файла в программу.

Формат файлов SFRВ программаторе ProgCode поддержана работа с собственным форматом файлов. Эти файлы имеют расширение.SFR и позволяют хранить дополнительную информацию о программе, предназначенной для микроконтроллера. В таком файле сохраняется информация о типе микроконтроллера. Это позволяет при загрузке файла формата SFR не беспокоится о предварительном выборе типа МК в настройках.

Настройки порта и протокола при подключении программатораПосле установки программы - по умолчанию выставлены все настройки, которые необходимы для работы программатора со схемой JDM, приведённой на этой странице.
Инверсия сигнала в приведённой схеме нужна только для выхода OutData, так как в этой цепи сигнал инвертирован согласующим транзистором. На всех остальных выводах инверсия отключена.



Задержка импульса может быть равна 0. Её регулировка предусмотрена для "особо трудных" экземпляров контроллеров, которые не удаётся прошить. То же самое относится и к надбавке к паузе при записи - по умолчанию она нулевая. Если увеличить значения этих настроек, время программирования контроллера значительно увеличится.

Галочка "проверка при записи" должна быть выставлена, если вам нужно "на лету" проверить всё что записывается в микроконтроллер на правильность и соответствие исходному файлу. Если эту галочку снять проверка не производится вообще и сообщений об ошибках не будет, даже если такие ошибки в реальности будут присутствовать.
Выбор скорости порта - скорость может быть любой. Для JDM программатора этот параметр не имеет значения.

В WindowsXP применяется буферизирование передаваемой через порты COM информации. Это так называемые буфера FIFO. Чтобы избежать ошибок при программировании через JDM этот механизм необходимо отключить. Сделать это можно в диспетчере устройств Windows.

Заходим в панель управления, затем:
Администрирование - управление компьютером - диспетчер устройств

Затем выбираем порт, на который подключен JDM программатор(например COM1) - смотрим свойства - вкладка параметры порта - дополнительно. И снимаем галочку на пункте "Использовать буферы FIFO"

Рисунок - Настройка COM порта для работы с JDM программатором



После этого перезагружаем компьютер.


Обозреватель локальных проектовКроме непосредственно программирования контроллеров в программе реализован удобный обозреватель проектов на МК, находящихся как на локальных папках компьютера, так и в интернете. Сделано это для удобства работы. Нередко нужные проекты лежат в разных папках, и приходится тратить время на то, чтобы добраться до нужной дирректории, чтобы просмотреть проект. Здесь нужные папки легко добавить в список папок и просматривать любой проект двумя-тремя кликами мышки.

Любой файл при двойном клике по нему в панели обозревателя откроется в самой программе - это относится к рисункам, html файлам, doc, rtf, djvu(при установленных плагинах), pdf, txt, asm. Файл возможно так-же открыть двойным кликом в обозревателе с помощью внешней программы, установленной на компьютере. Для этого расширение нужного типа файлов необходимо прописать в списке "Ассоциации файлов". Если путь к открывающей программе не указывать - Windows откроет файл в программе по умолчанию(это удобно для открытия архивов, которые не всегда однозначно открываются). Если путь к открывающей программе указан в списке - файл откроется в указанной программе. Удобно просматривать таким образом файлы типа SPL, LAY, DSN.

Рисунок (скриншот обозревателя программы ProgCode v1.0)



Вот так выглядит окно с настройками ассоциаций файлов:




Обозреватель проектов в интернетеОбозреватель проектов в интернете так-же как и локальный обозрватель проектов позволяет быстро перейти на нужный сайт в интернете парой кликов, просмотреть проект и при необходимости сразу прошить программу в МК.



При обзоре проектов в интернете если на странице проекта есть ссылка на файл с расширением SFR(это формат файлов программы ProgCode), то такой файл при клике по нему откроется в новой вкладке программы и сразу готов к прошивке в микроконтроллер.
Список ссылок можно редактировать воспользовавшись кнопкой "Изменить". При этом откроется окно редактирования списка ссылок:





Описание процесса программирования микросхемБольшинство современных микросхем содержит флэш-память, которая программируется посредством протокола I2C или подобных протоколов.
Перезаписываемая память есть в PIC , AVR и других контроллерах, микросхемах памяти типа 24Cxx, и подобных им, различных картах памяти типа MMC и SD, обычных флэш USB картах, которые подключаются к компьютеру через USB разъём.Рассмотрим запись информации во флэш память микроконтроллера PIC16F628AЕсть 2 линии DATA и CLOCK, по которым передаётся информация. Линия CLOCK служит для подачи тактовых импульсов, а линия DATA для передачи информации.
Чтобы передать в микроконтроллер 1 бит информации, необходимо выставить 0 или 1(в зависимости от значения бита) на линии данных(DATA) и создать спад напряжения (переход от 1 к 0) на линии тактирования(CLOCK).
Один бит для контроллера – маловато. Он ждёт вдогонку ещё пять, чтобы воспринять эту посылку из 6-ти бит как команду. Контроллеру очень нравятся команды, а состоять они должны именно из 6-ти бит – такова уж природа у PIC16.
Вот список и значение команд, которые PIC способен понять. Команд не так уж и много – словарный запас у этого контроллера невелик, но не надо думать, что он совсем глуп – бывают устройства и с меньшим количеством команд"LoadConfiguration" 000000 - Загрузка конфигурации
"LoadDataForProgramMemory" 000010 - Загрузка данных в память программ
"LoadDataForDataMemory" - 000011 - Загрузка данных в память данных(EEPROM)
"IncrementAddress" 000110 - Увеличение адреса PC МК
"ReadDataFromProgramMemory" 000100 - Чтение данных из памяти программ
"ReadDataFromDataMemory" 000101 - Чтение данных из памяти данных(EEPROM)
"BeginProgrammingOnlyCycle" 011000 - Начать цикл программирования
"BulkEraseProgramMemory" 001001 - Полное стирание памяти программ
"BulkEraseDataMemory" 001011 - Полное стирание памяти данных(EEPROM)
"BeginEraseProgrammingCycle" 001000 - Начать цикл программированияРеагирует контроллер на эти команды по-разному. По-разному после выдачи команды нужно и продолжать с ним разговор.
Для того чтобы начать полноценный процесс программирования необходимо ещё подать напряжение 12 вольт на вывод MCLR контроллера, после этого подать на него напряжение питания. Именно в такой последовательности подачи напряжений есть определённый смысл. После подачи питания, если PIC сконфигурирован на работу от внутреннего RC генератора, он может начать выполнение собственной программы, что при программировании вещь недопустимая, так как неизбежен сбой.
Предварительная подача 12-ти вольт на MCLR позволяет избежать такого развития событий.
При записи информации во флэш память программ МК после команды"LoadDataForProgramMemory" 000010 - Загрузка данных в память программнеобходимо отправить в контроллер сами данные - 16 бит,
которые выглядят так: “0xxxxxxxxxxxxxx0”.Крестики в этом слове – это сами данные, а нули по краям отправляются как обрамление – это стандарт для PIC16. Значащих битов в слове всего 14. У этой серии контроллеров 14-ти битный формат представления команд.
После окончания передачи слова с данными PIC ждёт следующую команду.
Так как нашей целью является запись слова в память программ МК, следующей командой должна быть команда
"BeginEraseProgrammingCycle" 001000 - Начать цикл программированияПолучив её, контроллер отключается от внешнего мира на 6 миллисекунд, которые нужны ему, чтобы завершить процесс записи.Сигналы на выводах микроконтроллера формируются компьютером при помощи специальных программ - программаторов. Для передачи сигнала могут служить порты COM, LPT или USB. C JDM программатором работают такие программы как PonyProg, IsProg, WinPic800.
Схема JDM программатораОчень простая схема программатора приведена на рисунке. В этой схеме хоть и не реализуется контроль последовательности подачи напряжений, но зато она очень проста и собрать такую схему возможно очень быстро, ипользовав минимумом деталей.
Рисунок (схема JDM программатора)


Одним из вопросов при подключении программатора к компьютеру является вопрос - как обеспечить селективную развязку. Чтобы в случае неисправности в схеме избежать повреждения COM порта. В некоторых схемах применяется микросхема MAX232, которая обеспечивает селективную развязку и согласует уровни сигналов. В этой схеме вопрос решён проще - с помощью применения батарейного питания. Уровень сигнала, поступающего от компьютера ограничивается стабилитронами VD1, VD2, и VD3. Несмотря на простоту схемы JDM программатора с его помощью можно запрограммировать большинство типов PIC микроконтроллеров.Перемычка между выводами COM6(DSR) и COM7(RTS) предназначена для того, чтобы программа могла определить, что программатор подключен к компьютеру.

Поключение выходов программатора к конкретному МК зависит от типа МК. Часто на плату программатора монтируют несколько панелек, которые расчитаны на определённый тип контроллеров.

В таблице приведено назначение ножек некоторых типов МК при программировании.




приведены рисунки с назначением выводов наиболее распространнённых МК при программировании.Цоколёвка (распиновка) микроконтроллеров PIC16F876A, PIC16F873A в корпусе DIP28.

Цоколёвка (распиновка) микроконтроллеров PIC16F874A, PIC16F877A в корпусе DIP40.
Цоколёвка (распиновка) микроконтроллеров PIC16F627A, PIC16F628A, PIC16F648A в корпусе DIP18.
Такое же расположение выводов, предназначенных для программирования, имеют МК PIC16F84, PIC16F84A.

Назначение выводов для микроконтроллеров серии PIC16Fxxx в зависимости от типа корпуса в большинстве случаев является стандартным, но если возникает сомнения на этот счёт, то надёжнее всего свериться с даташитом на конкретный экземпляр МК. Часть документации присутствует на русском сайте http://microchip.ru Полное же собрание даташитов и другой документации находится на сайте производителя PIC микроконтроллеров: http://microchip.com
Индекс проектовПрограмма позволяет напрямую выходить на страницу индекса, парой кликов просматривать описание нужного проекта и сразу-же прошивать программу в контроллер.



При необходимости прошить контроллер выбранной прошивкой - кликаем мышкой на файл формата SFR, к примеру Timer_a.sfr
Программа загружает файл с сервера в новую вкладку.



После этого остаётся только вставить МК в панельку программатора, если это ещё не сделано, и нажать на кнопку "Записать всё".
Программа записывается в МК. После этого контроллер вставляется в плату устройства и устройство готово к работе.

Скачать программу можно на странице загрузки файлов:http://cxema.my1.ru/load/proshivki/material_k_state_prostoj_jdm_programmator_dlja_pic_mikrokontrollerov/9-1-0-1613 Раздел:

Вот есть микроконтроллер, есть написанная программа. Что ещё нужно? Программатор! Ведь без помощи аппаратуры, которая сможет записать последовательностью сигналов процесс, который хочет реализовать человек, сложно будет что-то сделать. А как здорово сделать программатор своими руками!

Также здесь вы найдете описание программаторов и из другого семейства - АВР, но исключительно в сравнительных целях. Приступим к статье, где рассказывается, как сделать программатор-flash своими руками.

Для чего необходим программатор

Так как статья пишется в том числе и для читателей, не слишком осведомленных в этом вопросе, то необходимо взять во внимание и такой пункт. Программатор - это специальное устройство, которое посредством получаемых от компьютера сигналов программирует микроконтроллер, который будет управлять схемой. Качественное устройство является очень важным, ведь в таком случае можно будет быть уверенным в том, что МК не выйдет из строя, или, что важнее, из строя не выйдет компьютер. Есть небольшое уточнение: программатор для PIC своими руками делают только те, у кого есть микроконтроллеры этого семейства. Другие из-за другой архитектуры могут не работать. Но можно попробовать своими силами усовершенствовать представленные схемы и собрать программатор AVR своими руками.

Платные против самодельных

Отдельно нужно рассказать о приобретенных в магазинах и самодельных программаторах. Дело в том, что это устройства не очень-то и простые и требуют уже определённых навыков работы, практики пайки и умения обращаться с железом. При работе с купленным программатором от производителя или его дилера можно быть уверенным в том, что на прибор программа будет записана, и ничего не сгорит. А в случае обнаружения неисправностей в самом начале периода эксплуатации его можно вернуть и получить взамен работоспособное устройство.

А вот с самодельными программаторами всегда немного сложнее. Дело в том, что даже если они и тестировались, то, как правило, в очень узком диапазоне используемой техники, поэтому вероятность того, что что-то пойдёт не так, высока. Но даже если сама схема является полностью работоспособной, нельзя сбрасывать со счётов возможность того, что человек, собиравший схему, ошибётся в чем-то, что-то припаяет не так, и в результате будут иметь место печальные последствия как минимум для программатора. Хотя учитывая то, как любят микроконтроллеры перегорать, повреждения будут не только у него. При пайке своей платы, для того чтобы избежать негативных последствий, перед сборкой механизма следует проверить работоспособность всех элементов, которые будут использованы в плате, с помощью специальных устройств.

Драйвера

Первоначально следует подобрать программное обеспечение. В зависимости от схемы программатор может быть заточен или под один микроконтроллер, или под большое их количество. Тот, что будет далее рассматриваться, рассчитан примерно на 98 программаторов от 12-го до 18-го семейств. Для тех, кому понравится вариант сборки, следует уточнить, что в качестве драйверного программного обеспечения использовалась программа IC-PROG. Можете попробовать работать и с другой, но уже на свой страх и риск. Это информация для тех, кто хочет создать программатор для AVR своими руками. Далее будет указано, для каких семейств микроконтроллеров РІС он рассчитан. Если есть желание сделать программатор AVR своими руками или какой-то другой тип МК, то вы всегда можете попытаться.

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

Вот тут уже можно попробовать сделать программатор для PIC своими руками. В качестве гнезда необходимо использовать разъем DB9. Можно сделать и USB-программатор своими руками, но для него понадобятся дополнительные элементы схемы, которые усложнят и без того довольно сложную плату. Также внимательно рассмотрите рисунок с различными прямоугольниками (чтобы знать, какие части за что отвечают). Выводы должны подключатся именно туда, куда нужно, иначе микроконтроллер превратится в небольшой кусочек пластика и железа, который можно поставить на стеночку как напоминание о былых ошибках. Процесс сборки и использования программатора таков:

  1. Собрать сам программатор так, как написано на схемах. Просмотреть на наличие некачественной пайки, а также потенциальных мест замыкания. Программатор рассчитан на работу с напряжением 15-18В, больше категорически не рекомендуется.
  2. Подготовьте среду управления прошивкой (выше было упоминание одной программы, с которой программатор точно работает).

Процесс прошивки микроконтроллера

Процесс прошивки микроконтроллера данными можно считать продолжением предыдущего списка:

  1. Произвести необходимые для работы программы настройки.
  2. Установить микроконтроллер в программатор так, как отмечено на схеме. Лучше лишний раз убедиться, что всё так, как должно быть, чем ехать за новым МК.
  3. Подключить питание.
  4. Запустить выбранное программное обеспечения (для этого программатора ещё раз посоветуем IC-Prog).
  5. В выпадающем меню вверху справа выбрать, какой именно микроконтроллер следует прошить.
  6. Подготовленный файл выбрать для программирования. Для этого перейдите по пути "Файл" - "Открыть файл". Смотрите, не перепутайте с «Открыть файл данных», это совсем другое, прошить микроконтроллер с помощью второй кнопки не получится.
  7. Нажать на кнопку «Начать программировать микросхему». Примерное время, через которое она будет запрограммирована - до 2 минут. Прерывать процесс программирования нельзя, это чревато выведением из строя микроконтроллера.
  8. И в качестве небольшого контроля нажмите на кнопку «Сравнить микросхему с буфером».

Не очень сложно, но эта последовательность действий позволяет получить качественный программатор, своими руками сделанный, для различных типов микроконтроллеров РІС.

Какие микроконтроллеры поддерживаются и могут быть прошиты программным обеспечением

Как уже выше упоминалось, этот программатор может работать как минимум с 98 моделями. Как можно заметить по схематическим рисункам и платам, он рассчитан на те МК, что имеют 8, 14, 18, 28 и 40 выводов. Этого должно хватить для самых различных экспериментов и построения самых разных механизмов, которые только можно сделать в пределах скромного бюджета среднестатистического гражданина. Можно выразить уверенность, что сделанный программатор своими руками сможет удовлетворить самых требовательных радиолюбителей - при условии, что он будет сделан качественно.

За основу предлагаемого программатора взята публикация из журнала «Радио» №2, 2004г, «Программирование современных PIC16, PIC12 на PonyProg». Это мой первый программатор, который я использовал для прошивки PIC микросхем дома. Программатор представляет собой упрощенный вариант JDM программатора, оригинальная схема имеет преобразователь RS-232 на TTL в виде микросхемы MAX232, она более универсальна, но ее «на коленке» уже не соберешь. Данная схема не имеет вообще ни одного активного компонента, не содержит дефицитных деталей и очень проста, может быть собрана без применения печатной платы.

Рис. 1: Принципиальная схема программатора.

Описание работы схемы
Схема программатора представлена на рис. 1. Резисторы по цепям CLK (тактирование), DATA (информационный), Upp (напряжение программирования) служат для ограничения протекающего тока. PIC контроллеры защищены от пробоя встроенными стабилитронами, поэтому получается некоторая совместимость TTL и RS-232 логики. В представленной схеме присутствуют диоды VD1, VD2, которые «отбирают» плюсовое напряжение от COM порта относительно 5 контакта и передают его на питание контроллера, благодаря чему в некоторых случаях удается избавиться от дополнительного источника питания.

Налаживание
На практике не всегда случается, что данный программатор заработает без налаживания, с 1-го раза, т.к. работа данной схемы сильно зависит от параметров COM порта. Однако у меня, на двух материнских платах Gigabyte 8IPE1000 и WinFast под XP все заработало сразу. Если Вам лень разбираться с неработающей, более сложной схемой программатора, то стоит попробовать собрать эту. Вот некоторые вещи, которые могут повлиять:

Чем новее мат. плата, тем разработчики уделяют этим портам меньше внимания, потому что эти порты давно стали морально устаревшими. Избавиться от этого можно, купив переходник USB-COM, правда опять же купленное устройство может не подойти. Нужные параметры таковы: изменяемое напряжение должно меняться не менее -10В до +10В (лог. 0 и 1) относительно 5-го контакта разъема. Отдааваемый ток должен быть хотя бы таким, чтобы при подключеннии резистора 2,7 кОм между 5-м контактом и исследуемым контактом напряжение не падало ниже 10В (сам таких плат не встречал). Также порт должен правильно определять напряжения, поступающие от контроллера, при уровне напряжения близкого к 0В, но не больше 2В определяется нуль, и соответственно при выше 2В определяется единица.

Также проблемы могут возникнуть из за программного обеспечения.
Особенно это касается ОС LINUX, т.к. из за наличия эмуляторов типа wine, VirtualBox порты могут работать неправильно, а возможностей от них требуется много. Этих проблем я коснусь подробнее в другой статье.

Зная эти особенности, приступим к налаживанию.
Для этого очень желательно иметь программу ICProg 1.05D.
В меню программы нужно во первых выбрать в настройках соотв. порт (COM1. COM2), выбрать JDM программатор. Затем открыть окно «Hardware Check», в меню «Settings». В этом меню нужно по очереди ставить галочки и вольтметром измерять напряжение на контактах подключенного разъема. Если параметры напряжения не соответствуют норме, то к сожалению, это может быть причиной неработоспособности, тогда придется собирать схему с преобразователем RS-232 TTL. Отметив все галочки, нужно убедиться, что на стабилитроне образуется напряжение питания около 5В. Если напряжения в норме и отсутствуют ошибки монтажа, то все должно сработать. Ставим контроллер в панельку, открываем прошивку, программируем. Галочки типа «Invert data out» включать не надо (все сняты). Также не нужно забывать, что некоторые партии контроллеров могут иметь не совсем стандартные параметры, и их прошить не получается, в таких случаях с данным программатором можно попробовать только снизить напряжение питания с 5В до 3-4В, подключив соотв. стабилитрон, посмотреть контроллер на предмет ошибочного включения режима LVP (низковольтное программирование), как предотвратить, можно прочитать в Интернете для конкретного типа контроллера. Повысить напряжение программирования проблеммного контроллера можно, наверное, только усложнив схему введением усилительного каскада с общим эмиттером, запитанного от дополнительного источника питания.

Теперь подробнее о проблеме с питанием устройства. Программатор тестировался с программами ICProg и консольным picprog под Linux, должен работать с любым, который поддерживает JDM, если подключить дополнительный источник питания (он подключается через резистор 1кОм к стабилитрону, диоды с резисторами в этом случае можно вообще исключить). Дело в том, что алгоритмы управления программаторов у отдельного софта разные, программа ICProg, является самой неприхотливой. Замечено, что в ОС Windows эта программа на неиспользуемом контакте 2 поднимала нужное напряжение питания, эта же программа под эмулятором в Linux на другой мат. плате уже не смогла этого сделать, однако выход был найден, отбирая питание из напряжения программирования. В общем, с ICProg, думаю, можно применять этот программатор без дополнительного питания. С другим софтом это гарантировать врядли получится, например, «родной» из репозиториев Ubuntu picprog без питания просто не определяет программатор, выдавая сообщение «JDM hardware not found». Вероятно, он либо принимает какие-то данные, не подавая напряжение программирования, либо делает это слишком быстро, таким образом что фильтрующий конденсатор еще не успевает зарядиться.