Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Как сделать свой вариант JDM-программатора для PIC-контроллеров — radiohlam.ru

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

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

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

Что на нашей структурной схеме представляет собой компьютер (что нам от него надо, применительно к нашей задаче)? В нашем случае компьютер — это программа + порт с которым она работает.

Большинство программ для программирования контроллеров могут работать с разными портами и программаторами, и в зависимости от выбранного типа программатора будут использоваться разные порты и ноги порта. Обычно, в программе можно посмотреть какие ноги порта для чего используются. На рисунке слева показано как это выглядит, например, в программе WinPic800.

Поскольку мы хотим собрать схему, которая управляется как JDM-программатор, то в программе мы выбрали тип программатора JDM. Мы видим, что для программирования будет использоваться COM-порт, причём у этого порта будут использоваться следующие ноги: выход DTR — для посылки данных в контроллер, вход CTS — для приёма данных от контроллера, выход RTS — для тактирования, выход TXD — для управления питанием. Кроме того (этого нет в WinPIC800, но я это знаю, и поэтому скажу вам), некоторые программы для распознавания подключения программатора используют вход DSR

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

Отлично, с учётом этой информации, наша структурная схема будет выглядеть так:

Что ещё мы знаем про COM-порт? Мы знаем, что уровни сигналов на этом порту могут составлять до ±15В, обычно у живого порта составляют ±10В и могут быть значительно занижены вследствие различных причин. Кроме того, известно, что приёмник все сигналы выше +3В воспринимает как “0”, а все сигналы ниже где-то +1В — как “1” (По крайней мере это касается приёмника популярной микросхемы GD75232, которая стоит в большинстве компьютеров). То есть входной сигнал не обязательно должен быть ±10В (конечно если всё делать по правилам, то нужно ±10В, но тогда придётся где-то взять напряжение отрицательной полярности). Ток выхода должен быть не более 20 мА, чтобы не спалить порт. Вход порта — высокоомный, поэтому входной ток очень незначительный.

Переходим к контроллеру. Для программирования контроллера используется 2 линии: DATA и CLOCK.

Во-первых, контроллер работает с TTL уровнями сигналов: “1” — это +5В, а “0” — это 0В. То есть программатор должен преобразовывать уровни сигналов ±10В в 0,+5В.

Во-вторых, линия данных — двунаправленная, то есть часть времени соответствующая нога контроллера работает как вход и считывает уровень сигнала с этой линии (принимает данные), а часть времени — как выход, тогда контроллер сам управляет уровнем сигнала на линии (посылает данные). Это важно, поскольку схема программатора должна исключить ситуацию, когда линия данных программатором установилась в высокий уровень, а контроллер взял и уронил эту линию в низкий уровень, иначе получится КЗ. Можно спалить и контроллер, и программатор. Кроме того, нужно исключить возможность возникновения такого КЗ и на линии CLOCK, поскольку после программирования контроллер может начать выполнять зашитую программу, в которой нога, используемая для приёма сигналов тактирования, может быть сконфигурирована как выход и притянута к нулю начавшей выполняться программой.

В-третьих, для программирования контроллеру необходимы: напряжение питания Vdd = +5В и напряжение программирования Vpp = +12,5В. Где вы их возьмёте — решать вам. Сможете организовать питание от порта, не перегрузив его при этом — хорошо, не сможете — подведите внешнее питание.

В-четвёртых, программатор должен обеспечить правильный алгоритм подачи напряжений для перехода в режим программирования. (Подобные алгоритмы для пик-контроллеров можно найти здесь). Пока этих шагов не сделано — на линиях DATA и CLOCK должен быть низкий уровень. Это нужно для того, чтобы при переходе в режим программирования указатель установился на начало памяти (на нулевой адрес), иначе программа может начать заливаться не с начала и не по тем адресам, если вообще начнёт заливаться.

С учётом всего сказанного выше, окончательно структурная схема будет выглядеть так:

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

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

Схемы различных программаторов для PIC-ов, AVR-ов, микросхем памяти…

Программы для jdm программатора. Самодельный программатор для PIC-контроллеров

Какие первые шаги должен сделать радиолюбитель, решивший собрать схему на микроконтроллере? Естественно, необходима управляющая программа – “прошивка”, а также программатор.

