Рабочие программаторы пик контроллеров своими руками. Как программировать PIC микроконтроллеры или Простой JDM программатор

1. ПРОГРАММАТОР ДЛЯ PIC-КОНТРОЛЛЕРОВ

Я надеюсь, что моя статья поможет некоторым радиолюбителям перешагнуть порог от цифровой техники к микроконтроллерам. В Интернете и радиолюбительских журналах много программаторов: от самых простых до очень накрученных. Мой не очень сложный, но надежный.

Первый вариант программатора предназначен для программирования 18-ти и 28-ми "пиновых" PIC контроллеров. В основу программатора положена схема из журнала Радио № 10 за 2007 год. Но подбор конденсатора С7, эксперименты с разными вариантами ICprog, PonyProg, WinPic и скоростями чтения-записи не дали желаемого результата: успешное программирование получалось через раз. И это продолжалось до тех пор, пока не сделал питание +5В программируемой микросхемы отдельно, а не после 12-ти вольтного стабилизатора. Получилась такая схема.

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

Со временем сделал шнур-удлинитель длинной около 1 метра. Теперь программатор лежит рядом с монитором и подключен к COM порту. Работает нормально: многократно программировались микроконтроллеры PIC16F84A, PIC16F628A, PIC16F873A.

Обратите внимание: микросхема Мах и светодиоды установлены со стороны печатных проводников. Панельки - ZIF-28, одна из них служит для 18-ти выводных PIC. На панельках нанесены метки первых ножек и числа «18» и «28». В корпусе вилки-адаптера установлен трансформатор 220 на 15 вольт, 4 ватта. Включать в розетку нужно после установки микроконтроллера в панельку. Транзисторы n-p-n маломощные высокочастотные (300Мгц) в корпусе to-92.

Разъём XP временно не устанавливал, а потом оказалось, что он особо и не нужен. Пришлось как-то программировать впаянный МК, так я провода прямо в ZIF вставил и зафиксировал. Перепрограммирование прошло успешно.

Я работаю c программами ICprog и WinPic-800.

В программе IC-prog 1.05D следующие настройки программатора:

  • Программатор – JDM Programmer
  • Порт –Com1
  • Прямой доступ к портам.
  • Инверсия: ввода, вывода и тактирования (поставить галочки).

В WinPic-800 –v.3.64f всё идентично, только нужно еще поставить “птицу” в использовании MCLR.

В интернете можно свободно и бесплатно скачать эти программы. Но для облегчения жизни, я попробую приложить все необходимое. Просто вспомнил: сколько всяких “ненужностей” я сам накачал с интернета, и сколько времени на разборки всего этого потратил.

  • Печатная плата программатора
  • Программа WinPic-800 ( )
  • Программа IC-Prog ()
  • Статья по IC-Prog.

2. ПРОГРАММАТОР-2 ДЛЯ PIC-КОНТРОЛЛЕРОВ

Со временем появилась необходимость в программировании 14-ти и 40-ка "пиновых" пиков. Решил сделать программатор для всего среднего семейства PIC-ов. Схема та же, только добавились две панельки. Всё это разместилось в корпусе от бывшего мультиметра.

В печатную плату 13 февраля 2014 года внесено исправление: от 5-го контакта разъёма RS232 дорожка идет к минусу питания (а на прежней - к 6-ой ножке микросхемы МАХ). Новая печатка в "programer2-2".

Можно сэкономить одну КРЕН-ку. Т.е. подключать от одного 5-ти вольтного стабилизатора всю схему. VR3 и С9 не устанавливать, а поставить перемычку (на схеме указана пунктиром). Но я пока КРЕНку не выпаивал. Многократно программировал PIC16F676, 628А, 84А и 873А. Но еще не пробовал 877.

Некоторые конденсаторы установлены со стороны печатных проводников. КРЕНки располагаются в горизонтальном положении. Чтобы не прокладывать проводники, я установил С7 – 2шт и R12 – 3шт.

Очень важно: корпус разъёма RS232 должен быть соединен с минусом питания.

Блок питания (15 В) и программы используются те же, что и в первом варианте.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Схема 1
DD1 ИС RS-232 интерфейса

MAX232E

1 MAX232CPE В блокнот
VT1-VT4 Биполярный транзистор

