|
| |
Программатор pic-контроллеров Extra-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 мм. Печатная плата выполняется методом ЛУТ, файл к статье прилагается. Отзеркаливать изображение перед печатью не нужно.
Скачать плату:
Сборка программатора
Первым делом на печатную плату впаиваются перемычки, затем резисторы, диоды. В последнюю очередь нужно впаять панельки и разъёмы питания и СОМ порта.
Т.к. на печатное плате много панелек под прошиваемые микроконтроллеры, а используются у них не все выводы, можно пойти на такую хитрость и вынуть неиспользуемые контакты из панелек. При этом меньше времени уйдёт на пайку и вставить микросхему в такую панельку будет уже куда проще.
Разъём СОМ порта (он называется DB-9) имеет два штырька, которые должны «втыкаться» в плату. Чтобы не сверлить под них лишние отверстия на плате, можно открутить два винтика под бокам разъёма, при этом штырьки отпадут, как и металлическая окантовка разъёма.
После впайки всех деталей плату нужно отмыть от флюса, прозвонить соседние контакты, нет ли замыканий. Убедиться в том, что в панельках нет микросхем (вынуть нужно в том числе и МАХ232, и КР1533ЛА3), подключить питание. Проверить, присутствует ли напряжение 5 вольт на выходах стабилизаторов. Если всё хорошо, можно устанавливать микросхемы МАХ232 и КР1533ЛА3, программатор готов к работе. Напряжение питания схемы 15-24 вольта.
Плата программатора содержит 4 панельки для микроконтроллеров и одну для прошивки микросхем памяти. Перед установкой на плату прошиваемого микроконтроллера нужно посмотреть, совпадает ли его распиновка с распиновкой на плате программатора. Программатор можно подключать к СОМ-порту компьютера напрямую, либо же через удлинительный кабель. Успешной сборки!
|
| |
Самодельный программатор для PIC-контроллеров
Развитие электроники идёт стремительными темпами, и всё чаще главным элементом того или иного устройства является микроконтроллер. Он выполняет основную работу и освобождает проектировщика от необходимости создания изощрённых схемных решений, тем самым уменьшая размер печатной платы до минимального. Как всем известно, микроконтроллером управляет программа, записанная в его внутреннюю память. И если опытный программист-электронщик не испытывает проблем с использованием микроконтроллеров в своих устройствах, то для начинающего радиолюбителя попытка записать программу в контроллер (особенно PIC) может обернуться большим разочарованием, а иногда и небольшим пиротехническим шоу в виде дымящей микросхемы.
Рисунок №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 можно по этой ссылке:
pp_programmator.zip [17.67 Kb] (скачиваний: 974)
При желании его можно изменить под свой тип PIC-контроллера. Для тех, кто решил оставить плату без изменений, выкладываю вид со стороны деталей для облегчения монтажа (рисунок №4).
Рисунок №4 — плата с монтажной стороны
Ещё немного колдовства с паяльником и мы имеем готовое устройство, способное прошить PIC-контроллер через COM-порт вашего компьютера. Ещё тёпленький и не отмытый от флюса результат моих стараний показан на фото №5.
Фото №5 — программатор в сборе
С этого момента, первый этап на пути к прошивке PIC-контроллера, подошёл к концу. Второй этап будет включать в себя подключение программатора к компьютеру и работу с программой IC-Prog.
К сожалению, не все современные компьютеры и ноутбуки способны работать с данным программатором ввиду банального отсутствия на них COM-портов, а те что установлены на ноутбуках не выдают необходимые для программирования 12В. Так что я решил обратится к своему первому ПК, который давным-давно пылился и ждал своего звёздного часа (и таки дождался).
Итак включаем компьютер и первым делом устанавливаем программу IC-Prog. Скачать её можно с сайта автора или по этой ссылке:
icprog105d.zip [432.25 Kb] (скачиваний: 1159)
Подключаем программатор к COM-порту и запускаем только что установленное приложение. Для корректной работы необходимо выполнить ряд манипуляций. Изначально необходимо выбрать тот тип контроллера, который собираемся шить. У меня это PIC12F675. На скриншоте №6 поле для выбора контроллера выделено красным цветом.
Скриншот №6 — выбор типа микроконтроллера
Далее переходим в меню «Настройки»->»Опции«, в появившемся окне выбираем вкладку I2C и ставим галочки, как показано на скриншоте №7.
Скриншот №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-файла).
Скриншот №14 — автоматическое изменение калибровочной константы
Теперь нужно очень внимательно выполнить последующие действия. Нажимаем иконку микросхемы с молнией на панели инструментов, тем самым сообщая программе, что мы хотим инициировать процесс прошивки. Программа спросит уверены ли мы, что хотим прошить данное устройство. Соглашаемся и нажимаем «ДА«. После этого получаем предупреждение, показанное на скриншоте №15.
Скриншот №15 — предупреждение о расхождении значений константы тактирования
IC-Prog сообщает нам, что ранее было установлено одно значение калибровочной константы (в моём случае 3450), а теперь другое (3FFF), автоматически подставленное из hex-файла. Также по умолчанию предлагается оставить значение 3FFF. Здесь важно нажать «НЕТ«, чтобы IC-Prog во время программирования вернул нам значение 3450 или то, что будет у вас. В общем жмём «НЕТ» и наблюдаем следующее окно (скриншот №16).
Скриншот №16 — процесс программирования
В этот период советую ничего не нажимать и не грузить компьютер другими задачами. Когда я делал снимок экрана для этой статьи, то при нажатии на кнопку Print Screen вылетела ошибка записи и пришлось проделывать всё заново. По истечении некоторого времени IC-Prog выдаст вам сообщение об успешной проверке вновь записанного кода в ваш PIC-контроллер, так что всем кому понравилась эта статья, желаю увидеть вот это после аналогичных стараний (скриншот №17):
Скриншот №17 — прошивка прошла успешно, можно расслабиться
Если в процессе у вас возникнут какие-либо вопросы, внимательно перечитайте статью заново и всё обязательно получится — проверено лично. Всем удачи и творческих успехов!!!
Доставка новых самоделок на почтуПолучайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!
*Заполняя форму вы соглашаетесь на обработку персональных данных
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.