И если с первым пунктом нет проблем – готовую “прошивку” обычно выкладывают авторы схем, то вот с программатором дела обстоят сложнее.

Цена готовых USB-программаторов довольно высока и лучшим решением будет собрать его самостоятельно. Вот схема предлагаемого устройства (картинки кликабельны).

Основная часть.

Панель установки МК.

Исходная схема взята с сайта LabKit.ru с разрешения автора, за что ему большое спасибо. Это так называемый клон фирменного программатора PICkit2. Так как вариант устройства является “облегчённой” копией фирменного PICkit2, то автор назвал свою разработку PICkit-2 Lite , что подчёркивает простоту сборки такого устройства для начинающих радиолюбителей.

Что может программатор? С помощью программатора можно будет прошить большинство легкодоступных и популярных МК серии PIC (PIC16F84A, PIC16F628A, PIC12F629, PIC12F675, PIC16F877A и др.), а также микросхемы памяти EEPROM серии 24LC. Кроме этого программатор может работать в режиме USB-UART преобразователя, имеет часть функций логического анализатора.

Особо важная функция, которой обладает программатор – это расчёт калибровочной константы встроенного RC-генератора некоторых МК (например, таких как PIC12F629 и PIC12F675).

Необходимые изменения.

В схеме есть некоторые изменения, которые необходимы для того, чтобы с помощью программатора PICkit-2 Lite была возможность записывать/стирать/считывать данные у микросхем памяти EEPROM серии 24Cxx.

Из изменений, которые были внесены в схему. Добавлено соединение от 6 вывода DD1 (RA4) до 21 вывода ZIF-панели. Вывод AUX используется исключительно для работы с микросхемами EEPROM-памяти 24LС (24C04, 24WC08 и аналоги). По нему передаются данные, поэтому на схеме панели программирования он помечен словом “Data”. При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.

Также добавлен “подтягивающий” резистор на 2 кОм, который включается между выводом SDA и Vcc микросхем памяти.

Все эти доработки я уже делал на печатной плате, после сборки PICkit-2 Lite по исходной схеме автора.

Микросхемы памяти 24Cxx (24C08 и др.) широко используются в бытовой радиоаппаратуре, и их иногда приходится прошивать, например, при ремонте кинескопных телевизоров. В них память 24Cxx применяется для хранения настроек.

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

В связи с необходимостью работы с микросхемами серии 24Cxx мне и пришлось “допиливать” программатор. Травить новую печатную плату я не стал, просто добавил необходимые элементы на печатной плате. Вот что получилось.

Ядром устройства является микроконтроллер PIC18F2550-I/SP .

Это единственная микросхема в устройстве. МК PIC18F2550 необходимо “прошить”. Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема “курицы и яйца”. Как её решил я, расскажу чуть позднее.

Список деталей для сборки программатора. В мобильной версии потяните таблицу влево (свайп влево-вправо), чтобы увидеть все её столбцы.

Название Обозначение Номинал/Параметры Марка или тип элемента
Для основной части программатора
МикроконтроллерDD18-ми битный микроконтроллерPIC18F2550-I/SP
Биполярные транзисторыVT1, VT2, VT3КТ3102
VT4КТ361
ДиодVD1КД522, 1N4148
Диод ШотткиVD21N5817
СветодиодыHL1, HL2любой на 3 вольта, красного и зелёного цвета свечения
РезисторыR1, R2300 Ом
R322 кОм
R41 кОм
R5, R6, R1210 кОм
R7, R8, R14100 Ом
R9, R10, R15, R164,7 кОм
R112,7 кОм
R13100 кОм
КонденсаторыC20,1 мкК10-17 (керамические), импортные аналоги
C30,47 мк
Электролитические конденсаторыC1100 мкф * 6,3 вК50-6, импортные аналоги
C447 мкф * 16 в
Катушка индуктивности (дроссель)L1680 мкГнунифицированный типа EC24, CECL или самодельный
Кварцевый резонаторZQ120 МГц
USB-розеткаXS1типа USB-BF
ПеремычкаXT1любая типа “джампер”
Для панели установки микроконтроллеров (МК)
ZIF-панельXS1любая 40-ка контактная ZIF-панель
РезисторыR12 кОмМЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R610 кОм