2N3904

4 TO-92 В блокнот
VDS1 Диодный мост

DB157

1 В блокнот
VD1 Выпрямительный диод

1N4148

1 В блокнот
VR1, VR3 Линейный регулятор

L7805AB

1 В блокнот
VR2 Линейный регулятор

KA78R12C

1 В блокнот
С1 470 мкФ 35В 1 В блокнот
С2, С3, С5, С6 Электролитический конденсатор 10 мкФ 50В 4 В блокнот
С4, С8 Электролитический конденсатор 470 мкФ 16В 2 В блокнот
С7 Электролитический конденсатор 1 мкФ 25В 1 В блокнот
С11 Конденсатор 0.1 мФ 1 В блокнот
R1, R7 Резистор

10 кОм

2 В блокнот
R2 Резистор

470 Ом

1 В блокнот
R3, R5, R11 Резистор

4.7 кОм

3 В блокнот
R4, R10 Резистор

2 кОм

2 В блокнот
R6, R8, R9 Резистор

1 кОм

3 В блокнот
R12 Резистор

240 Ом

1 В блокнот
HL1 Светодиод 1 Красный В блокнот
HL2 Светодиод 1 Зеленый В блокнот
Схема 2
DD1 ИС RS-232 интерфейса

MAX232E

1 MAX232CPE В блокнот
VT1-VT4 Биполярный транзистор

2N3904

4 TO-92 В блокнот
VDS1 Диодный мост

DB157

1 В блокнот
VD1 Выпрямительный диод

1N4148

1 В блокнот
VR1, VR3 Линейный регулятор

L7805AB

2 В блокнот
VR2 Линейный регулятор

KA78R12C

1 В блокнот
C1, C2, C4, C5 Конденсатор 10мкФ 50В 4 В блокнот
C3 Электролитический конденсатор 470мкФ 35В 1 В блокнот
C6, C9 Электролитический конденсатор 470мкФ 16В 2 В блокнот
C7.1-C7.3 Конденсатор 0.1 мкФ 3

Развитие электроники идёт стремительными темпами, и всё чаще главным элементом того или иного устройства является микроконтроллер. Он выполняет основную работу и освобождает проектировщика от необходимости создания изощрённых схемных решений, тем самым уменьшая размер печатной платы до минимального. Как всем известно, микроконтроллером управляет программа, записанная в его внутреннюю память. И если опытный программист-электронщик не испытывает проблем с использованием микроконтроллеров в своих устройствах, то для начинающего радиолюбителя попытка записать программу в контроллер (особенно PIC) может обернуться большим разочарованием, а иногда и небольшим пиротехническим шоу в виде дымящей микросхемы.

Как ни странно, но при всём величии сети Интернет в нём очень мало информации о прошивке PIC-контроллеров , а тот материал что удаётся найти - очень сомнительного качества. Конечно, можно купить заводской программатор за неадекватную цену и шить сколько душе угодно, но что делать, если человек не занимается серийным производством. Для этих целей можно собрать несложную и не дорогую в реализации самоделку , именуемую JDM-программатором по приведенной ниже схеме (рисунок №1):



Рисунок №1 - схема программатора


Сразу привожу перечень элементов для тех, кому лень всматриваться в схему:

  • R1 - 10 кОм
  • R2 - 10 кОм (подстроченный). Регулировкой сопротивления данного резистора нужно добиться около 13В на выводе №4 (VPP) во время программирования. В моём случае сопротивление составляет 1,2 кОм
  • R3 - 200 Ом
  • R4, R5 - 1,5 кОм
  • VD1, VD2, VD3, VD4, VD6 - 1N4148
  • VD5 - 1N4733A (Напряжение стабилизации 5,1В)
  • VD7 - 1N4743A (Напряжение стабилизации 13В)
  • C1 - 100 нФ (0,1 мкФ)
  • C2 - 470 мкФ х 16 В (электролитический)
  • SUB-D9F - разъём СОМ-порта (МАМА или РОЗЕТКА)
  • Панелька DIP8 - зависит от используемого вами контроллера

В схеме использован пример подключения таких распространённых контроллеров, как PIC12F675 и PIC12F629 , но это совсем не значит, что прошивка других серий PIC будет невозможна. Чтобы записать программу в контроллер другого типа, достаточно перекинуть провода программатора в соответствии с рисунком №2, который приведён ниже.