Теперь немного о деталях и их назначении.

Зелёный светодиод HL1 светится, когда на программатор подано питание, а красный светодиод HL2 излучает в момент передачи данных между компьютером и программатором.

Для придания устройству универсальности и надёжности используется USB-розетка XS1 типа “B” (квадратная). В компьютере же используется USB-розетка типа “А”. Поэтому перепутать гнёзда соединительного кабеля невозможно. Также такое решение способствует надёжности устройства. Если кабель придёт в негодность, то его легко заменить новым не прибегая к пайке и монтажным работам.

В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно. Для этого нужно намотать 250 – 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68. Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.

Напряжение для высоковольтного программирования (Vpp) от +8,5 до 14 вольт создаётся ключевым стабилизатором. В него входят элементы VT1, VD1, L1, C4, R4, R10, R11. С 12 вывода PIC18F2550 на базу VT1 поступают импульсы ШИМ. Обратная связь осуществляется делителем R10, R11.

Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2. VD2 – это диод Шоттки . Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт. Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.

При использовании программатора исключительно для программирования микроконтроллеров в панели (без применения ICSP), то можно исключить диод VD2 полностью (так сделано у меня) и установить вместо него перемычку.

Компактность устройству придаёт универсальная ZIF-панель (Zero Insertion Force – с нулевым усилием установки).

Благодаря ей можно “зашить” МК практически в любом корпусе DIP.

На схеме “Панель установки микроконтроллера (МК)” указано, как необходимо устанавливать микроконтроллеры с разными корпусами в панель. При установке МК следует обращать внимание на то, чтобы микроконтроллер в панели позиционируется так, чтобы ключ на микросхеме был со стороны фиксирующего рычага ZIF-панели.

Вот так нужно устанавливать 18-ти выводные микроконтроллеры (PIC16F84A, PIC16F628A и др.).

А вот так 8-ми выводные микроконтроллеры (PIC12F675, PIC12F629 и др.).

Если есть нужда прошить микроконтроллер в корпусе для поверхностного монтажа (SOIC), то можно воспользоваться переходником или просто подпаять к микроконтроллеру 5 выводов, которые обычно требуются для программирования (Vpp, Clock, Data, Vcc, GND).

Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.0 можно с помощью режима “Печать” не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате. Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении .

Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат , с помощью цапонлака (так делал я) или “карандашным” методом .

Вот рисунок позиционирования элементов на печатной плате (кликабельно).

При монтаже первым делом необходимо запаять перемычки из медного лужёного провода, затем установить низкопрофильные элементы (резисторы, конденсаторы, кварц, штыревой разъём ISCP), затем транзисторы и запрограммированный МК. Последним шагом будет установка ZIF-панели, USB-розетки и запайка провода в изоляции (перемычки).

“Прошивка” микроконтроллера PIC18F2550.

Файл “прошивки” – PK2V023200.hex необходимо записать в память МК PIC18F2550I-SP при помощи любого программатора, который поддерживает PIC микроконтроллеры (например, Extra-PIC). Я воспользовался JDM Programmator’ом JONIC PROG и программой WinPic800 .

Залить “прошивку” в МК PIC18F2550 можно и с помощью всё того же фирменного программатора PICkit2 или его новой версии PICkit3. Естественно, сделать это можно и самодельным PICkit-2 Lite, если кто-либо из друзей успел собрать его раньше вас:).

Также стоит знать, что “прошивка” микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex ) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex – «C:\Program Files (x86)\Microchip\PICkit 2 v2\PK2V023200.hex» . У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex» .

Ну, а если разрешить проблему “курицы и яйца” не удалось предложенными способами, то можно купить уже готовый программатор PICkit3 на сайте AliExpress. Там он стоит гораздо дешевле. О том, как покупать детали и электронные наборы на AliExpress я писал .

Обновление “прошивки” программатора.

Прогресс не стоит на месте и время от времени компания Microchip выпускает обновления для своего ПО, в том числе и для программатора PICkit2, PICkit3. Естественно, и мы можем обновить управляющую программу своего самодельного PICkit-2 Lite. Для этого понадобится программа PICkit2 Programmer. Что это такое и как пользоваться – чуть позднее. А пока пару слов о том, что нужно сделать, чтобы обновить “прошивку”.