Рисунок №2 - варианты корпусов PIC-контроллеров с необходимыми выводами


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

Хоть сама схема довольно проста и не вызовет трудностей в сборке, но она тоже требует уважения. Поэтому неплохо было бы сделать под неё печатную плату. После некоторых манипуляций с программой SprintLayout , текстолитом, дрелью и утюгом, на свет родилась вот такая заготовка (фото №3).



Фото №3 - печатная плата программатора


Скачать исходник печатной платы для программы SprintLayout можно по этой ссылке:
(скачиваний: 670)
При желании его можно изменить под свой тип PIC-контроллера. Для тех, кто решил оставить плату без изменений, выкладываю вид со стороны деталей для облегчения монтажа (рисунок №4).



Рисунок №4 - плата с монтажной стороны


Ещё немного колдовства с паяльником и мы имеем готовое устройство, способное прошить PIC-контроллер через COM-порт вашего компьютера. Ещё тёпленький и не отмытый от флюса результат моих стараний показан на фото №5.



Фото №5 - программатор в сборе


С этого момента, первый этап на пути к прошивке PIC-контроллера , подошёл к концу. Второй этап будет включать в себя подключение программатора к компьютеру и работу с программой IC-Prog .
К сожалению, не все современные компьютеры и ноутбуки способны работать с данным программатором ввиду банального отсутствия на них COM-портов , а те что установлены на ноутбуках не выдают необходимые для программирования 12В . Так что я решил обратится к своему первому ПК , который давным-давно пылился и ждал своего звёздного часа (и таки дождался).
Итак включаем компьютер и первым делом устанавливаем программу IC-Prog . Скачать её можно с сайта автора или по этой ссылке:
(скачиваний: 769)
Подключаем программатор к COM-порту и запускаем только что установленное приложение. Для корректной работы необходимо выполнить ряд манипуляций. Изначально необходимо выбрать тот тип контроллера, который собираемся шить. У меня это PIC12F675 . На скриншоте №6 поле для выбора контроллера выделено красным цветом.



Скриншот №6 - выбор типа микроконтроллера




Скриншот №7 - настройка метода записи контроллера


В этом же окне переходим во вкладку "Программирование " и выбираем пункт "Проверка при программировании ". Проверка после программирования может вызвать ошибку, так как в некоторых случаях самой прошивкой устанавливаются фьюзы блокировки считывания СР . Чтобы не морочить себе голову данную проверку лучше отключить. Короче следуем скриншоту №8.



Скриншот №8 - настройка верификации


Продолжаем работу с этим окном и переходим на вкладку "Общие ". Здесь необходимо задать приоритет работы программы и обязательно задействовать NT/2000/XP драйвер (скриншот №9). В некоторых случаях программа может предложить установку данного драйвера и потребуется перезапуск IC-Prog .



Скриншот №9 - общие настройки


Итак, с этим окном работа окончена. Теперь перейдём к настройкам самого программатора. Выбираем в меню "Настройки"->"Настройки программатора " или просто нажимаем клавишу F3 . Появляется следующее окно, показанное на скриншоте №10.



Скриншот №10 - окно настроек программатора


Первым делом выбираем тип программатора - JDM Programmer . Далее выставляем радиокнопку использования драйвера Windows . Следующий шаг подразумевает выбор COM-порта , к которому подключен ваш программатор. Если он один, вопросов вообще нет, а если более одного - посмотрите в диспетчере устройств, какой на данным момент используется. Ползунок задержки ввода/вывода предназначен для регулирования скорости записи и чтения. Это может понадобится на быстрых компьютерах и при возникновении проблем с прошивкой - этот параметр необходимо увеличить. В моём случае он остался по умолчанию равным 10 и всё нормально отработало.

На этом настройка программы IC-Prog окончена и можно переходить к процессу самой прошивки, но для начала считаем данные с микроконтроллера и посмотрим что в него записано. Для этого на панели инструментов нажимаем на значок микросхемы с зелёной стрелкой, как показано на скриншоте №11.



Скриншот №11 - процесс чтения информации с микроконтроллера