Для обновления ПО программатора необходимо замкнуть перемычку XT1 на программаторе, когда он отключен от компьютера. Затем подключить программатор к ПК и запустить PICkit2 Programmer. При замкнутой XT1 активируется режим bootloader для загрузки новой версии прошивки. Затем в PICkit2 Programmer через меню “Tools” – “Download PICkit 2 Operation System” открываем заранее подготовленный hex-файл обновлённой прошивки. Далее произойдёт процесс обновления ПО программатора.

После обновления нужно отключить программатор от ПК и снять перемычку XT1. В обычном режиме перемычка разомкнута . Узнать версию ПО программатора можно через меню “Help” – “About” в программе PICkit2 Programmer.

Это всё по техническим моментам. А теперь о софте.

Работа с программатором. Программа PICkit2 Programmer.

Для работы с USB-программатором нам потребуется установить на компьютер программу PICkit2 Programmer. Это специальная программа обладает простым интерфейсом, легко устанавливается и не требует особой настройки. Стоит отметить, что работать с программатором можно и с помощью среды разработки MPLAB IDE, но для того, чтобы прошить/стереть/считать МК достаточно простой программы – PICkit2 Programmer. Рекомендую.

После установки программы PICkit2 Programmer подключаем к компьютеру собранный USB-программатор. При этом засветится зелёный светодиод (“питание”), а операционная система опознает устройство как “PICkit2 Microcontroller Programmer” и установит драйвера.

Запускаем программу PICkit2 Programmer. В окне программы должна отобразиться надпись.

Если программатор не подключен, то в окне программы отобразится страшная надпись и краткие инструкции “Что делать?” на английском.

Если же программатор подключить к компьютеру с установленным МК, то программа при запуске определить его и сообщит нам об этом в окне PICkit2 Programmer.

Поздравляю! Первый шаг сделан. А о том, как пользоваться программой PICkit2 Programmer, я рассказал в отдельной статье. Следующий шаг .

Необходимые файлы:

В качестве элементарного программатора предлагаем вам собрать по авторской схеме JDM совместимый программатор, который мы назвали NTV программатор. Ниже схема NTV программатора (используется розетка DB9; не путать с вилкой).

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

Данный программатор НЕ РАБОТАЕТ при подключении к ноутбукам, т. к. уровни сигналов интерфейса RS-232 (COM-порт) в мобильных системах занижены. Также он может не работать на современных ПК, где аппаратно экономится ток на порту. Так что не обессудьте, собирайте и проверяйте на всех попавшихся под руку компьютерах.

Конструктивно плата программатора вставляется между контактами разъема DB-9, которые подпаиваются к контактным площадкам печатной платы. Ниже рисунок платы и фотография собранного программатора.



Для полноты информации следует сказать, что есть еще один подобный программатор, который я собирал под микроконтроллеры в 8 выводном корпусе ( и ). Программатор также великолепно работает и с этими микроконроллерами. Ниже рисунок платы и фотографии.

Однажды я решил собрать несложный LC-метр на pic16f628a и естественно его надо было чем-то прошить. Раньше у меня был компьютер с физическим com-портом, но сейчас в моём распоряжении только usb и плата pci-lpt-2com. Для начала я собрал простой JDM программатор, но как оказалось ни с платой pci-lpt-com, ни с usb-com переходником он работать не захотел (низкое напряжение сигналов RS-232). Тогда я бросился искать usb программаторы pic, но там, как оказалось всё ограничено использованием дорогих pic18f2550/4550, которых у меня естественно не было, да и жалко такие дорогие МК использовать, если на пиках я очень редко что-то делаю (предпочитаю авр-ы, их прошить проблем не составляет, они намного дешевле, да и программы писать мне кажется, на них проще). Долго копавшись на просторах интернета в одной из множества статей про программатор EXTRA-PIC и его всевозможные варианты один из авторов написал, что extrapic работает с любыми com-портами и даже переходником usb-com.

В схеме данного программатора используется преобразователь логических уровней max232.