Если микроконтроллер новый и до этого не прошивался, то все ячейки его памяти будут заполнены значениями 3FFF , кроме самой последней. В ней будет содержаться значение калибровочной константы. Это очень важное и уникальное для каждого контроллера значение. От него зависит точность тактирования, которая путём подбора и установки этой самой константы закладывается заводом изготовителем. На скриншоте №12 показана та ячейка памяти, в которой будет храниться константа при чтении контроллера.



Скриншот №12 - значение калибровочной константы


Повторюсь, что значение уникальное для каждой микросхемы и не обязательно должно совпадать с тем, что на рисунке. Многие по неопытности затирают эту константу и в последствии PIC-контроллер начинает некорректно работать, если в проекте используется тактирование от внутреннего генератора. Советую записать эту константу и наклеить надпись с её значением прямо на контроллер. Таким образом вы избежите множество неприятностей в будущем. Итак, значение записано - двигаемся дальше. Открываем файл прошивки, имеющий как правило расширение .hex . Теперь вместо надписей 3FFF , буфер программирования содержит код нашей программы (скриншот №13).



Скриншот №13 - прошивка, загруженная в буфер программирования


Выше я писал, что многие затирают калибровочную константу по неосторожности. Когда же это происходит? Это случается в момент открытия файла прошивки. Значение константы автоматически меняется на 3FFF и если начать процесс программирования, то назад дороги уже нет. На скриншоте №14 выделена та ячейка памяти где ранее была константа 3450 (до открытия hex-файла ).

Так уж сложилось, что знакомство с микроконтроллерами я начал с AVR. PIC микроконтроллеры до поры, до времени — обходил стороной. Но, все же на них тоже ведь есть уникальные, интересные для повторения, конструкции! А ведь эти микроконтроллеры тоже прошивать нужно . Эту статью пишу в основном для себя самого. Чтобы не забыть технологии, как без проблем и бессмысленных потерь времени прошить PIC микроконтроллер.

Как программировать PIC микроконтроллеры или Простой JDM программатор

Для первой схемы — долго и упорно пытался сделать PIC программатор по найденным в интернете схемам — ничего не вышло . Стыдно, но пришлось обращаться к знакомому, чтобы прошил МК. Но ведь это не дело — постоянно бегать по знакомым! Этот же знакомый и посоветовал простенькую схему, работающую от СОМ порта. Но даже и тогда, когда я ее собрал — все равно ничего не получалось . Ведь мало собрать программатор — нужно еще под него настроить программу, которой будем прошивать. А вот как раз это у меня и не получалось. Целая туча инструкций в интернете, и мало какая мне помогла…

Тогда, мне удалось прошить один микроконтроллер. Но так как прошивал в условиях жесткого дефицита времени — не догадался сохранить хотя бы ссылку на инструкцию. И ведь не нашел ее вполедствии. Поэтому повторюсь — пишу статью, чтобы иметь свою собственную инструкцию.

Итак, программатор для PIC микроконтроллеров. Простой, хотя и не 5 проводков, как для AVR микроконтроллеров, который я использую до сих пор. Вот схема:

Вот печатная плата ().

СОМ разъем припаивается штырьками прямо на контактные площадки (главное — не запутаться с нумерацией). Второй ряд штырьков соединяется с платой маленькими перемычками (очень непонятно сказал, ага). Попробую дать фотографию… хоть она и страшная (нету у меня сейчас нормального фотоаппарата ).
Самое злобное в том — что для PIC микроконтроллеров для прошивки нужны 12 вольт. А лучше не 12, а чуточку побольше. Скажем, 13. Или 13.5 (кстати, специалисты — поправьте меня в комментариях, если ошибаюсь. Пожалуйста.). 12 вольт еще можно где-то добыть. А 13 где? Я то выходил из положения просто — брал свежезаряженный литий-полимерный аккумулятор, в котором было 12.6 вольт. Ну или вообще четырехбаночный аккумулятор, с его 16 вольтами (прошил так один PIC — без проблем).

Но я опять отвлекся. Итак — инструкция по прошивке PIC микроконтроллеров. Ищем программу WinPIC800 (к сожалению простая и популярная icprog у меня не заработала,) и настраиваем ее так, как показано на скриншоте.

После этого — открываем файл прошивки, подключаем микроконтроллер и прошиваем.

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

Для того, чтобы микросхема начала исполнять какие-либо функции, нужно её прошить, т.е. загрузить в её память код прошивки. Сделать это можно с помощью специального устройства, называемого программатором. Программатор связывает компьютер, на котором находится файл прошивки с прошиваемым микроконтроллером. Стоит упомянуть, что существуют микроконтроллеры семейства 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 панельки для микроконтроллеров и одну для прошивки микросхем памяти. Перед установкой на плату прошиваемого микроконтроллера нужно посмотреть, совпадает ли его распиновка с распиновкой на плате программатора. Программатор можно подключать к СОМ-порту компьютера напрямую, либо же через удлинительный кабель. Успешной сборки!

Итак, пришло время изучать микроконтроллеры, а потом и их программировать, а так же хотелось собирать устройства на них, схем которых сейчас в интернете ну просто море. Ну нашли схему, купили контроллер, скачали прошивку….а прошивать то чем??? И тут перед радиолюбителем, начинающим осваивать микроконтроллеры, встает вопрос – выбор программатора! Хотелось бы найти оптимальный вариант, по показателю универсальность - простота схемы - надёжность. «Фирменные» программаторы и их аналоги были сразу исключены в связи с довольно сложной схемой, включающей в себя те же микроконтроллеры, которые необходимо программировать. То есть получается «замкнутый круг»: что бы изготовить программатор, необходим программатор. Вот и начались поиски и эксперименты! В начале выбор пал на PIC JDM. Работает данный программатор от com порта и питается от туда же. Был опробован данный вариант, уверенно запрограммировал 4 из 10 контроллеров, при питании отдельном ситуация улучшилась, но не на много, на некоторых компьютерах он вообще отказался что либо делать да и защиты от «дурака» в нем не предусмотрено. Далее был изучен программатор Pony-Prog. В принципе, почти тоже самое что и JDM.Программатор «Pony-prog», представляет очень простую схему, с питанием от ком-порта компьютера, в связи с чем, на форумах, в Интернете, очень часто появляются вопросы по сбоям при программировании того, или иного микроконтроллера. В результате, выбор был остановлен на модели «Extra-PIC». Посмотрел схему – очень просто, грамотно! На входе стоит MAX 232 преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах с уровнями ТТЛ или КМОП, не перегружает по току COM-порт компьютера, так как использует стандарт эксплуатации RS232, не представляет опасности для COM-порта.Вот первый плюс!
Работоспособен с любыми COM-портами, как стандартными (±12v; ±10v) так и с нестандартными COM-портами некоторых моделей современных ноутбуков, имеющих пониженные напряжения сигнальных линий, вплоть до ±5v – еще плюс! Поддерживается распространёнными программами IC-PROG, PonyProg, WinPic 800 (WinPic800) и другими – третий плюс!
И питается это все от своего собственного источника питания!
Было решено – надо собирать! Так в журнале Радио 2007 №8 был найден доработанный вариант этого программатора. Он позволял программировать микроконтроллеры в двух режимах.
Известны два способа перевода микроконтроллеров PICmicro в режим программирования:
1.При включённом напряжении питания Vcc поднять напряжение Vpp (на выводе -MCLR) от нуля до 12В
2.При выключенном напряжении Vcc поднять напряжение Vpp от нуля до 12В, затем включить напряжение Vcc
Первый режим - в основном для приборов ранних разработок, он накладывает ограничения на конфигурацию вывода -MCLR, который в этом случае может служить только входом сигнала начальной установки, а во многих микроконтроллерах предусмотрена возможность превратить этот вывод в обычную линию одного из портов. Это еще один плюс данного программатора. Схема его приведена ниже:

Крупнее
Все было собрано на макетке и опробовано. Все прекрасно и устойчиво работает, глюков замечено небыло!
Была отрисована печатка для этого программатора.
depositfiles.com/files/mk49uejin
все было собрано в открытый корпус, фото которого ниже.




Соединительный кабель был изготовлен самостоятельно из отрезка восьмижильного кабеля и стандартных комовских разьемах, никакие нуль модемные тут не прокатят, предупреждаю сразу! К сборке кабеля следует отнестись внимательно, сразу избавитесь от головной боли в дальнейшем. Длина кабеля должна быть не более полутора метров.
Фото кабеля