Я подумал, если использовать usb адаптер, то будет очень глупо делать два раза преобразование уровней usb в usart TTL, TTL в RS232, RS232 обратно в TTL, если можно просто взять TTL сигналы порта RS232 из микросхемы usb-usart преобразователя.

Так и сделал. Взял микросхему Ch440G (в которой есть все 8 сигналов com-порта) и подключил её вместо max232. И вот что получилось.

В моей схеме есть перемычка jp1, которой нет в экстрапике, её я поставил потому что, не знал, как себя поведёт вывод TX на ТТЛ уровне, поэтому сделал возможность его инвертировать на оставшемся свободном элементе И-НЕ и не прогадал, как оказалось, напрямую на выводе TX логическая единица, и поэтому на выводе VPP при включении присутствует 12 вольт, а при программировании ничего не будет (хотя можно инвертировать TX программно).

После сборки платы пришло время испытаний. И тут настало главное разочарование. Программатор определился сразу (программой ic-prog) и заработал, но очень медленно! В принципе – ожидаемо. Тогда в настройках com порта я выставил максимальную скорость (128 килобод) начал испытания всех найденных программ для JDM. В итоге, самой быстрой оказалась PicPgm. Мой pic16f628a прошивался полностью (hex, eeprom и config) плюс верификация где-то 4-6 минут (причём чтение идёт медленнее записи). IcProg тоже работает, но медленнее. Ошибок про программировании не возникло. Также я попробовал прошить eeprom 24с08, результат тот же – всё шьёт, но очень медленно.

Выводы: программатор достаточно простой, в нём нет дорогостоящих деталей (Ch440 – 0.3-0.5$ , к1533ла3 можно вообще найти среди радиохлама), работает на любом компьютере, ноутбуке (и даже можно использовать планшеты на windows 8/10). Минусы: он очень медленный. Также он требует внешнее питание для сигнала VPP. В итоге, как мне показалось, для нечастой прошивки пиков – это несложный для повторения и недорогой вариант для тех, у кого нет под рукой древнего компьютера с нужными портами.

Вот фото готового девайса:

Как поётся в песне “я его слепила из того, что было”. Набор деталей самый разнообразный: и smd, и DIP.

Для тех, кто рискнёт повторить схему, в качестве usb-uart конвертера подойдёт почти любой (ft232, pl2303, cp2101 и др), вместо к1533ла3 подойдёт к555, думаю даже к155 серия или зарубежный аналог 74als00, возможно даже будет работать с логическими НЕ элементами типа к1533лн1. Прилагаю свою печатную плату, но разводка там под те элементы, что были в наличии, каждый может перерисовать под себя.

Список радиоэлементов
ОбозначениеТипНоминалКоличествоПримечаниеМагазинМой блокнот
IC1МикросхемаCh440G1В блокнот
IC2МикросхемаК1533ЛА31В блокнот
VR1Линейный регулятор

LM7812

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

LM7805

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

КТ502Е

1В блокнот
VT2Биполярный транзистор

КТ3102Е

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

1N4148

2В блокнот
C1, C2, C5-C7Конденсатор100 нФ5В блокнот
C3, C4Конденсатор22 пФ2В блокнот
HL1-HL4СветодиодЛюбой4В блокнот
R1, R3, R4Резистор

1 кОм

3

Программатор JDM я использовал для контроллеров PIC16F676, PIC16F630 и PIC16F629 . От изначального, мой вариант отличается тем, что напряжение программирования Vpp можно подать раньше напряжения питания Vdd для перепрограммирования контроллеров. Для этой цели служит верхний по схеме транзистор. Он открывается когда напряжение на контакте 3 розетки DB9F достигнет примерно 8 В относительно контакта 5 розетки или 13 В относительно минуса контроллера Vss . Выключатель Vdd_Vpp в замкнутом состоянии позволяет напряжению питания Vdd появиться на выводах контроллера ранее напряжения программирования Vpp .

Для программирования будет использоваться COM-порт, у которого будут задействованы следующие выводы – 3, 4, 5, 7 и 8. В схеме заложена возможность программирования микросхем памяти серии 24сХХ . Для этого в колодке DIP16 используются нижние 8 контактов, первый контакт микросхемы вставляется в пятый конакт колодки. Джампер J1 позволяет отключить защиту от записи.