Итак, программатор собран, кабель тоже, наступил черед проверки всего этого хозяйства на предмет работоспособности, поиск глюков и ошибок.
Сперва наперво устанавливаем программу IC-prog, которую можно скачать на сайте разработчика www.ic-prog.com, Распакуйте программу в отдельный каталог. В образовавшемся каталое должны находиться три файла:
icprog.exe - файл оболочки программатора.
icprog.sys - драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы.
icprog.chm - файл помощи (Help file).
Установили, теперь надо бы ее настроить.
Для этого:
1.(Только для Windows XP): Правой кнопкой щёлкните на файле icprog.exe. «Свойства» >> вкладка «Совместимость» >> Установите «галочку» на «Запустить программу в режиме совместимости с:» >>выберите «Windows 2000».
2.Запустите файл icprog.exe. Выберите «Settings» >> «Options» >> вкладку «Language» >> установите язык «Russian» и нажмите «Ok».
Согласитесь с утверждением «You need to restart IC-Prog now» (нажмите «Ok»). Оболочка программатора перезапустится.
Настройки" >> «Программатор

1.Проверьте установки, выберите используемый вами COM-порт, нажмите „Ok“.
2.Далее, „Настройки“ >> „Опции“ >> выберите вкладку „Общие“ >> установите „галочку“ на пункте „Вкл. NT/2000/XP драйвер“ >> Нажмите „Ok“ >> если драйвер до этого не был устновлен на вашей системе, в появившемся окне „Confirm“ нажмите „Ok“. Драйвер установится, и оболочка программатора перезапустится.
Примечание:
Для очень „быстрых“ компьютеров возможно потребуется увеличить параметр „Задержка Ввода/Вывода“. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы.
3.»Настройки" >> «Опции» >> выберите вкладку «I2C» >> установите «галочки» на пунктах: «Включить MCLR как VCC» и «Включить запись блоками». Нажмите «Ok».
4.«Настройки» >> «Опции» >> выберите вкладку «Программирование» >> снимите «галочку» с пункта: «Проверка после программирования» и установите «галочку» на пункте «Проверка при программировании». Нажмите «Ok».
Вот и настроили!
Теперь бы нам протестировать программатор в месте с IC-prog. И тут все просто:
Далее, в программе IC-PROG, в меню, запустите: Настройки >> Тест Программатора

Перед выполнением каждого пункта методики тестирвания, не забывайте устанавливать все «поля» в исходное положение (все «галочки» сняты), как показано на рисунке выше.
1.Установите «галочку» в поле «Вкл. Выход Данных», при этом, в поле «Вход Данных» должна появляться «галочка», а на контакте (DATA) разъёма X2, должен установиться уровень лог. «1» (не менее +3,0 вольт). Теперь, замкните между собой контакт (DATA) и контакт (GND) разъёма X2, при этом, отметка в поле «Вход Данных» должна пропадать, пока контакты замкнуты.
2.При установке «галочки» в поле «Вкл. Тактирования», на контакте (CLOCK) разъёма X2, должен устанавливаться уровень лог. «1». (не менее +3,0 вольт).
3.При установке «галочки» в поле «Вкл. Сброс (MCLR)», на контакте (VPP) разъёма X3, должен устанавливаться уровень +13,0… +14,0 вольт, и светиться светодиод D4 (обычно красного цвета).Если переключатель режимов поставить в положение 1 то будет светится светодиод HL3
Если при тестировании, какой-либо сигнал не проходит, следует тщательно проверить весь путь прохождения этого сигнала, включая кабель соединения с COM-портом компьютера.
Тестирование канала данных программатора EXTRAPIC:
1. 13 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
2. 12 вывод микросхемы Da1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
3. 6 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
3. 1 и 2 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
4. 3 вывод микросхемы DD1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
5. 14 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
Если все тестирование прошло успешно, то программатор готов к эксплуатации.
Для подключения микроконтроллера к программатору можно использовать подходящие панельки или же сделать адаптер на основе ZIF панельки (с нулевым усилием прижатия), например как здесь radiokot.ru/circuit/digital/pcmod/18/.
Теперь несколько слов про ICSP - Внутрисхемное программирование
PIC-контроллеров.
При использовании ICSP на плате устройства следует предусмотреть возможность подключения программатора. При программировании с использованием ICSP к программатору должны быть подключены 5 сигнальных линий:
1. GND (VSS) - общий провод.
2. VDD (VCC) - плюс напряжение питания
3. MCLR" (VPP)- вход сброса микроконтроллера / вход напряжения программирования
4. RB7 (DATA) - двунаправленная шина данных в режиме программирования
5. RB6 (CLOCK) Вход синхронизации в режиме программирования
Остальные выводы микроконтроллера не используются в режиме внутрисхемного программирования.
Вариант подключения ICSP к микроконтроллеру PIC16F84 в корпусе DIP18:

1.Линия MCLR" развязывается от схемы устройства перемычкой J2, которая в режиме внутрисхемного программирования (ICSP) размыкается, передавая вывод MCLR в монопольное управление программатору.
2.Линия VDD в режиме программирования ICSP отключается от схемы устройства перемычкой J1. Это необходимо для исключения потребления тока от линии VDD схемой устройства.
3.Линия RB7 (двунаправленная шина данных в режиме программирования) изолируется по току от схемы устройства резистором R1 номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R1. При необходимости обеспечить максимальный ток, резистор R1 необходимо заменить (как в случае c VDD) перемычкой.
4.Линия RB6 (Вход синхронизации PIC в режиме программирования) так же как и RB7 изолируется по току от схемы устройства резистором R2, номиналом не менее 1 кОм. В связи с этим максимальный втекающий/стекающий ток, обеспечиваемый этой линией будет ограничен резистором R2. При необходимости обеспечить максимальный ток, резистор R2 необходимо заменить (как в случае с VDD) перемычкой.
Расположение выводов ICSP у PIC-контроллеров:


Эта схема только для справки, выводы программирования лучше уточнить из даташита на микроконтроллер.
Теперь рассмотрим прошивку микроконтроллера в программе IC-prog. Будем рассматривать на примере конструкции вот от сюда rgb73.mylivepage.ru/wiki/1952/579
Вот схема устройства


вот прошивка
Прошиваем контроллер PIC12F629. Данный микроконтроллер для своей работы использует константу osccal - представляет собой 16-ти ричное значение калибровки внутреннего генератора МК, с помощью которого МК отчитывает время при выполнении своих программ, которая записана в последней ячейке данных пика. Подключаем данный микроконтроллер к программатору.
Ниже на сриншоте красными цифрами показана последовательность действий в программе IC-prog.


1. Выбрать тип микроконтроллера
2. Нажать кнопку «Читать микросхему»
В окне «Программный код» в самой последней ячейке будет наша константа для данного контроллера. Для каждого контроллера константа своя! Не сотрите ее, запишите на бумажку и наклейте ее на микросхему!
Идем далее


3. Нажимаем кнопку «Открыть файл...», выбираем нашу прошивку. В окне программного кода появится код прошивки.
4. Спускаемся к концу кода, на последней ячейке жмем правой клавишей мыши и выбираем в меню «править область», в поле «Шестнадцатеричные» вводим значение константы, которую записали, нажимаем «ОК».
5. Нажимаем «программировать микросхему».
Пойдет процесс программирования, если все прошло успешно, то программа выведет соответствующее уведомление.
Вытаскиваем микросхему из программатора и вставляем в собранный макет. Включаем питание. Нажимаем кнопку пуск.Ура работает! Вот видео работы мигалки
video.mail.ru/mail/vanek_rabota/_myvideo/1.html
С этим разобрались. А вот что делать если у нас есть файл исходного кода на ассемблере asm, а нам нужен файл прошивки hex? Тут необходим компилятор. и он есть - это Mplab, в этой программе можно как писать прошивки так и компилировать. Вот окно компилятора


Устанавливаем Mplab
Находим в установленной Mplab программу MPASMWIN.exe, обычно находится в папке - Microchip - MPASM Suite - MPASMWIN.exe
Запускаем ее. В окне (4) Browse находим наш исходник (1) .asm, в окне (5) Processor выбираем наш микроконтроллер, нажимаем Assemble и в той же папке где вы указали исходник появится ваша прошивка.HEX Вот и все готово!
Надеюсь эта статья поможет начинающим в освоении PIC контроллеров! Удачи!