Нижний по схеме транзистор как и ранее используется для сдвига напряжений так как плюс питания контроллера Vdd соединяется с контактом 5 розетки – общим проводом порта, а минус питания Vss получается с помощью диодов, подключенных к контактам 3 и 7 розетки, и стабилитрона.

Транзисторы в JDM программаторе использовал 2SC945 и BC548 , диоды – 1N4148 . Конденсатор u1 надо расположить как можно ближе к выводам питания микроконтроллера. Резистор 1k необязателен, если установлены резистор 10k и джампер J1 на колодке DIP16.

Этот программатор успешно работает с программами и

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

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

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

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

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

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

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

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

Категории

  • Интернет
  • Windows 10
  • Мультимедиа
  • Утилиты
  • Сеть и интернет
  • Системные программы
  • Настройка программ
  • Проблемы с ОС

Создание простого программатора PIC.

  • Опубликовано
  • Авинаш
  • В учебниках по микрочипу PIC

В этом уроке мы создадим простой программатор на основе последовательного порта для PIC. микроконтроллеры. Я пробовал несколько простых в изготовлении программаторов и программного обеспечения, и здесь я представляю программиста, который работал лучше всего. Дизайн основан на ЖДМ. Мы будем использовать программное обеспечение PICPgm. Кристиан Стадлер. Мне понравилась производительность программного обеспечения, оно быстрое и прост в использовании. Программист будет использовать COM-порт компьютера для коммуникация.

Требуемые компоненты.

Серийный номер

Товар

Значение/часть №

Кол-во

01

Транзистор

BC337-40 или BC337-25

2

02

Конденсатор электролитический

100 мкФ 16 В постоянного тока

2

03

Стабилитрон

5,1 В 0,5 Вт

1

04

Стабилитрон

6,2 В 0,5 Вт

1

05

Диод

1N4148

4

06

Резистор

1,5К

1

07

Резистор

10К

1

08

Светодиод

КРАСНЫЙ цвет

1

09

Гнездовой разъем DB9 с крышкой

1

10

6-контактный гнездовой разъем с проволокой

1

11

Veroboard, провода и т. д.

Схема цепи

Теперь соберите схему, как показано ниже, на куске картона.

Рис.: Простой программатор PIC на основе последовательного порта.

Таким образом, наш программатор PIC будет иметь два интерфейса

  1. Последовательный интерфейс для подключения к ПК
  2. 6-контактный разъем ICSP — он будет подключен к нашему PIC, который будет сидеть в нашем проекте (скажем, в макете).

Рис.: Простой программатор PIC на основе последовательного порта.

 

Мы используем метод программирования ICSP, т. е. внутрисхемное последовательное программирование. В этом методе наш PIC останется на плате конечного приложения во время программирования. В нашем конечном приложении будет простой 6-пиновый заголовок. Мы должны подключить этого программатора в конечное приложение с помощью этого коннектора. Теперь мы можем подключить программатор с ПК и загрузите файл HEX в наш PIC micro. Фигура ниже проиллюстрируйте процесс.

Рис.: Использование программатора ISCP.

Наш программатор PIC готов. В следующем уроке я покажу вам, как написать приложение «Hello World» для микроконтроллеров PIC. После этого вы будете иметь все инструменты и базовые навыки для работы с проектами, связанными с PIC. Затем мы перейдем к изучению микроконтроллера PIC шаг за шагом.

Важное примечание

Этот программатор работает только с физическим последовательным портом! Он НЕ работает с преобразователями USB в последовательные порты.

 

Хорошо, друзья, пока, до встречи в следующем уроке .

Авинаш Гупта

[email protected]

Столкнулись с проблемой в вашем проекте в области встроенной электроники или робототехники? Мы здесь, чтобы помочь!
Опубликовать запрос о помощи.

Avinash

Avinash Gupta сосредоточен исключительно на бесплатном и высококачественном учебном пособии, чтобы сделать изучение встроенной системы увлекательным!

Еще сообщения – Веб-сайт

Следуй за мной:

Программатор JDM Mod Serial PIC с управлением VCC

Этот проект основан на схеме JDM для последовательного программатора JDM с контролем напряжения, предназначенного для использования с PICpgm, бесплатным и простым программным обеспечением PIC Development Programmer для Windows и Linux (http://picpgm.picprojects.net)

Детали

Этот проект основан на схеме JDM, предложенной в [1] для последовательного JDM-программатора с контролем напряжения. Этот последовательный программатор предназначен для использования с PICpgm — бесплатным и простым программным обеспечением PIC Development Programmer для Windows и Linux, которое можно загрузить отсюда.

Моя главная цель – заставить программатор JDM Serial работать с PIC 12F1822 и 16F1824, которые я уже запрограммировал с помощью PICkit3 от Microchip.

Ссылки.

  1. http://picpgm.picprojects.net/hardware.html#JDM_PROGRAMMER
  • 4 × 1N4148 (Сигнальный диод) Дискретные полупроводники / Диоды и выпрямители
  • 2 × 2N3904 (транзистор BJT NPN) Дискретные полупроводники / транзисторы, MOSFET, FET, IGBT
  • 1 × 2N7000 (N-канальный МОП-транзистор) Дискретные полупроводники / диодно-транзисторные модули
  • 1 × 1N4733 (стабилитрон 5,1 В) Дискретные полупроводники / Диоды и выпрямители
  • 1 × 1N4738 (стабилитрон 8,2 В) Дискретные полупроводники / Диоды и выпрямители

Посмотреть все 10 компонентов

  • Прототип 2.

    – Повторное тестирование JDM Prototype 1 и тестирование нового. Даниэль Мехиа Райгоса • 03.04.2015 в 19:19 • 0 комментариев

    Собрал программатор PICpgm с управлением VCC. Хотя программатор был распознан, ни распознавание PIC, ни программирование не работали. Либо программатор управления VCC, предложенный командой PICpgm, не работает, либо я неправильно собираю схему, но она не работает. Возможно, ICSP не подходит для этого программатора. Мне нужно проверить это на большей макетной плате.

    В качестве альтернативы программатору JDM я попытался собрать программатор Multichip, который я нашел в этом блоге, используя ту же схему, за исключением того, что

    • Используемые NPN-транзисторы 2N3904.
    • Опущены светодиоды, поэтому резисторы.
    • Значения конденсатора такие же, как на схеме.
    • Резистор между входами CTS и DTR был 1,8кОм

    Эта схема является разновидностью JDM программатора PICpgm без VCC. PICpgm распознал эту схему как программатор JDM. Хорошо, что PIC12F1822 (моя тестовая PIC под рукой) была распознана PICpgm (автоматически распознана), и это довольно положительно. Это, по-видимому, означает, что уровни напряжения находятся прямо на контактах, как раз достаточно, чтобы распознать PIC.

    Рис. 1. JSPVCv1.1

    Другая схема, протестированная с теми же результатами, показана на рис. 2. Хотя при проверке PIC на холостой ход выяснилось, что PIC вообще не был пустым. У меня не получилось “очистить” PIC этим программатором.

    Рисунок 2. JSPVCv2

    Рисунок 3. PICpgm распознал PIC и программаторы, но не загрузил программу в PIC. Оба протестированных программатора показали одинаковое поведение при программировании PIC и автоопределении

    Ссылки

    1. http://myanmar-young-engineers. pbworks.com/w/page/13632171/MultiChip%20Programmer%20for%20%20beginners%20and%20hobbiests
  • Прототип 1 — JSPVCv1.

    Даниэль Мехиа Райгоса • 31.03.2015 в 04:52 • 0 комментариев

    Схему рисунка 1 я собрал на макетной плате без пайки (рисунок 2).

    Программа PICpgm распознала программатор, но не распознала подключенный к нему PIC12F1822.

    Просмотрев в Интернете, можно предположить, что проблема может быть комбинацией

    • PIC поврежден.
    • Неправильные соединения
    • Неправильные уровни напряжения постоянного тока на выводах программирования PIC
    • Необходимость добавления дополнительных компонентов в программатор (например, колпачки и прочее)
    • Неправильное подключение транзистора (поскольку порядок выводов не может быть E-B-C, смотрящим на «лицо» транзистора.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *