Универсальный внешний накопитель для всех 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 на пассивных компонентах. Самодельный программатор для PIC-контроллеров Jdm программатор своими руками с внешним питанием

Однажды я решил собрать несложный 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

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

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

Цена готовых 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, я рассказал в отдельной статье. Следующий шаг .

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

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

Принципиальная схема программатора для pic контроллеров:

Питание на саму схему не требуется, ведь для этого служит COM порт компьютера, через который и осуществляется управление прошивкой микроконтроллера. Для низковольтного режима программирования вполне достаточно 5в, но могут быть не доступны все опции для изменения (фьюзы). Разъем подключения COM-9 порта смонтировал прямо на печатную плату программатора для PIC – получилось очень удобно.

Можно воткнуть плату без лишних шнуров прямо в порт. опробован на различных компьютерах и при программировании МК серий 12F,16F и 18F, показал высокое качество прошивки. Предложенная схема позволяет программировать микроконтроллеры PIC12F509, PIC16F84A, PIC16F628. Например недавно с помощью предложенного программатора успешно был прошит микроконтроллер для .

Для программирования используется WinPic800 – одна из лучших программ для программирования PIC контроллеров. Программа позволяет выполнять операции для микроконтроллеров семейства PIC: чтения, записи, стирания, проверки FLASH и EEPROM памяти и установку битов конфигураций.

Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей – не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом – как его запрограммировать. Одним из самых простых вариантов программаторов является 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 разъём.

Рассмотрим запись информации во флэш память микроконтроллера PIC 16 F 628 A

Есть 2 линии DATA и CLOCK , по которым передаётся информация. Линия CLOCK служит для подачи тактовых импульсов, а линия DATA для передачи информации.

Чтобы передать в микроконтроллер 1 бит информации, необходимо выставить 0 или 1(в зависимости от значения бита) на линии данных(DATA ) и создать спад напряжения (переход от 1 к 0) на линии тактирования(CLOCK ).
Один бит для контроллера – маловато. Он ждёт вдогонку ещё пять, чтобы воспринять эту посылку из 6-ти бит как команду. Контроллеру очень нравятся команды, а состоять они должны именно из 6-ти бит – такова уж природа у PIC 16.
Вот список и значение команд, которые PIC способен понять. Команд не так уж и много – словарный запас у этого контроллера невелик, но не надо думать, что он совсем глуп – бывают устройства и с меньшим количеством команд

“LoadConfiguration ” 000000 – Загрузка конфигурации

“LoadDataForDataMemory ” – 000011 – Загрузка данных в память данных(EEPROM )
“IncrementAddress ” 000110 – Увеличение адреса PC МК
“ReadDataFromProgramMemory ” 000100 – Чтение данных из памяти программ
“ReadDataFromDataMemory ” 000101 – Чтение данных из памяти данных(EEPROM )
“BeginProgrammingOnlyCycle ” 011000 – Начать цикл программирования
“BulkEraseProgramMemory ” 001001 – Полное стирание памяти программ
“BulkEraseDataMemory ” 001011 – Полное стирание памяти данных(EEPROM )

Реагирует контроллер на эти команды по-разному. По-разному после выдачи команды нужно и продолжать с ним разговор.
Для того чтобы начать полноценный процесс программирования необходимо ещё подать напряжение 12 вольт на вывод MCLR контроллера, после этого подать на него напряжение питания. Именно в такой последовательности подачи напряжений есть определённый смысл. После подачи питания, если PIC сконфигурирован на работу от внутреннего RC генератора, он может начать выполнение собственной программы, что при программировании вещь недопустимая, так как неизбежен сбой.
Предварительная подача 12-ти вольт на MCLR позволяет избежать такого развития событий.
При записи информации во флэш память программ МК после команды

“LoadDataForProgramMemory ” 000010 – Загрузка данных в память программ

необходимо отправить в контроллер сами данные – 16 бит,
которые выглядят так:

“0xxxxxxxxxxxxxx 0”.

Крестики в этом слове – это сами данные, а нули по краям отправляются как обрамление – это стандарт для PIC 16. Значащих битов в слове всего 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) предназначена для того, чтобы программа могла определить, что программатор подключен к компьютеру.

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

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

Такое же расположение выводов, предназначенных для программирования, имеют МК PIC16F84, PIC16F84A.



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

Индекс проектов

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

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

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

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

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

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

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

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

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

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

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

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

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

Схема позволяет программировать микроконтроллеры и память EEPROM I2C.

Список поддерживаемых микроконтроллеров, при условии совместного использования с утилитой IC-PROG v1.05D:

Микроконтроллеры фирмы Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66, PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, PIC16F84, PIC16F84A, PIC16F88, PIC16C505*, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630*, PIC16F648A, PIC16F676*, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745, PIC16C765, PIC16C770*, PIC16C771*, PIC16C773, PIC16C774, PIC16C781*, PIC16C782*, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877, PIC16F877A, PIC16C923*, PIC16C924*, PIC18F242, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320, PIC18F4320, PIC18F4539, PIC18F6620*, PIC18F6720*, PIC18F8620*, PIC18F8720*

Примечание: микроконтроллеры, которые отмечены звездочкой (*) необходимо подключить к программатору через ICSP разъем.

Последовательная память EEPROM I2C (IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.


Установите микросхему в панельку, строго соблюдая положение ключа. Подключите шнур, включите питание. Запустите программу IC-PROG. В выпадающем списке выберите ваш микроконтроллер PIC.

Если у вас нет прошивки – сделайте ее: для этого откройте стандартную программу «Блокнот» или любой другой редактор; вставьте в документ текст прошивки; сохраните под любым именем с расширение *.txt или *.hex.

Затем в утилите в IC-PROG Файл >> Открыть файл >> найти наш файл с прошивкой. Окно «Программного кода» должно заполнится разными кодами.

В окне IC-PROG нажимаем «Программировать микросхему» при этом загорается красный светодиод на схеме устройства. Программирование длится около 30 секунд. Для проверки выбираем – Сравнить микросхему с буфером.

Альтернативный вариант схемы программатора EXTRA-PIC из с готовой печатной платой в Sprint Layout вы можете открыть по зеленой ссылке выше.

Микроконтроллеры PIC заслужили славу благодаря своей неприхотливости и качеству работы, а также универсальности в использовании. Но что может дать микроконтроллер без возможности записывать новые программы на него? Без программатора это не больше чем кусочек удивительного по форме исполнения железа. Сам программатор PIC может быть двух типов: или самодельный, или заводской.

Различие заводского и самодельного программаторов

В первую очередь отличаются они надежностью и функциональностью, которую предоставляют владельцам микроконтроллеров. Так, если делается самодельный, то он, как правило, рассчитывается только на одну модель PIC-микроконтроллера, тогда как программатор от Microchip предоставляет возможность работы с различными типами, модификациями и моделями микроконтроллеров.

Заводской программатор от Microchip

Самый известный и популярный – простой программатор PIC, который использует множество людей и известный для многих под названием PICkit 2. Его популярность объясняется явными и неявными достоинствами. Явные достоинства, которые имеет этот USB программатор для PIC, можно перечислять долго, среди них: относительно небольшая стоимость, простота эксплуатации и универсальность относительно всего семейства микроконтроллеров, начиная от 6-выводных и заканчивая 20-выводными.

Использование программатора от Microchip

По его использованию можно найти много обучающих уроков, которые помогут разобраться с всевозможными аспектами использования. Если рассматривать не только программатор PIC, купленный «с рук», а приобретенный у официального представителя, то можно ещё подметить качество поддержки, предоставляемое вместе с ним. Так, в дополнение идут обучающие материалы по использованию, лицензионные среды разработки, а также демонстрационная плата, которая предназначена для работы с маловыводными микроконтроллерами. Кроме всего этого, присутствуют утилиты, которые сделают работу с механизмом более приятной, помогут отслеживать процесс программирования и отладки работы микроконтроллера. Также поставляется утилита для стимулирования работы МК.

Другие программаторы

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

Программаторы, собранные вручную

А теперь, пожалуй, самое интересное – программаторы PIC-контроллеров, которые собираются вручную. Этим вариантом пользуются те, у кого нет денег или просто нет желания их тратить. В случае покупки у официального представителя можно рассчитывать на то, что если устройство окажется некачественным, то его можно вернуть и получить новое взамен. А при покупке «с рук» или с помощью досок объявлений в случае некачественной пайки или механических повреждений рассчитывать на возмещение расходов и получение качественного программатора не приходится. А теперь перейдём к собранной вручную электронике.

Программатор PIC может быть рассчитан на определённые модели или быть универсальным (для всех или почти всех моделей). Собираются они на микросхемах, которые смогут преобразовать сигналы с порта RS-232 в сигнал, который позволит программировать МК. Нужно помнить, что, когда собираешь данную кем-то конструкцию, программатор PIC, схема и результат должны подходить один к одному. Даже небольшие отклонения нежелательны. Это замечание относится к новичкам в электронике, люди с опытом и практикой могут улучшить практически любую схему, если есть куда улучшать.

Отдельно стоит молвить слово и про программный комплекс, которым обеспечивают USB-программатор для PIC, своими рукамисобранный. Дело в том, что собрать сам программатор по одной из множества схем, представленных в мировой сети, – мало. Необходимо ещё и программное обеспечение, которое позволит компьютеру с его помощью прошить микроконтроллер. В качестве такового довольно часто используются Icprog, WinPic800 и много других программ. Если сам автор схемы программатора не указал ПО, с которым его творение сможет выполнять свою работу, то придется методом перебора узнавать самому. Это же относится и к тем, кто собирает свои собственные схемы. Можно и самому написать программу для МК, но это уже настоящий высший пилотаж.

Универсальные программаторы, которые подойдут не только к РІС

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

Универсальный программатор PIC и AVR – это аппаратура, особенность которой заключается в её универсальности и возможности изменять работу благодаря программе, не внося изменений в аппаратную составляющую. Благодаря этому свойству такие приборы легко работают с МК, которые были выпущены в продажу уже после выхода программатора. Учитывая, что значительным образом архитектура в ближайшее время меняться не будет, они будут пригодны к использованию ещё длительное время. К дополнительным приятным свойствам заводских программаторов стоит отнести:

  1. Значительные аппаратные ограничения по количеству программируемых микросхем, что позволит программировать не одну, а сразу несколько единиц электроники.
  2. Возможность программирования микроконтроллеров и схем, в основе которых лежат различные технологии (NVRAM, NAND Flash и другие).
  3. Относительно небольшое время программирования. В зависимости от модели программатора и сложности программируемого кода может понадобиться от 20 до 400 секунд.

Особенности практического использования

Отдельно стоит затронуть тему практического использования. Как правило, программаторы подключаются к портам USB, но есть и такие вариации, что работают с помощью тех же проводов, что и винчестер. И для их использования придется снимать крышку компьютера, перебирать провода, да и сам процесс подключения не очень-то и удобный. Но второй тип является более универсальным и мощным, благодаря ему скорость прошивки больше, нежели при подключении через USB. Использование второго варианта не всегда представляется таким удобным и комфортным решением, как с USB, ведь до его использования необходимо проделать ряд операций: достать корпус, открыть его, найти необходимый провод. Про возможные проблемы от перегревания или скачков напряжения при работе с заводскими моделями можно не волноваться, так как у них, как правило, есть специальная защита.

Работа с микроконтроллерами

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

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

Возможные проблемы

Увы, даже самая идеальная техника не лишена возможных проблем, которые нет-нет, да и возникнут. Для улучшенного понимания необходимо составить список. Часть из этих проблем можно исправить вручную при детальном осмотре программатора, часть – только проверить при наличии необходимой проверочной аппаратуры. В таком случае, если программатор PIC-микроконтроллеров заводской, то вряд ли починить представляется возможным. Хотя можно попробовать найти возможные причины сбоев:

  1. Некачественная пайка элементов программатора.
  2. Отсутствие драйверов для работы с устройством.
  3. Повреждения внутри программатора или проводов внутри компьютера/USB.

Эксперименты с микроконтроллерами

Итак, всё есть. Как же начать работу с техникой, как начать прошивать микроконтроллер программатором?

  1. Подключить внешнее питание, присоединить всю аппаратуру.
  2. Первоначально необходима среда, с помощью которой всё будет делаться.
  3. Создать необходимый проект, выбрать конфигурацию микроконтроллера.
  4. Подготовить файл, в котором находится весь необходимый код.
  5. Подключиться к программатору.
  6. Когда всё готово, можно уже прошивать микроконтроллер.

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

Хочется отдельно написать обращение к тем, кто только начинает пользоваться программаторами. Помните, что, какими бы элементарными ни казались некоторые шаги, всегда необходимо их придерживаться, чтобы техника нормально и адекватно могла работать и выполнять поставленные вами задачи. Успехов в электронике!

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

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

Цена готовых 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, я рассказал в отдельной статье. Следующий шаг .

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

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

В настоящее время появилось много принципиальных схем с использованием различных микроконтроллеров, в том числе и микроконтроллеров PIC фирмы MicroChip. Это позволило получить достаточно функциональные устройства, несмотря на их простоту.

Но работа микроконтроллера невозможна без программы управления, которую необходимо записать. В данной статье мы рассмотрим универсальный программатор PIC — EXTRA-PIC позволяющий программировать PIC контроллеры и память EEPROM I2C через COM порт либо через .

Список поддерживаемых микросхем, при использовании с программой IC-PROG v1.05D:

PIC-контроллеры фирмы Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66, PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, PIC16F84, PIC16F84A, PIC16F88, PIC16C505*, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630*, PIC16F648A, PIC16F676*, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745, PIC16C765, PIC16C770*, PIC16C771*, PIC16C773, PIC16C774, PIC16C781*, PIC16C782*, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877, PIC16F877A, PIC16C923*, PIC16C924*, PIC18F242, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320, PIC18F4320, PIC18F4539, PIC18F6620*, PIC18F6720*, PIC18F8620*, PIC18F8720*

Примечание: микроконтроллеры, которые отмечены звездочкой (*) необходимо подключить к программатору через ICSP разъем.

Последовательная память EEPROM I2C (IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.

Непосредственно сама схема программатора EXTRA-PIC:

Программируемый контроллер подключается через разъем X3. Ниже приведена распиновка выводов программирования под разные контроллеры:

А теперь инструкция как запрограммировать микроконтроллер.

В виде примера возьмем микроконтроллер PIC16F876A.

Соберите программатор и подготовьте блок питания с напряжением на выходе не менее 15В

Распакуйте программу в отдельный каталог. В созданном каталоге должны находиться три файла:

icprog.exe — файл оболочки программатора;

icprog.sys — драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы;

icprog.chm — файл помощи (Help file).

Настройка программы IC-PROG v1.05D.

Для Windows95, 98, ME Для Windows NT, 2000, XP
(Только для Windows XP ):
Правой кнопкой щёлкните на файле icprog. exe.
«Свойства » >> вкладка «Совместимость » >>
Установите «галочку» на «Запустить программу в режиме совместимости с: » >> выберите «Windows 2000 «.
  1. Запустите файл icprog.exe .
  2. Выберите «Settings » >> «Options » >> вкладку «Language » >> установите язык «Russian » и нажмите «Ok «.
  3. Согласитесь с утверждением «You need to restart IC-Prog now » (нажмите «Ok «).
  4. Оболочка программатора перезапустится.
«Настройки » >> «Программатор «.
Проверьте установки, выберите используемый вами COM-порт, нажмите «Ok «.
Далее, «Настройки » >> «Опции » >> выберите вкладку «Общие » >> установите «галочку» на пункте «Вкл. NT/2000/XP драйвер » >> Нажмите «Ok » >>
если драйвер до этого не был установлен в системе, в появившемся окне «Confirm » нажмите «Ok «. Драйвер установится, и оболочка программатора перезапустится.
Примечание: Для очень «быстрых» компьютеров возможно потребуется увеличить параметр «Задержка Ввода/Вывода «. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы.
«Настройки » >> «Опции » >> выберите вкладку «I2C » >> установите «галочки» на пунктах:»Включить MCLR как VCC » и «Включить запись блоками «. Нажмите «Ok «.
Программа готова к работе.

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

Подключите шнур удлинителя, включите питание.

Запустите программу IC-PROG.

В выпадающем списке выберите контроллер PIC16F876A.

Если у вас нет файла с прошивкой — подготовьте его:

откройте стандартную программу «Блокнот»;

вставьте в документ текст прошивки;

сохраните под любым именем, например, prohivka. txt (расширение *.txt или *.hex).

Далее в IC-PROG Файл >> Открыть файл (! не путать с Открыть файл данных ) >> найти наш файл с прошивкой (если у нас файл с расширением *.txt , то в типе файлов выберите Any File *.* ). Окошко «Программного кода» должно заполнится информацией.

Нажимаем кнопку «Программировать микросхему» (загорается красный светодиод).

Ожидаем завершения программирования (около 30 сек.).

Для контроля нажимаем «Сравнить микросхему с буфером».

Самодельный программатор для PIC-контроллеров. Самодельный программатор для PIC-контроллеров Программатор для pic12f629 от usb своими руками

Многие радиолюбители начинающие по началу своего дела боятся начинать работу с микроконтроллером.Связано это со многим,и основной часто страх как правильно программировать и чем программировать.В данной статье приведена схема простого программатора для микроконтроллера PIC .Смотрим,собираем,спрашиваем на официальном форуме и оставляем отзывы если у вас получилось

Начинать свою работу я советовал бы сначала с общих сведений о микроконтроллерах.

Программатор ExtraCheap

В интернете много различных схем программаторов .Но большинство из них очень сложные,и редко когда можно увидеть фотографии,что бы подтверждало его работоспособность.

Но нужный программатор многим запросам был найден.

Для передачи данных используется COM порт. Схема питается от 5 вольт которые можно взять от портов USB или PS/2.

Еще одна фотография этого устройства:

Для работы с программатором рекомендуется использовать программу IC-Prog

Настройка IC-Prog

Качаем с офф сайта последнюю версию программы IC-Prog Software, NT/2000 driver, Helpfile in Russian language и распаковываем их в одну и туже директорию.

Теперь необходимо установить драйвер программатора, для чего запускаем icprog.exe (если появятся сообщения об ошибках, то просто игнорируем их) и выбираем пункт «Options» в меню «Settings». Открываем вкладку «Programming» и устанавливаем галочку напротив пункта «Verify during programming». Далее в разделе «Misc» нужно активировать опцию «Enable NT/2000/XP Driver», сохранить настройки нажав на кнопку «ОК» и перезапустить программу.

Сменить язык интерфейса можно в разделе «Language». Для того, чтобы указать программе тип нашего программатора, нажимаем F3, в открывшемся окне выбираем «JDM Programmer» и указываем COM порт, к которому подключено устройство.

На этом предварительную настройку программы можно считать законченной.

Прошивка МК

IC-Prog позволяет работать с большим количеством МК, но нам нужен только PIC12F629 – выбираем его в выпадающем списке, расположенным в правом верхнем углу программы.
Для чтения прошивки из МК выполняем команду «Читать микросхему» (значок с зеленой стрелочкой или F8).

По окончанию процесса чтения, в окне программного кода отобразится прошивка МК в шестнадцатеричном виде. Следует обратить внимание на последнюю ячейку памяти по адресу 03F8 – там хранится значение константы OSCCAL , которое устанавливает производитель при калибровке чипа. У каждого МК оно свое, так что неплохо было бы его куда нибудь переписать (я, к примеру, царапаю его иголкой на обратной стороне PIC”а) для облегчения процесса восстановления (хотя это не обязательно), если во время прошивки эта константа была случайно перезаписана.


Для того, чтобы «залить» прошивку из *.hex файла в МК, ее необходимо открыть в программе («Файл»->«Открыть Файл…» или Ctrl+O) и выполнить команду «Программировать микросхему» (значок с желтой молнией или F5). Отвечаем «Yes» на первый вопрос.


А вот на следующий вопрос необходимо ответить «Нет», иначе перезапишется константа OSCCAL, о которой говорилось ранее.


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

На этом хотелось бы подвести топик к концу. Надеюсь данная информация поможет новичкам разобраться в основах программирования PIC микроконтроллеров.

Развитие электроники идёт стремительными темпами, и всё чаще главным элементом того или иного устройства является микроконтроллер. Он выполняет основную работу и освобождает проектировщика от необходимости создания изощрённых схемных решений, тем самым уменьшая размер печатной платы до минимального. Как всем известно, микроконтроллером управляет программа, записанная в его внутреннюю память. И если опытный программист-электронщик не испытывает проблем с использованием микроконтроллеров в своих устройствах, то для начинающего радиолюбителя попытка записать программу в контроллер (особенно 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 можно по этой ссылке:
(скачиваний: 680)
При желании его можно изменить под свой тип PIC-контроллера. Для тех, кто решил оставить плату без изменений, выкладываю вид со стороны деталей для облегчения монтажа (рисунок №4).


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

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


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

С этого момента, первый этап на пути к прошивке PIC-контроллера , подошёл к концу. Второй этап будет включать в себя подключение программатора к компьютеру и работу с программой IC-Prog .
К сожалению, не все современные компьютеры и ноутбуки способны работать с данным программатором ввиду банального отсутствия на них COM-портов , а те что установлены на ноутбуках не выдают необходимые для программирования 12В . Так что я решил обратится к своему первому ПК , который давным-давно пылился и ждал своего звёздного часа (и таки дождался).
Итак включаем компьютер и первым делом устанавливаем программу IC-Prog . Скачать её можно с сайта автора или по этой ссылке:
(скачиваний: 778)
Подключаем программатор к 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-файла ).

Когда я начал заниматься PIC-контроллерами, то, естественно, первым делом встал вопрос о выборе программатора. Поскольку фирменные программаторы дело не дешевое, да и вообще покупать программатор мне показалось не спортивным, было принято решение собрать его самостоятельно. Облазив просторы Интернета я скачал схему и собрал JDM-программатор. Он работал очень плохо: то заливал какую-то фигню, то не заливал первые несколько байт, то вообще ничего не заливал.

Существенным недостатком JDM-программатора является то, что он не может контролировать линию Vdd и, как следствие, — не может реализовать правильный алгоритм подачи напряжений при программировании. Если контроллер сконфигурирован таким образом: “Internal Oscillator”, “MCLR Off”, то при неправильной последовательности подачи напряжений он сначала запускается и начинает выполнять ранее зашитую в нем программу, а потом переходит в режим программирования (при этом указатель может указывать куда угодно, а не на начало памяти программ). В связи с этим: то, куда будет залита ваша программа, да и будет ли залита вообще — большой вопрос!

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

На диодах D1…D4 и стабилитроне D6 выполнен простейший преобразователь уровней RS232->TTL. Когда на линиях DATA, CLOCK напряжение меньше 0В, то они через диоды D1, D2 подтягиваются к земле, а когда напряжение на этих линиях больше 5В, то они через диоды D3, D4 подтягиваются к питанию +5В, которое задается стабилитроном D6.

Питается этот девайс прямо от COM-порта. Стабилитроны и диоды в этой схеме вполне можно заменить отечественными: Д814Д, КС147А и т.д.

Каким образом реализуется правильный алгоритм подачи напряжений и откуда вообще берутся 13 Вольт напряжения программирования? Всё как всегда очень просто.

При инициализации порта на выходе TxD висит -10В. При этом конденсатор С1 заряжается через стабилитрон D7 (который в данном случае оказывается включён в прямом
направлении и работает в качестве диода). Т.е. напряжение на плюсовой ноге С1 относительно GND равно нулю, но относительно TxD=+10В (или сколько там у вас напряжение на выходе COM-порта).

Теперь представим, что происходит при изменении напряжения на выходе TxD с -10В до +10В. Одновременно с ростом напряжения на выводе TxD, начнёт расти и напряжение на плюсовой ноге конденсатора С1. Заряд не может слиться на землю через D7, т.к. теперь D7 включен обратно, единственный путь — утечка через PIC, но ток там мизерный. Итак, напряжение на плюсовой ноге С1 (а, следовательно и на выводе MCLR) начинает расти. В момент, когда на TxD ноль относительно земли, на конденсаторе С1 (на его плюсовой ноге, а следовательно и на MCLR) относительно земли как раз +10В. Когда на TxD +3В, — на С1 уже 3+10=13В. Вот и всё, напряжение Vpp уже подано, а на линии VDD ещё только +3В.

При дальнейшем росте напряжения на TxD, — напряжение на С1 не растёт, так как начинает работать стабилитрон D7. При росте напряжения на TxD выше +5В начинает работать стабилитрон D6.

Чтобы ограничить ток разряда конденсатора C1 через стабилитрон D7, в схему включен резистор R6, соответственно, напряжение на C1 не точно равно напряжению стабилизации, а несколько выше: U C1 =Uст+I РАЗР *R6. Для подстройки напряжения программирования служит сопротивление R3. Можно поставить переменное 10КОм или подобрать постоянное, так, чтобы напряжение программирования было примерно 13 В (в устройстве, представленном на рисунке ниже, R3=1,2 кОм).

Я успешно программирую этим программатором контроллеры PIC12F629 и PIC16F628A , однако автор утверждал, что этим программатором (в представленном мной варианте) можно программировать PIC12F508 , PIC12F509 , PIC12F629 , PIC12F635 , PIC12F675 , PIC12F683 , PIC16F627A , PIC16F628A , PIC16F648A . Кроме этих, на сайте автора feng3.cool.ne.jp есть модификации программатора для других PIC-контроллеров.

Готовые девайсы :

Вариант программатора от Mixer .

Найти схемы работоспособных программатор pic контроллеров. Простейший программатор JDM для PIC на пассивных компонентах

В статье рассматривается программатор Extra-PIC, данные о котором получены из (DOC Rev.1.03.00). Программатор рабочий, если все собрать как указано ниже то все работает при первом включении. Лично я взял эту схему с сайта Тимофея Носова

Список поддерживаемых микросхем, при использовании с программой IC-PROG v1.05D:
PIC-контроллеры фирмы Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66, PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, PIC16F84, PIC16F84A, PIC16F88, PIC16C505*, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630*, PIC16F648A, PIC16F676*, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745, PIC16C765, PIC16C770*, PIC16C771*, PIC16C773, PIC16C774, PIC16C781*, PIC16C782*, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16F876, PIC16F876A, PIC16F877, PIC16F877A, PIC16C923*, PIC16C924*, PIC18F242, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320, PIC18F4320, PIC18F4539, PIC18F6620*, PIC18F6720*, PIC18F8620*, PIC18F8720*

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

Последовательная память EEPROM I2C (IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.

Схема программатора.
На стороне программатора используется разъем DB9 типа «гнездо» («мама», «дырки»).
Очень часто ошибаются и ставят «вилку» («папу», «штырьки»), т.е. такое же как и на стороне ПК!

Внимание! Материал только для общей справки. Обязательно убедитесь, что указанное расположение выводов соответствует выбранному вами микроконтроллеру. Для этого, обратитесь к Data Sheets и Programming Specifications на соответствующий микроконтроллер (обычно всё совпадает).

Полный вариант:

Фото готовой платы:

Пошаговая инструкция или «Как прошить PIC-контроллер»

1. Соберите программатор Extra-PIC, отмойте растворителем или спиртом с зубной щеткой, просушите феном.
Осмотрите на просвет на предмет волосковых замыканий и непропаев.
Подготовьте блок питания на напряжение не менее 15В и не более 18 вольт.
РАСПАЯЙТЕ УДЛЕНИТЕЛЬНЫЙ ШНУР
мама-папа для COM-порта (не путать с нуль-модемными и кабелями для модемов; прозвоните шнур — первая вилка, должен идти к первому гнезду и т.д.; нумерация вилок и гнезд нарисована на самом разъеме 1-1, 2-2, 3-3 и т. д до 9-9.). Обязательно сделайте все самостоятельно. У меня была проблема именно с кабелем, а я грешил на программатор =)
2. Скачайте программу IC-PROG с или с сайта разработчиков .
3. Распакуйте программу в отдельный каталог. В образовавшемся каталоге должны находиться три файла:
icprog.exe – файл оболочки программатора;
icprog.sys – драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы;
icprog.chm – файл помощи (Help file).
4. Настройте программу.

Для Windows95, 98, ME

Для Windows NT, 2000, XP

(Только для Windows XP ):

Правой кнопкой щёлкните на файле icprog.exe.

«Свойства » >> вкладка «Совместимость » >>

Установите «галочку» на

«Запустить программу в режиме совместимости с: » >>

выберите «Windows 2000 «.

Запустите файл icprog.exe .

Выберите «Settings » >> «Options » >> вкладку «Language » >> установите язык «Russian » и нажмите «Ok «.

Согласитесь с утверждением «You need to restart IC-Prog now » (нажмите «Ok «).

Оболочка программатора перезапустится.

«Настройки » >> «Программатор «.

Проверьте установки, выберите используемый вами COM-порт, нажмите «Ok «.

«Вкл. NT/2000/XP драйвер » >> Нажмите «Ok » >>

если драйвер до этого не был установлен в системе, в появившемся окне «Confirm » нажмите «Ok «. Драйвер установится, и оболочка программатора перезапустится.

Примечание:

Для очень «быстрых» компьютеров возможно потребуется увеличить параметр «Задержка Ввода/Вывода «. Увеличение этого параметра увеличивает надёжность программирования, однако, увеличивается и время, затрачиваемое на программирование микросхемы.

«Настройки » >> «Опции » >> выберите вкладку «I2C » >> установите «галочки» на пунктах:

«Включить MCLR как VCC » и «Включить запись блоками «. Нажмите «Ok «.

Программа готова к работе.

5. Установите микросхему в панель программатора, соблюдая положение ключа.
6. Подключите шнур удлинителя, включите питание.
7. Запустите программу IC-Prog.
8. В выпадающем списке выберите контроллер PIC16F876A.

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

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

1В блокнот
С1470 мкФ 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

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

2N3904

4TO-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
Answer

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry”s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five http://jquery2dotnet.com/ centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

Программатор PIC контроллеров своими руками

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

Принципиальная схема программатора для pic контроллеров:

Питание на саму схему не требуется, ведь для этого служит COM порт компьютера, через который и осуществляется управление прошивкой микроконтроллера. Для низковольтного режима программирования вполне достаточно 5в, но могут быть не доступны все опции для изменения (фьюзы). Разъем подключения COM-9 порта смонтировал прямо на печатную плату программатора для PIC – получилось очень удобно.

Можно воткнуть плату без лишних шнуров прямо в порт. Программатор опробован на различных компьютерах и при программировании МК серий 12F,16F и 18F, показал высокое качество прошивки. Предложенная схема позволяет программировать микроконтроллеры PIC12F509, PIC16F84A, PIC16F628.

Для программирования используется WinPic800 – одна из лучших программ для программирования PIC контроллеров. Программа позволяет выполнять операции для микроконтроллеров семейства PIC: чтения, записи, стирания, проверки FLASH и EEPROM памяти и установку битов конфигураций.

Различные типы микроконтроллеров PIC12C508, PIC12C509, PIC16C84 и микросхем памяти с интерфейсом I2C программируют, вставляя в разъём как показано на рисунке выше.

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

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

Цена готовых 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, я рассказал в отдельной статье. Следующий шаг .

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

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

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

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

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

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

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

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

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

Читайте также…

РадиоКот :: USB программатор PIC микроконтроллеров.

РадиоКот >Схемы >Цифровые устройства >Примочки к ПК >

USB программатор PIC микроконтроллеров.

В данной статье рассматриваются практические аспекты сборки несложного 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 определена для внутрисхемного программирования. Остальные линии типовые.
Программатор собран на односторонней печатной плате.

Конструктивно сигнальные линии подпаиваются к подходящему разъему (в моем случае это разъем DB9).

На фотографии видно, что использован “нетипичный” разъем USB. К сожалению, в моём родном городе Саратове не удалось найти правильный разъем USB.
Для программирования микроконтроллеров в DIP корпусах очень удобно использовать адаптер с ZIF-панелью (Zero Insertion Force – с нулевым усилием на выводы микросхемы при ее установке). Схема адаптера на рисунке ниже.

Адаптер собран на односторонней печатной плате. Мне не удалось симпатичнее развести плату и минимизировать количество перемычек.

ZIF-панель любезно предоставлена Благородным котом этого сайта, который пожелал остаться неизвестным. (sic! Прим. Кота.) Большое спасибо ему за это. Ниже фотография собранного адаптера.

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

Затем следует традиционный запрос на установку драйвера. Драйвер расположен в управляющей программе WinPic800 по примерному пути WinPic800 3.55GGTP-USBDriver 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 сек. Глюков не замечено. Часть зашитых МК протестировано в железе – работает.

Ниже рисунки установки кристаллов в ZIF-панель:

DIP40

DIP28

DIP18

DIP20

DIPrf18

DIP14

DIP8 DIPrf20

DIP8 10F

DIP8 (EE)

Теперь несколько слов о том, как прошить PIC18F2550, точнее, чем прошить. На этом сайте представлено несколько вариантов программатора Extra-PIC. Этот программатор можно рекомендовать для прошивки PIC18F2550.
Существует непроверенная информация по схеме элементарного программатора ART2003, который подключается к LPT-порту ПК. Данный программатор поддерживается всё тем же WinPic800 3.55G.

Ниже типовые настройки WinPic800 3.55G для работы с ART2003.

Если Вы повторите предложенную схему ART2003, вне зависимости от результатов прошивания прошу поделиться информацией о его работе (фотографии и принтскрины приветствуются).

На форуме нашего сайта довольно активно обсуждается данный программатор. Однако многие, в том числе и ваш покорный автор, периодически сталкивались с ситуацией, когда программатор переставал опознаваться компьютером и, соответственно, не работал. Попытки перегрузить, переподключить, использовать другой USB порт в составе ПК не всегда излечивали данную проблему. В отдельных случаях программатор “самоизлечивался” и работал как положено.
Благодаря нашим читателям выяснилось, что проблема на самом деле пустяковая и лежит на поверхности. Достаточно на линии питания от разъема USB поставить фильтрующий электролитический конденсатор емкостью порядка 100,0 мкф на рабочее напряжение не менее 6,3 вольта. На существующей печатной плате этот конденсатор можно вполне культурно установить.
Для этого необходимо просверлить два отверстия, загнуть к печатным проводникам вывода конденсатора и пропаять их. Ниже рисунок печатной платы и расположение конденсатора (выделено красным кругом).

Файлы:
Печатные платы в формате SL4.0
Прошивка МК
WinPic800 3.55G

Все вопросы – в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?

Pic микроконтроллеров автоматический программирования usb программатор. PIC программатор микроконтроллеров фирмы MicroChip

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

Также здесь вы найдете описание программаторов и из другого семейства – АВР, но исключительно в сравнительных целях. Приступим к статье, где рассказывается, как сделать программатор-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 выводов. Этого должно хватить для самых различных экспериментов и построения самых разных механизмов, которые только можно сделать в пределах скромного бюджета среднестатистического гражданина. Можно выразить уверенность, что сделанный программатор своими руками сможет удовлетворить самых требовательных радиолюбителей – при условии, что он будет сделан качественно.

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 сек. Глюков не замечено. Часть зашитых МК протестировано в железе – работает.


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

Итак, пришло время изучать микроконтроллеры, а потом и их программировать, а так же хотелось собирать устройства на них, схем которых сейчас в интернете ну просто море. Ну нашли схему, купили контроллер, скачали прошивку….а прошивать то чем??? И тут перед радиолюбителем, начинающим осваивать микроконтроллеры, встает вопрос – выбор программатора! Хотелось бы найти оптимальный вариант, по показателю универсальность – простота схемы – надёжность. «Фирменные» программаторы и их аналоги были сразу исключены в связи с довольно сложной схемой, включающей в себя те же микроконтроллеры, которые необходимо программировать. То есть получается «замкнутый круг»: что бы изготовить программатор, необходим программатор. Вот и начались поиски и эксперименты! В начале выбор пал на 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 контроллеров! Удачи!

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

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

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

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

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

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

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

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

▶▷▶▷ программатор для pic и avr своими руками схема

▶▷▶▷ программатор для pic и avr своими руками схема
ИнтерфейсРусский/Английский
Тип лицензияFree
Кол-во просмотров257
Кол-во загрузок132 раз
Обновление:27-05-2019

программатор для pic и avr своими руками схема – Универсальный программатор для микроконтроллеров AVR и PIC 9zipruhomeuniversalnyj_programmator_ avr _ pic htm Cached Добрый день Эта схема с печатной платой были найдены в интернете в 2011 году, конструкция была успешно повторена Работает именно в таком варианте, без доработок, с avr и pic Схема USB программатора на Atmega8 своими руками wwwjoytaru4483-sxema-usb-programmatora-na-atmega8 Cached ребята собрал я ваш программатор avr -910, и воткнул на комп и пишет что не опознан! что я сделал не так? все детали один к одному, прошил унипрофам, fuse ставил как на фото нажимал сначала на read ставил галочки как на фоте и Программатор Для Pic И Avr Своими Руками Схема – Image Results More Программатор Для Pic И Avr Своими Руками Схема images Программатор своими руками Программатор для PIC своими wwwsylruarticle210461new_programmator Cached Можно сделать и usb- программатор своими руками , но для него понадобятся дополнительные элементы схемы, которые усложнят и без того довольно сложную плату Простой USB программатор PIC – cxemnet cxemnetmcmc418php Cached Раньше у меня был компьютер с физическим com-портом, но сейчас в моём распоряжении только usb и плата pci-lpt-2com Для начала я собрал простой JDM программатор , но как оказалось ни с платой pci-lpt-com, ни с USB программатор PIC своими руками go-radioruusb-programmator- pic -svoimi-rukamihtml Cached usb программатор pic своими руками Собираем программатор для микроконтроллеров pic и Посоветуйте Программатор Для Avr И Pic На Usb – Программаторы forumcxemnetindexphp?to pic 111656 Cached У меня та же проблема: нужен программатор 0 Обязательно USB 1 не в коем случае не внутренний, а с набором панелек 2 Чтобы работал и под Вин ХР, и под Вин 7 3 Чтобы прошивал и Atmel и PIC Программатор для avr своими руками steptosleepru Cached Для этого нужен отдельный программатор , это может быть, например, stk 200 (lpt порт), stk500 и т д lpt программатор подключается к usbasp через разъем idc-10 ПРОГРАММАТОР ДЛЯ PIC – radioskotru radioskotrupublmkprogrammator_dlja_ pic 9-1-0-137 Cached Принципиальная схема программатора для pic контроллеров: Питание на саму схему не требуется, ведь для этого служит COM порт компьютера, через который и осуществляется управление прошивкой Программатор AVR своими руками, схемы от LPT порта и USB wwwtexnicruprogram007progr033htm Cached Печатную плату можно изготовить своими руками по популярной среди радиолюбителей утюжной технологии ЛУТ, а чертеж печатной платы в формате Sprint Layout уже имеется в архиве с прошивками и ПРОГРАММАТОР AVR USB – radioskotru radioskotrupublmkprogrammator_ avr _usb9-1-0-458 Cached Здесь покажу технологию сборки usb программатора avr и упаковки в корпус Для начала скачиваем архив и делаем печатную плату Потом впаиваем на неё все детали Promotional Results For You Free Download Mozilla Firefox Web Browser wwwmozillaorg Download Firefox – the faster, smarter, easier way to browse the web and all of 1 2 3 4 5 Next 8,790

  • В отличие от фирмы quot;Microchipquot;, которая для PIC контроллеров четко определила размещение в ф
  • айле прошивки области памяти программ, данных и слова конфигурации, ATMEL предлагает использовать для памяти данных отдельный файл, а FUSE биты вообще записывать quot;на бумажкеquot;. На мой взгляд эт
  • я памяти данных отдельный файл, а FUSE биты вообще записывать quot;на бумажкеquot;. На мой взгляд это неудобно. Разумеется… Внутрисхемные пригодны только для тех микросхем, в которых поддерживается внутрисхемное программирование , то есть позволяют прошивать микросхему, не вынимая её из устройства. Математическая модель оперативного стабилизирующего контура для цифрового централизованного автоматического управления технологическими параметрами. Нужны такие специалисты, для которых важен весь процесс разработки и применения робототехнических изделий. С точки зрения технологии микроконтроллер i8051 являлся для своего времени очень сложным изделием в кристалле было использовано 128 тыс. транзисторов , что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086 .

ATMEL предлагает использовать для памяти данных отдельный файл

данных и слова конфигурации

  • stk 200 (lpt порт)
  • конструкция была успешно повторена Работает именно в таком варианте
  • а с набором панелек 2 Чтобы работал и под Вин ХР

программатор для pic и avr своими руками схема Картинки по запросу программатор для pic и avr своими руками схема Другие картинки по запросу программатор для pic и avr своими руками схема Жалоба отправлена Пожаловаться на картинки Благодарим за замечания Пожаловаться на другую картинку Пожаловаться на содержание картинки Отмена Пожаловаться Все результаты Универсальный программатор для микроконтроллеров AVR и PIC zipruhomeuniversalnyj_programmator_avr_pichtm Похожие Программатор позволяет программировать любые микроконтроллеры AVR и электроника и схемы своими руками Универсальный программатор для USB программатор PIC своими руками Goradioru goradioruusbprogrammatorpicsvoimirukamihtml Похожие Собираем USB программатор PIC микроконтроллеров Подробная принципиальная схема и рисунок печатной платы прилагается Самодельный программатор для PICконтроллеров У Самоделкина Электроника авг г Lcrt тестер с AVR микроконтроллером и минимум дополнительных Как можно догадаться, в схеме моего программатора Фото печатная плата программатора Фото программатор в сборе Универсальный USB программатор Сайт Паяльник cxemnet Микроконтроллеры Похожие Схема универсального программатора Вы сможете собрать данный программатор своими руками Основой программатора является микросхема Схема USB программатора на Atmega своими руками joytaru wwwjoytaru Микроконтроллеры Похожие янв г Фактически это AVR популярной схемы Prottossa USB программатор надежен Фото USB программатора собранного на Atmega РадиоКот Программатор для PIC, AVR и микросхем памяти дек г Программатор для PIC , AVR и микросхем памяти Нужна была схема простая, чтоб собрать из того, что под рукой и надежная, без глюков так сказать под него и проектировалась плата, ниже несколько фото Программатор picконтроллеров Extrapic своими руками Электроника Электроника своими руками Рейтинг голоса мар г Pic серия принадлежит компании Microchip, а AVR компании Atmel, программатора можно отнести простоту его схемы , надёжность УНИВЕРСАЛЬНЫЙ ПРОГРАММАТОР радиосхемы Схемы и радиоэлектроника УНИВЕРСАЛЬНЫЙ ПРОГРАММАТОР , Устройства на простые интересные РАДИОСХЕМЫ сделанные своими руками Программатор с возможностью программирования PIC и AVR С помощью Видео Самодельный USB программатор для PIC контроллеров VHEMaster Архив YouTube июл г Самодельный USB программатор для atmel avr контроллеров Игорь Круч YouTube апр г Все результаты Программатор своими руками Программаторы ChipStar и адаптеры июн г Программатор своими руками ChipStarJanus В таком режиме он поддерживает микроконтроллеры PIC и AVR фирмы Microchip, EXTRAPIC v универсальный программатор своими руками bestchartruprogrammatoryuniversalnyjprogrammatorextrapicvsxemype Похожие июл г Будильники, Таймеры, Термометры Программаторы AVR , PIC , EEPROM Мелкий ремонт Недавно мне понадобилось запрограммировать PIC и EEPROM Скачать бесплатно схему печатной платы универсального Меня очень порадовало, что этот универсальный программатор Универсальный программатор своими руками Схема ranalqrzruprgshtml Похожие Схема и описание программатора микроконтроллеров, EPROM, EEPROM, IC Параллельный программатор AVR Программатор для avr своими руками Бессонная ночь сисадмина нояб г zipru Радиотехника, электроника и схемы своими руками Универсальный программатор для микроконтроллеров AVR и PIC Схема программатор для pic и avr своими руками схема Интернет smasterimsamirushemaprogrammatordlyapiciavrsvoimirukamishemahtml схема программатор для pic и avr своими руками схема Универсальный программатор микроконтроллеров AVR своими ranallanstekruavrispshtml Программатор микроконтроллеров AVR аналог AVRISP Схема программатора для AVR с возможностью подключения к USB Электроника,схемы на микроконтроллере radiostroirumikrokontrolhtml окт г Схемы и устройства сделанный своими руками на микроконтроллере,и то Так же вам понадобиться программатор для PIC , вот схема Программаторы для микроконтроллеров Страница Меандр meandrorgarchivescategoryпроектыпрограмматорыpage Похожие Универсальный программатор для comпорта AVR и PIC Темка эта в итоге разрослась и вылилась в схему универсального программатора , которым микроконтроллеров avr купить , программатор микроконтроллеров pic COM программаторы Программирование устройств на PIC picrknigaru Программирование Похожие PIC и EEPROM программатор Программатор для PIC , AVR и микросхем памяти Нужна была схема простая, чтоб собрать из того, что под рукой и Программатор ExtraPIC Dmitry Dubrovenko wwwdubrovenkoruddssitedshexpwhtm Похожие Однако, при более детальном изучении схемы , был выявлен и , Vpp AVR На фото программатора у меня установлено три светодиода, но от схема программатора своими руками для pic и avr своими wwwhtsajpskhemaprogrammatorasvoimirukamidliapiciavrsvoimirukamis мар г схема программатора своими руками для pic и avr своими руками схема Yahoo Search Results Yahoo Web Search Sign in Mail Go to Программатора для микроконтроллеров eldigiruprogrammators Похожие Здесь вы сможете найти схемы самых разных программаторов для AVR , PIC , NEC, STM usb программатор avr Электрические схемы elshemarupublkontrollerusb_programmator_avr Похожие Схемы и ремонт USB ПРОГРАММАТОР AVR в разделе МИКРОСХЕМЫ И КОНТРОЛЛЕРЫ Готовый USB ПРОГРАММАТОР AVR своими руками Как я создавал Программатор PIC, AVR и микросхем памяти shemuruкакясоздавалпрограмматорpicavrимикросхемпамятипервы Похожие нояб г Как я создавал Программатор PIC , AVR и микросхем памяти первый опыт ВКонтакте Листая журнал РАДИО, нашел приемлемую схему для себя Далее привожу фото обзор как я создавал программатор Универсальный программатор микроконтроллеров PIC, AVR и radiohlamru?p дек г Схема и описание работы универсального программатора Готовый девайс на фото сам программатор и модуль для FAQ PicKit Lite своими руками Сообщество Электронные Похожие Теперь я стал счастливым обладателем USB программатора для PIC ов Начну с того что Сообщества Электронные Поделки Блог FAQ PicKit Lite своими руками Широкому распространению PIC микроконтроллеров способствовало открытость схем и программ Он у меня и Pic и AVR прошивает! Программатор pic своими руками лучший сайт bolnitsasinkovorucachesdrayveryprogrammatorpicsvoimirukami Программатор pic своими руками Программатор своими руками для pic надезхдакмв Programmer ver схема pic программатора Программатор usb ходовых у радиолюбителей микроконтроллеров рода avr программаторы Программаторы Принципиальные схемы Kazusru kazusrushemeslist_pages_categorieshtml Похожие Доработка программаторов для гарантированного программирования микросхем PCF Как сделать простой программатор для PIC ов и AVR ов Схема универсального программатора для pic и avr bbasicrunetshemauniversalnogoprogrammatoradlyapiciavr Простой программатор для микроконтроллеров pic и avr Универсальный программатор схема pic и avr Usb программатор pic своими руками Как программировать PIC микроконтроллеры или Простой JDM luckytechrupic_programmatorhtml Похожие авг г Простой JDM программатор PIC микроконтроллеров Фотография Так уж сложилось, что знакомство с микроконтроллерами я начал с AVR Для первой схемы долго и упорно пытался сделать PIC программатор по Своими руками , Технологии, Электроника Добавьте в закладки Простейший программатор для ATmega Полезное своими руками electroshemaru Самоделки своими руками Похожие Как понятно из схемы , для сборки программатора потребуется ничтожно малое Далее выбираем микроконтроллер Device AVR micro ATmega Не найдено pic Универсальный программатор на FTR Сайт о avrru Решения Программаторы Программаторы Похожие Данный программатор предназначен для программирования различных имеет два разъёма для внутрисхемного программирования AVR ISP и PIC ISP случайно не испортить программатор или подключаемую к нему схему USB программатор PIC, PIC, dsPIC, AVR, ICSPI FlowcodeInfo flowcodeinfosmfindexphp?topic Похожие мар г USB программатор PIC , PIC, dsPIC, AVR , ICSPI Видоизмененная схема программатора и переходных шлейфов в Proteus; Программатор AVR своими руками, схемы от LPT порта и USB wwwtexnicruprogramprogrhtm Похожие Схемы программаторов AVR для микроконтроллеров от интерфейсов LPT и USB Не найдено pic Эволюция программатора Экстрапик Технообзор мар г Схема программатора контроллеров Экстрапик Далее увидел Вот фото Экстрапик в полной боевой готовности Экстрапик в EXTRAPIC, AVR и AVRDUDE Программатор Extra PIC революция продолжается Программатор на основе Extra PIC Микроконтроллеры Схемы vprlrupublcifrovaja_tekhnikamikrokontrolleryprogrammatorpic Похожие мар г Им можно прошивать как PIC контроллеры, так и AVR Все свои Схема для данного программатора была взята из журнала Радио за год Двухполярный лабораторный блок питания своими руками Программатор своими руками avr только у нас АГТ Сибирь agtsiberiaruviewsjiznennoeprogrammatorsvoimirukamiavr Рейтинг отзывов Программатор своими руками avr Делаем программатор avr своими руками своими руками avr Схема usb программатора на atmega своими! Ардуино Программатор pic Похоже своими от интерфейсов lpt и usb Avr Программаторы микро контроллеров RadioMaster Схемы Паяльная станция своими руками Portable USB программатор микроконтроллеров AVR и ATS, совместимый с AVR ICProg рекомендует для использования этот PIC JDM программатор как правило приходится проверять прошивку и всю схему в железе, для таких целей было решено создать Схема Usb Программатора На Atmega Своими Руками Этот USB программатор Вы можете собрать своими руками за несколько минут на макетной плате Схема программатора схема usb программатора для AVR на Atmega Собираем USB программатор PIC микроконтроллеров Программатор Громова Электроника для всех EasyElectronics easyelectronicsruavrshagpervyjprogrammatorhtml Похожие июл г Самый простой вариант программатора для AVR это пять UniProf от Николаева Схему программатора придумал Громов, создатель Algorithm Builder еще купить резистора на ом перемычки, они же пофигисторы Правда, работал больше с PIC , поэтому использовал обычно Программатор STK для микроконтроллеров AVR Pinterest Программатор STK для микроконтроллеров AVR Электроника для всех Электрическая схема Cnc Cnc Open Programmer USB programmer for PIC , EPROM, ATMEL, SPI Xtronic Мастер Винтик Всё своими руками ! самый простой программатор PIC Микроконтроллер Киберфорум wwwcyberforumru Электроника и радиотехника Микроконтроллеры апр г Рейтинг , голосов вот самый простой JDM программатор для авр , флешек серии здесь имеется схема и фото адаптера для PICPgm схема универсального программатора для pic и avr Trendy Mamy trendymamypluserfilesskhemauniversalnogoprogrammatoradliapiciavrxml мая г схема универсального программатора для pic и avr T ru spbtiuru Универсальный расширитель арок, цена руб, купить T Сообщить о Программатор atmega, attiny своими руками allhe Мастерклассы Электроника Похожие Рейтинг , голоса янв г Данная схема программатора для микроконтроллеров atmega и attiny, одна из наиболее простых и В программе выбираем AVR Micro, Atmega Программатор микроконтроллеров pic своими руками VRTP Посоветуйте самый простой програматор для PIC сент г сообщений автора Прошу подскажите самую простую схему программатора что то типа пяти поводков для AVR потому что моих нервов уже просто не Программатор AVR микроконтроллеров LPT программатор Форум wwwservodroidru Микроконтроллеры Похожие окт г сообщения автора Форум Программирование микроконтроллеров AVR , PIC Принципиальная схема программатора на LPT порт показана на рисунке не жалеть проводников для земли ноги разъёма или купить Схемы на микроконтроллерах Мир электроники fullchipnetshemynamikrokontrollerah Похожие авг г Схемы на микроконтроллерах Универсальный программатор для практически любых радиостанций схема Рабочие прошивки для Автономный отпугиватель кротов АНТИКРОТ своими руками Программатор сXX, xx, PIC xx F xx,AVR, Comport testcopy апр г сообщений авторов размер шрифта Собрал программатор под индексом ExtraPic v в принципе, получилось все очень даже ниго, плюс корпус своими руками под него собрал из корпуса от роутера схему брал отсюда программатор схема программатора La Palombella wwwlapalombellaorgprogrammatorskhemaprogrammatorauniversalnyiprogra мар г программатор схема программатора универсальный программатор программатор AVR USB программатор PIC своими руками Миниатюрный, быстрый, автономный программатор AVR автономный программатор AVR микроконтроллеров с SD картой памяти индикатор бортовой сети схема Принципиальная Схема , Electronics Реклама Программатор pic avr своими руками всего за руб Реклама sclickaliexpresscom , Оценка компании aliexpresscom программатор pic avr своими руками за руб Только сегодня! Быстрая доставка Возврат Гарантия Оригинал Вместе с программатор для pic и avr своими руками схема часто ищут программатор pic usb своими руками универсальный usb программатор для pic и avr программатор extrapic через usb ftrl программатор pic spi flash программатор своими руками программатор bios своими руками pickit своими руками usb программатор на max Документы Blogger Duo Hangouts Keep Jamboard Подборки Другие сервисы

В отличие от фирмы quot;Microchipquot;, которая для PIC контроллеров четко определила размещение в файле прошивки области памяти программ, данных и слова конфигурации, ATMEL предлагает использовать для памяти данных отдельный файл, а FUSE биты вообще записывать quot;на бумажкеquot;. На мой взгляд это неудобно. Разумеется… Внутрисхемные пригодны только для тех микросхем, в которых поддерживается внутрисхемное программирование , то есть позволяют прошивать микросхему, не вынимая её из устройства. Математическая модель оперативного стабилизирующего контура для цифрового централизованного автоматического управления технологическими параметрами. Нужны такие специалисты, для которых важен весь процесс разработки и применения робототехнических изделий. С точки зрения технологии микроконтроллер i8051 являлся для своего времени очень сложным изделием в кристалле было использовано 128 тыс. транзисторов , что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086 .

Клон PicKit2, разработанный и изготовленный в домашних условиях

PicKit2 – это программатор, разработанный Microchip для программирования своих микроконтроллеров pic. PicKit2 поддерживает множество серий микроконтроллеров с 8-битными изображениями. PicKit2 поддерживает почти все микроконтроллеры серий Pic-10/12/16/18/24 и dspic-30/33 flash. Pickit 2 – это программатор ICSP (внутрисхемный последовательный программатор). В интерфейсе icsp микроконтроллер можно программировать, пока он работает в схеме. Программист icsp использует 5 контактов для программирования целевого микроконтроллера.Pickit 2 использует встроенный микроконтроллер pic18f2550, который программирует целевой микроконтроллер. Pic18f2550 взаимодействует с компьютерным программным обеспечением через интерфейс USB и взаимодействует с целевым микроконтроллером через интерфейс icsp. Благодаря микрочипу была выпущена программа pic18f2550. Теперь можно перевернуть схему Pickit 2, и можно сделать программатор Pickit 2 дома как самодельный проект. Для программирования

Pickit 2 требуются следующие выводы микроконтроллера pic.

  • PGC (тактовый вход микроконтроллера)
  • PGD (ввод данных в микроконтроллер)
  • Vpp (напряжение в режиме программирования)
  • Vdd (на вывод питания подается 5 В)
  • Gnd (заземление)

Чтобы запрограммировать микроконтроллер pic, нужно определить верхние 5 контактов на его микроконтроллере pic, а затем выполнить соединение с заголовком pickit 2 icsp.См. Таблицу микроконтроллера pic, чтобы определить эти контакты, а затем подключить сигналы от PicKit2 к этим контактам. Обычно все микроконтроллеры pic имеют контакты icsp, расположенные на номерах контактов, указанных ниже.

Источник из Википедии

Я разработал копию клона программиста PicKit 2 дома как самодельный проект. Все компоненты, необходимые для сборки набора, можно легко найти в магазине электроники. Купил все комплектующие в интернет-магазине электроники.

Схема, по которой я построил комплект, получена из
http: // tiktakx.wordpress.com/2011/04/14/yet-another-simplified-pickit2-clone/

Я внес некоторые изменения в схему.

  • Катушка индуктивности, которую я использовал в своем Pickit2, составляет 680 мкГн.
  • Кнопка
  • с контактом №26 включена для перезагрузки загрузчика в случае его повреждения.

Если вы используете схему, приведенную на tiktakx.wordpress.com, вы не сможете загрузить загрузчик, если он поврежден. Затем вам нужно вручную удалить контроллер Pic18F2550-ICSP из комплекта и перепрограммировать его с другого Pickit2.Принципиальная схема клона приведена ниже.

Схема PicKit2

Мой последний комплект ниже. Я сделал Pickit2 и программу-исполнитель на одной плате. Я программирую микроконтроллер Pic на одной стороне, затем снимаю контроллер, кладу его на другую сторону разъема zif, включаю питание, и моя программа начинает выполняться.

Примечание: Мой PicKit2 выбирается моим ПК в первый раз, когда я впервые подключил его к ПК. Это означает, что в схеме и компонентах нет проблем. Я не получал никаких сообщений об ошибках в аппаратном или программном обеспечении PicKit2.Значит, мне повезло: D

PicKit2 Clone, сделанный дома

Я разделил свою доску на две части.
  • Исполнитель программы
  • Схема PicKit2

Я сделал печатную плату для исполнительного устройства схем и PicKit2. Затем я распечатал их на листе печатной платы один за другим вручную. Сначала распечатал схему на листе наклеек с помощью лазерного принтера, затем наклеил схему на лист печатной платы с помощью утюга.

Я спроектировал печатную плату как исполнительного устройства программ, так и схемы PicKit2, используя онлайн-редактор печатных плат EasyEda.Easyeda – это онлайн-программа для редактирования печатных плат, которая проста в использовании и проектировании печатных плат с помощью easy eda. В Easyeda доступно множество посадочных мест для компонентов, определяемых по отдельности, вы также можете импортировать и использовать посадочные места многих других программ-редакторов плат в easy eda.

Загрузите файлы печатной платы программатора pickit 2 по ссылкам ниже

Плата исполнителя программ

Печатная плата PicKit2

Как только мое оборудование будет завершено, пришло время загрузить загрузчик в микроконтроллер pic18f2550.Я запрограммировал PIC18F2550-ICSP с помощью другого программатора pic. Вам необходимо изначально запрограммировать контроллер PIC18F2550-ICSP. Файл программирования доступен ниже, а также на веб-сайте Microchip.

Файл программирования PicKit2 pic18f2550 – Загрузчик

Этот файл необходимо загрузить в 18F2550 / ICSP. Когда вы подключаете Pickit2 к компьютеру, этот файл сообщает компьютеру, что это USB-устройство. Как только ваш компьютер выберет Pickit2, пора загрузить в него загрузчик.Об этом сообщает мигающий светодиод на комплекте. Если красный светодиод мигает, это означает, что ваш pickit2 хочет, чтобы загрузчик был загружен в него. Вы можете загрузить загрузчик из программного обеспечения PicKit2 или из среды разработки MP-Lab. Загрузил из MP-Lab IDE.

Просто подключите PicKit2 к компьютеру. Откройте MPLAB-IDE. Перейдите в Programmer> Select Programmer> PicKit2. Как только вы выберете PicKit2, в окне MPLAB появится статус, в котором будет указано Pickit2 Found , и вы увидите, что MPLAB загружает загрузчик в PicKit2.

pickit2bootloader.hex
Размер файла: 11 кб
Тип файла: шестигранник

Скачать файл


MPLAB IDE Загрузка загрузчика PicKit2 в комплекте.

Теперь PicKit2 готов, и пора его протестировать. Я протестировал его, и на первом тесте он дает мне 100% результат. Подключите программатор Pickit 2 к компьютеру и посмотрите, какое программное обеспечение показывает состояние оборудования.

PicKit2 обнаружил и подключил сообщение на программаторе PICKit2

Пора импортировать шестнадцатеричный файл и запрограммировать целевой микроконтроллер. Я собираюсь запрограммировать микроконтроллер pic16f877 на 8-битной микросхеме с программатором pickit 2

Шестнадцатеричный файл успешно загружен

Hex-файл успешно загружен в программатор pickit2

Программа успешно завершена

Сообщение об успешном выполнении программы Pickit2 отображается на программаторе PicKi2

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

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

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

Схема позволяет программировать микроконтроллеры и память I2C EEPROM.

Список поддерживаемых микроконтроллеров при использовании вместе с утилитой IC-PROG v1.05D:

микроконтроллеры от Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66 , PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, PIC16F84, PIC16F84A, PIC16F88, PIC16C505 *, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630 *, PIC16F648A, PIC16F676 *, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745, PIC16C765, PIC16C770 *, PIC16C771 *, PIC16C773, PIC16C774, PIC16C781 *, PIC16C782 *, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16FIC1876, PIC16FIC1876, PIC16FIC1876 6F877A *, PIC16F824, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320, PIC18F4320, PIC18F4539, PIC18F6620 *, *, PIC1867F, *, PIC1867F, PIC18F6620 *, *, PIC1867F, *, * PIC1867F

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

Последовательный EEPROM I2C (IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.


Установите микросхему в розетку, строго соблюдая положение ключа. Подключите шнур, включите питание. Запустите программу IC-PROG. Выберите свой микроконтроллер PIC из раскрывающегося списка.

Если у вас нет прошивки, сделайте ее: для этого откройте стандартную программу «Блокнот» или любой другой редактор; вставить текст прошивки в документ; сохранить под любым именем с *.txt или * .hex расширение.

Затем в утилите IC-PROG File >> Open file >> найдите наш файл прошивки. Окно «Программный код» должно быть заполнено разными кодами.

В окне IC-PROG нажать «Программировать микросхему», на схеме устройства загорится красный светодиод. Программирование занимает около 30 секунд. Для проверки выберите – Сравнить микросхему с буфером.

Вы можете открыть альтернативную версию схемы программатора EXTRA-PIC с готовой печатной платой в Sprint Layout, используя зеленую ссылку выше.

Микроконтроллеры

PIC прославились своей простотой и качеством работы, а также универсальностью в использовании. Но что может дать микроконтроллер без возможности писать на него новые программы? Без программиста это не более чем удивительная по форме железка. Сам программатор PIC бывает двух типов: самодельный или заводской.

Отличие заводских программаторов от самодельных

В первую очередь их отличает надежность и функциональность, которые они предоставляют владельцам микроконтроллеров.Так, если самодельный, то, как правило, рассчитан только на одну модель микроконтроллера PIC, а программатор от Microchip обеспечивает возможность работы с различными типами, модификациями и моделями микроконтроллеров.

Заводской программатор от Microchip

Самым известным и популярным является простой программатор PIC, который используется многими и известен как PICkit 2. Его популярность обусловлена ​​его явными и неявными преимуществами. Очевидные преимущества, которыми обладает этот USB-программатор для PIC, можно перечислять долго, среди них: относительно невысокая стоимость, простота использования и универсальность по сравнению со всем семейством микроконтроллеров, от 6-контактного до 20-контактного.

Использование программатора от Microchip

По его использованию вы можете найти множество руководств, которые помогут вам разобраться во всех аспектах использования. Если рассматривать не только программатор PIC, купленный «с рук», но и приобретенный у официального представителя, то можно также отметить качество оказываемой с ним поддержки. Так, помимо этого, есть обучающие материалы по использованию, лицензионные среды разработки, а также демонстрационная плата, предназначенная для работы с микроконтроллерами с малой мощностью.Помимо всего этого, есть утилиты, которые сделают работу с механизмом более приятной, помогут отслеживать процесс программирования и отлаживать микроконтроллер. Также поставляется утилита для стимуляции работы МК.

Другие программаторы

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

Собранные вручную программаторы

А теперь, пожалуй, самое интересное – программаторы контроллеров PIC, которые собираются вручную. Этим вариантом пользуются те, у кого нет денег или просто не желает их тратить. Если вы покупаете у официального представителя, вы можете рассчитывать на то, что если устройство окажется некачественного, то вы сможете вернуть его и получить взамен новое.А при покупке «на руки» или с помощью досок объявлений в случае некачественной пайки или механических повреждений рассчитывать на возмещение затрат и получение качественного программатора. А теперь перейдем к электронике ручной сборки.

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

Отдельно стоит сказать о программном комплексе, который предоставляет USB-программатор для PIC, собранный вручную. Дело в том, что мало собрать сам программатор по одной из множества схем, представленных в мировой сети.Вам также понадобится программное обеспечение, которое позволит компьютеру прошивать микроконтроллер вместе с ним. По этой причине часто используются Icprog, WinPic800 и многие другие программы. Если сам автор схемы программатора не указал софт, с которым его творение может делать свою работу, то вам придется самому выяснить это методом грубой силы. То же самое и с теми, кто собирает собственные схемы. Вы можете сами написать программу для МК, но это уже настоящий высший пилотаж.

Универсальные программаторы, подходящие не только для PIC

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

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

  1. Существенные аппаратные ограничения на количество программируемых микросхем, что позволит программировать не один, а сразу несколько блоков электроники.
  2. Возможность программирования микроконтроллеров и схем на основе различных технологий (NVRAM, NAND Flash и др.).
  3. Относительно короткое время программирования. В зависимости от модели программиста и сложности запрограммированного кода это может занять от 20 до 400 секунд.

Особенности практического использования

Отдельно стоит упомянуть тему практического использования. Как правило, программаторы подключаются к USB-портам, но есть варианты, которые работают с теми же проводами, что и жесткий диск. А для их использования придется снимать кожух компьютера, перебирать провода, да и сам процесс подключения не очень удобен.Но второй тип более универсален и мощен, благодаря ему скорость прошивки выше, чем при подключении по USB. Использование второго варианта не всегда кажется таким удобным и комфортным решением, как с USB, потому что перед его использованием нужно проделать ряд операций: достать корпус, открыть его, найти нужный провод. Вам не придется беспокоиться о возможных проблемах от перегрева или скачков напряжения при работе с заводскими моделями, так как они обычно имеют особую защиту.

Работа с микроконтроллерами

Что нужно всем программистам для работы с микроконтроллерами? Дело в том, что, хотя сами программисты представляют собой независимые схемы, они передают компьютерные сигналы в определенной последовательности. А проблему, как объяснить компьютеру, что именно нужно отправить, решает программа для программиста.

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

Возможные проблемы

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

  1. Плохая пайка элементов программатора.
  2. Отсутствие драйверов для работы с устройством.
  3. Повреждение внутри программатора или проводов внутри компьютера / USB.

Эксперименты с микроконтроллерами

Так что все есть. Как начать работать с методикой, как начать прошивать микроконтроллер программатором?

  1. Подключить внешний источник питания, подключить все оборудование.
  2. Изначально вам нужна среда, в которой все будет выполняться.
  3. Создайте нужный проект, выберите конфигурацию микроконтроллера.
  4. Подготовьте файл, содержащий весь необходимый код.
  5. Подключиться к программатору.
  6. Когда все готово, уже можно прошивать микроконтроллер.

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

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

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

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

Цена готовых 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 выводу ЗИФ-панели. Вывод AUX используется исключительно для работы с микросхемами памяти 24LC EEPROM (24C04, 24WC08 и аналоги). Данные передаются через него, поэтому на схеме панели программирования он отмечен словом «Данные».При программировании микроконтроллеров вывод AUX обычно не используется, хотя он необходим при программировании микроконтроллера в режиме LVP.

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

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

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

ЖК-телевизоры

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

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

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

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

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

Имя Обозначение Рейтинг / Параметры Марка или тип изделия
Для основной части программатора
Микроконтроллер DD1 8-битный микроконтроллер PIC18F2550-I / SP
Биполярные транзисторы VT1, VT2, VT3 КТ3102
VT4 КТ361
Диод VD1 КД522, 1Н4148
Диод Шоттки VD2 1N5817
Светодиоды HL1, HL2 любой на 3 В, красный и зеленый цвета свечения
Резисторы R1, R2 300 Ом
R3 22 кОм
R4 1 кОм
R5, R6, R12 10 кОм
R7, R8, R14 100 Ом
R9, R10, R15, R16 4.7 кОм
R11 2,7 кОм
R13100 кОм
Конденсаторы C2 0,1 мкм К10-17 (керамика), импортные аналоги
C3 0,47 мк
Конденсаторы электролитические C1 100 мкФ * 6,3 В К50-6, импортные аналоги
C4 47 мкФ * 16 в
Индуктор (дроссель) L1 680 мкГн унифицированный типа EC24, CECL или самодельный
Кварцевый резонатор ZQ1 20 МГц
USB-разъем XS1 USB-BF тип
Джемпер XT1 любой вид «джемпер»
Для монтажной панели микроконтроллеров (МК)
Панель ЗИФ XS1 любая 40-контактная ЗИФ-панель
Резисторы R1 2 кОм МЛТ, МОН (мощность от 0.125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R6 10 кОм

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

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

Для универсальности и надежности устройства используется USB-разъем XS1 типа «B» (квадратный). В компьютере используется USB-разъем типа A.Следовательно, нельзя перепутать гнезда соединительного кабеля. Также это решение способствует надежности устройства. Если кабель пришел в негодность, то его легко заменить на новый без пайки и монтажных работ.

В качестве дросселя 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 пакет.

Схема «Панель установки микроконтроллера (MC)» показывает, как установить микроконтроллеры с разными корпусами в панель. При установке МК следует обратить внимание на то, что микроконтроллер в панели расположен так, чтобы клавиша на микросхеме находилась со стороны фиксирующего рычага ЗИФ-панели.

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

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

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

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

Печатную плату можно изготовить методом ЛУТ, а также маркером для печатных плат, запонлаком (это то, что я сделал) или методом «карандаша».

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

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

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

Файл “прошивки” – PK2V023200.hex необходимо записать в память PIC18F2550I-SP MK с помощью любого программатора, поддерживающего микроконтроллеры 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.шестнадцатеричный “ .

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

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

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

Чтобы обновить программное обеспечение программатора, закройте перемычку XT1 на программаторе, когда он отсоединен от компьютера. Затем подключите программатор к ПК и запустите PICkit2 Programmer. При закрытии XT1 активируется режим загрузчика для загрузки новой версии прошивки.Затем в PICkit2 Programmer через меню «Инструменты» – «Загрузить операционную систему PICkit 2» откройте заранее подготовленный hex-файл обновленной прошивки. Далее будет происходить процесс обновления программного обеспечения программатора.

После обновления нужно отключить программатор от ПК и снять перемычку XT1. При нормальной работе перемычка открыта … Узнать версию ПО программатора можно через меню «Справка» – «О программе» в программе PICkit2 Programmer.

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

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

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

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

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

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

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

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

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

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

Как ни странно, при всем величии интернета информации о прошивках в нем очень мало. Контроллеры PIC , а материал, который можно найти, очень сомнительного качества. Конечно, можно купить заводской программатор за неадекватную цену и шить сколько угодно, но что делать, если человек массовым производством не занимается. Для этих целей можно собрать простое и недорогое самодельное изделие под названием JDM programmer по схеме ниже (рисунок 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 (стабилизация напряжения
  • V) 9D0006 – 1N4743A (стабилизация напряжения 13 В)
  • C1 – 100 нФ (0,1 мкФ)
  • C2 – 470 мкФ x 16 В (электролитический)
  • SUB-D9F – Разъем COM-порта (MAMA или SOCKET)
  • Разъем 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В … Вот и я решил Обратимся к моему первому PC , который давно пылится и ждал своего звездного часа (и все еще ждал).
Итак, включаем компьютер и в первую очередь устанавливаем программу IC-Prog … Скачать ее можно с сайта автора или по ссылке:
(скачиваний: 769)
Подключаем программатор к COM порту и запускаем только что установленное приложение. Для корректной работы нужно произвести ряд манипуляций. Изначально нужно выбрать тип контроллера, который вы собираетесь шить. У меня она PIC12F675 … На скриншоте №6 поле выбора контроллера выделено красным.


Снимок экрана 6 – выбор типа микроконтроллера


Снимок экрана № 7 – Настройка метода записи контроллера

В том же окне перейдите в « Programming » и выберите пункт « Programming check ». Проверка после программирования может вызвать ошибку, так как в некоторых случаях сама прошивка устанавливает предохранители блокировки чтения. ср … Чтобы не морочить голову, лучше отключить эту проверку. Вкратце, следуйте скриншоту №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 (перед открытием шестнадцатеричного файла ).

В настоящее время появилось много принципиальных схем с использованием различных микроконтроллеров, в том числе микроконтроллеров PIC от MicroChip. Это позволило получить достаточно функциональные устройства, несмотря на их простоту.

Но работа микроконтроллера невозможна без управляющей программы, которую надо написать. В этой статье мы рассмотрим универсальный программатор PIC – EXTRA-PIC позволяет программировать контроллеры PIC и память EEPROM I2C через COM-порт или через.

Список поддерживаемых микросхем при использовании с программой IC-PROG v1.05D:

PIC-контроллеров Microchip: PIC12C508, PIC12C508A, PIC12C509, PIC12C509A, PIC12CE518, PIC12CE519, PIC12C671, PIC12C672, PIC12CE673, PIC12CE674, PIC12F629, PIC12F675, PIC16C433, PIC16C61, PIC16C62A, PIC16C62B, PIC16C63, PIC16C63A, PIC16C64A, PIC16C65A, PIC16C65B, PIC16C66 , PIC16C67, PIC16C71, PIC16C72, PIC16C72A, PIC16C73A, PIC16C73B, PIC16C74A, PIC16C74B, PIC16C76, PIC16C77, PIC16F72, PIC16F73, PIC16F74, PIC16F76, PIC16F77, PIC16C84, PIC16F83, PIC16F84, PIC16F84A, PIC16F88, PIC16C505 *, PIC16C620, PIC16C620A, PIC16C621, PIC16C621A, PIC16C622, PIC16C622A, PIC16CE623, PIC16CE624, PIC16CE625, PIC16F627, PIC16F628, PIC16F628A, PIC16F630 *, PIC16F648A, PIC16F676 *, PIC16C710, PIC16C711, PIC16C712, PIC16C715, PIC16C716, PIC16C717, PIC16C745, PIC16C765, PIC16C770 *, PIC16C771 *, PIC16C773, PIC16C774, PIC16C781 *, PIC16C782 *, PIC16F818, PIC16F819, PIC16F870, PIC16F871, PIC16F872, PIC16F873, PIC16F873A, PIC16F874, PIC16F874A, PIC16FIC1687F, PIC16FIC6878, PIC16FIC6878, PIC16FIC6878, PIC16FIC6876, PIC16FIC6878 42, PIC18F248, PIC18F252, PIC18F258, PIC18F442, PIC18F448, PIC18F452, PIC18F458, PIC18F1220, PIC18F1320, PIC18F2320, PIC18F4320, PIC18F4539, * PIC2018F661820 9

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

Последовательный EEPROM I2C (IIC): X24C01, 24C01A, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, AT24C128, M24C128, AT24C256, M24C256, AT24C512.

Непосредственно схема самого программатора EXTRA-PIC:

Программируемый контроллер подключается через разъем X3. Ниже представлена ​​распиновка контактов программирования для разных контроллеров:

А теперь инструкция, как программировать микроконтроллер.

В качестве примера возьмем микроконтроллер PIC16F876A.

Собрать программатор и подготовить блок питания с выходным напряжением не менее 15В

Распаковать программу в отдельный каталог. Созданный каталог должен содержать три файла:

icprog.exe – файл оболочки программатора;

icprog.sys – драйвер, необходимый для работы под Windows NT, 2000, XP. Этот файл всегда должен находиться в каталоге программы;

icprog.chm – Файл справки.

Настройка IC-PROG v1.Программа 05D.

Для Windows95, 98, ME Для Windows NT, 2000, XP
(только Windows XP ):
Щелкните правой кнопкой мыши файл icprog.exe.
« Свойства » >> вкладка « Совместимость » >>
Установите флажок Запустить программу в режиме совместимости с: »>> выберите« Windows 2000 «.
  1. Запустить файл icprog.exe .
  2. Выберите « Настройки » >> « Опции » >> вкладку « Язык » >> установите язык « Русский » и нажмите « Ok «.
  3. Согласитесь с утверждением « Вам необходимо перезапустить IC-Prog сейчас » (нажмите « Ok «).
  4. Оболочка программатора перезапустится.
« Настройки » >> « Программатор «.
Проверьте настройки, выберите COM-порт, который вы используете, нажмите « Ok ».
Далее, « Настройки » >> « Опции » >> выберите вкладку « Общие » >> установите флажок « Включая NT / 2000 / XP драйвер » >> Нажмите « Ok » >>
, если драйвер ранее не был установлен в системе, в появившемся окне « Подтвердить » нажмите « Ok ». Драйвер будет установлен, и оболочка программатора перезапустится.
Примечание: Для очень «быстрых» компьютеров вам может потребоваться увеличить « I / O Delay ».Увеличение этого параметра увеличивает надежность программирования, однако увеличивается и время, затрачиваемое на программирование микросхемы.
« Настройки » >> « Параметры » >> выберите вкладку « I2C » >> установите флажки: « Включить MCLR как VCC » и « Включить запись блока ». Нажмите « Ок «.
Программа готова к работе.

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

Подключите удлинитель, включите питание.

Запустите программу IC-PROG.

Выберите контроллер PIC16F876A из раскрывающегося списка.

Если у вас нет файла с прошивкой, подготовьте его:

открыть стандартную программу Блокнот;

вставить в документ текст прошивки;

сохранить под любым именем, например, prohivka.txt (расширение * .txt или * .hex).

Далее в IC-PROG Файл >> Открыть файл (! Не путать с Открыть файл данных ) >> найти наш файл с прошивкой (если у нас есть файл с расширением *.txt, затем в типе файла выберите Любой Файл *. * ). Окно «Программный код» должно быть заполнено информацией.

Нажать кнопку «Программировать микросхему» (горит красный светодиод).

Ждем завершения программирования (около 30 сек).

Для управления нажать «Сравнить микросхему с буфером».

Программирование PIC18F

Программирование PIC и EEPROM

Внутрисхемное последовательное программирование

Стандартный разъем для программирования Microchip PICkit представляет собой 6-контактный разъем, который подключается к целевому устройству, иначе называемый разъемом ICSP, как упоминается в Microchip In-Circuit Serial Programming.

Вот типичная схема приложения ICSP.

PICkit 2

Есть много доступных программаторов PIC, коммерческих и самодельных устройств. По мере того, как Microchip представляет новые микропроцессоры, программное обеспечение для программирования должно быть обновлено, чтобы догнать производителя PIC. Это корень проблемы со сторонними программистами PIC. PICkit 2 от Microchip – это недорогой программатор ICSP для Flash PIC с интерфейсом USB, представленный Microchip.Поддерживается только подмножество микроконтроллеров PIC, но список включает большинство устройств из семейств PIC16, PIC18 и PIC24 и охватывает многие PIC, которые вы, вероятно, захотите использовать. Он полностью интегрирован с MPLAB IDE Microchip и позволяет не только программировать, но и отлаживать приложения. В качестве альтернативы вы можете использовать автономный апплет программиста, см. Рисунок ниже. Несмотря на то, что Microchip не обновлял список поддерживаемых устройств с 2013 года, пользователи прилагают усилия для добавления в него новых устройств, см. Раздел «Обновление списка устройств PICkit».

PICkit 2 имеет загрузчик USB и может обновлять прошивку программатора. Прошивка и схема находятся в свободном доступе. Судя по всему, Microchip намеренно сделала открытый дизайн, рассматривая его как способ повысить популярность микропроцессоров PIC. При такой простоте конструкции легко создать клонированную версию. Моим первым программистом PIC было устройство Melabs EPIC с интерфейсом параллельного порта. После обновления своего ПК я понял, что в наши дни параллельный порт стал унаследованным, так как большинство новых материнских плат для ПК не имеют всего этого.Еще одна неприятная особенность программистов Melabs в целом заключается в том, что даже если вы покупаете полный пакет (оборудование + программное обеспечение), обновления не бесплатны, и для загрузки доступны только бета-версии. Я успешно записал все свои чипы PIC18 и PIC24 с помощью PICkit 2 и определенно рекомендую его. Программное обеспечение PICkit 2 UI доступно для загрузки здесь.

PICkit 3

PICkit 3, представленный как преемник PICkit 2, использует тот же файл определения устройства PK2DeviceFile.dat и построен на основе устройства PIC24FJ256GB106.Microchip заявляет, что PICkit 3 отличается от PICkit 2 предоставлением:

  • Расширенное пространство образа программы EE (512 Кбайт)
  • Истинное опорное напряжение
  • Увеличенный диапазон напряжения (1,8-5 В VDD; 1,8-14 В VPP)
  • Не имеет отдельного приложения для программирования и может использоваться только с Microchip IDE

Примечание. На данный момент и PICkit 2, и PICkit 3 были прекращены, а Microchip перешел на PICkit 4 и Snap, хотя PICKit3 все еще поддерживается в MPLAB X IDE.Программное обеспечение пользовательского интерфейса PICkit 3 доступно для загрузки здесь.


Сделай сам PICkit 2

PICkit 2 был первоначально построен Microchip как программист с открытым дизайном, со схемой, исходным кодом и прошивкой, доступными для повышения популярности устройств PIC. Благодаря этому легко создать клонированную версию исходного устройства. Большинство клонов будут производить нерегулируемое VPP 5 вольт, тогда как оригинальный Microchip PICkit 2 обеспечивает регулируемый выход VPP, позволяющий обеспечить 3,3 и 2.Программирование деталей на 5 вольт. Схема, которую я использовал, основана на оригинальном PICkit 2 без функциональности «программист на ходу». Эта функция позволяет загружать шестнадцатеричный файл в PICkit 2 для последующего программирования микроконтроллеров PIC без ПК простым нажатием кнопки программиста. Я не думаю, что функциональность требуется любителю, но позволяет упростить схему, исключив две микросхемы EEPROM 24C512. Файлы Eagle разработаны с использованием монтажных деталей только через сквозные отверстия.

Building PICKit 2 clone сталкивается с проблемой «курица-яйцо», поскольку для программирования прошивки в PIC18F2550 требуется другой программист.После программирования микросхемы PIC18F2550 для PICKit 2 вы можете обновить прошивку, поскольку она включает загрузчик USB. Последняя версия прошивки PICkit 2 доступна от Microchip, текущая версия также доступна на сайте – нажмите здесь, чтобы загрузить!

Список запчастей

Список деталей DIY PICkit 2 для двух самых популярных поставщиков электронных компонентов, Mouser и DigiKey, показан ниже.

Часть Описание Mouser # DigiKey #

J1

Разъем USB типа B 706-33UBBD-04SW11 609-1039-ND

IC1

PIC18F2550 579-PIC18F2550-I / SP PIC18F2550-I / SP-ND

IC2

MCP601P 579-MCP601IP MCP601-I / P-ND
1 квартал, 4 квартал, 6 квартал BS250P, VP2106, ZVP3306A 689-VP2106N3-G ZVP3306A-ND
2 квартал, 3 квартал, 5 квартал, 7 квартал 2N7000 512-2N7000TA 2N7000TACT-ND
D1, D2 BAT85 78-BAT85S 568-1617-1-ND
D3 Зеленый 5мм светодиод 604-WP7113SGD 754-1263-ND
D4 Желтый светодиод 5мм 604-WP7113YD 754-1284-ND
D5 Красный светодиод 5мм 604-WP7113ID 754-1264-ND
Х1 Кристалл, 20.000 МГц 815-ABL-20-B2 XC1723-ND
R1, R3, R4 10 кОм 291-10K-RC 10KQBK-ND
R5, R10, R16 10 кОм 291-10K-RC 10KQBK-ND
R2, R6, R7 470 Ом 291-470-RC 470QBK-ND
R11 100 Ом 291-100-RC 100QBK-ND
R9 2.7 кОм 291-2.7K-RC 2.7KQBK-ND
R8, R13, R17, R18 4,7 кОм 291-4.7K-RC 4.7KQBK-ND
R12 1 кОм 291-1K-RC 1.0KQBK-ND
R14, R15 43 Ом 291-43-RC 43QBK-ND
C1, C4, C7, C10, C11 0,1 мкФ 871-B32529C104K189 495-2532-ND
C2, C3 22 пФ 140-50N2-220J-RC 490-4175-ND
C5, C8 10 мкФ 647-UVR1V100MDD1TA 493-1036-ND
C6 0.47 мкФ 871-B32529C474J 495-2560-3-ND
C9 47 мкФ 16 В 647-UVR1C470MDD1TD 493-1039-ND
L1 680 мкГ 652-RLB0608-681KL 811-2051-ND
S1 Кнопка 506-ФСМЧ 450-1665-ND
ID блока настройки

Программисту может быть присвоен идентификатор устройства, чтобы его однозначно идентифицировать.После программирования свежей прошивки апплет устройства всегда показывает забавный ID «ID = OIHoss». Его можно сбросить до неназначенного или установить на любое значение, выбрав меню «Инструменты> Калибровать VDD и установить идентификатор устройства», см. Рисунок ниже.

Калибровка

Калибровка позволяет повысить точность напряжения VDD. Обратите внимание, что, поскольку калибровка зависит от напряжения USB, перемещение устройства PICkit 2 на другой порт USB, на концентратор USB или на другой порт компьютера может сделать калибровку недействительной.Для калибровки блока PICkit 2 требуется цифровой мультиметр. Отсоедините блок PICkit 2 от цели и выберите «Инструменты> Калибровать VDD и установить идентификатор устройства». для вызова мастера калибровки. Следуйте инструкциям мастера, чтобы завершить процесс калибровки.

Устранение неисправностей DIY PICkit2 в сборе

Вы можете использовать меню «Инструменты-> Устранение неполадок», чтобы помочь решить проблему подключения PICkit 2 к целевому устройству. Это также полезно при ошибках сборки устройства, так как обеспечивает пошаговый процесс проверки вывода.

PICkit 2 “El Cheapo”

Эль Чипо был программистом PIC, представленным Майком Предко в его книге «Программирование и настройка микроконтроллера PIC».

У меня до сих пор есть печатная плата, включенная в книгу, чтобы собрать где-то поблизости программатор El Cheapo. Эта версия PICkit2 вдохновлена ​​схемой этого программиста. Если вы выполняете только части программирования PIC PIC12, PIC16 и PIC18 на 5 В, вы можете использовать это. Проект Eagle выполнен с использованием сквозных компонентов и однослойной компоновки.

Список запчастей

Список деталей DIY PICkit 2 для двух самых популярных поставщиков электронных компонентов, Mouser и DigiKey, показан ниже.

Малые полевые МОП-транзисторы, такие как 2N7000 и BS250P, недороги и доступны в наши дни. Это могут быть любые малосигнальные полевые МОП-транзисторы с N-каналом или P-каналом. Однако, если есть проблема с поиском этих транзисторов, вы можете использовать обычные малосигнальные транзисторы NPN и PNP.

Обновление списка устройств PICkit

Программисты PICkit2 и PICkit3 используют один и тот же PK2DeviceFile.dat со всеми данными, необходимыми для программирования каждого устройства. Последняя официальная версия этого файла была v1.62.15 как часть дистрибутива PICkit v3.1 и восходит к ’12. Однако существует бесплатный редактор устройств PICkit, и новые устройства можно добавлять в список. Не переходите на версию 1.0.0.7, она сломана! Оставайтесь на 1.0.0.6.

Сторонние разработчики прилагают усилия для продолжения поддержки PICkit 2/3, но мне не известно о каких-либо выпусках, предшествующих v1.63.155. Вот неофициальное обновление v1.63.155 для PK2DeviceFile.dat. Я тестировал некоторые устройства, такие как PIC1454, PICK1455 и PIC1459. Остается вопрос, как эти номера версий присваиваются и поддерживаются, но это скорее риторический вопрос.

Программирование EEPROM

И PICkit2, и PICkit3 также могут программировать EEPROM. Схема для программирования последовательных EEPROM 24LC I2C показана ниже.

Требуется подтягивающий резистор номиналом 2,2 кОм, поскольку соответствующий вывод PICkit имеет открытый сток.У меня ушло около получаса на сборку адаптера с помощью картона.

PICkit 3 требует некоторых модификаций для программирования устройств I2C, см. Объяснение в readme.txt

 ПРИМЕЧАНИЕ: Устройства с последовательным EEPROM I2C (24LC) требуют следующих аппаратных изменений PICkit 3 для правильной работы:
   Удалите TR3 из PICkit 3.
   Удалите R50 из PICkit 3. 

Вы можете проверить PICKit 2 readme / PICKit 3 readme для подключения конкретной EEPROM для программирования.


Как запрограммировать микроконтроллер PIC с помощью Raspberry Pi или Orange Pi

Опубликовано 29.10.2019, Джим Грегори,
время чтения: ~ 12 минут

Я использовал микроконтроллеры PIC во многих проектах, включая PedalPC. Мне нравится их использовать, потому что:

  • они имеют широкий спектр полезных периферийных устройств, таких как 12-разрядные дифференциальные АЦП и встроенный Full Speed ​​USB 2.0,
  • они недорогие (примерно от 1/3 до 1/2 стоимости сопоставимых микроконтроллеров AVR, когда вы покупаете их в небольших количествах, как я), и
  • почти все микросхемы с 40 контактами или меньше доступны в форм-факторе DIP, который легко припаять.

Компилировать программы для микроконтроллеров PIC легко на одноплатном компьютере с низким уровнем ресурсов, таком как Raspberry Pi, с использованием языков программ с открытым исходным кодом, таких как Great Cow Basic или JAL. (Я могу описать, как это сделать, в другом посте).

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

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

Однако с правильным программным обеспечением и несколькими резисторами вы можете передавать свои программы прямо на свой PIC, используя контакты GPIO одноплатного компьютера (SBC), такого как Raspberry Pi или Orange Pi. Это может быть очень полезно, если вы уже используете SBC для чтения данных с PIC, как это делаю я на PedalPC.

В этом уроке я объясню, как:

Программа внутрисхемного последовательного программирования (ICSP), которую мы будем использовать в этом руководстве, представляет собой отличную утилиту под названием Pickle, написанную Дарроном Броудом.Он работает со многими одноплатными компьютерами под управлением Linux и требует всего несколько резисторов для успешного программирования большинства PICS при напряжении 3,3 В. (Для программирования внутрисхемной схемы PIC на 5 В потребуется недорогой 4-канальный преобразователь логических уровней 5 В в 3,3 В, который широко доступен на eBay и других сайтах.)

Этот метод работает только с микроконтроллерами PIC, которые могут быть запрограммированы с использованием метода программирования низкого напряжения (LVP), который включает наиболее распространенные PIC, используемые сегодня. (У Даррона есть список поддерживаемых микроконтроллеров PIC на своем сайте, а также большая таблица PIC, которые были протестированы.) Он не будет работать со старыми микросхемами, для которых требуется метод программирования высокого напряжения (HVP). Для этих микросхем вам понадобится программист, а не несколько резисторов или преобразователь уровня.

Установка программного обеспечения

Используйте следующие команды для установки программы Pickle ICSP на ваш SBC:

  cd / tmp
wget http://wiki.kewl.org/downloads/pickle-4.20.tgz
tar zxf pickle-4.20.tgz
cd pickle-4.20 /
делать
sudo make install
  

Это компилирует и устанавливает утилиты Pickle в / usr / local / bin на вашем SBC.

Выберите контакты для программирования

Вам понадобятся 3 (или 4) контакта GPIO для подключения к VPP, PGC и PGD (и PGM, если ваш PIC этого требует – большинство микросхем в настоящее время этого не делают). Эти контакты в настоящее время не могут использоваться ваше ядро. Вы можете увидеть, что контакты GPIO используются:

  ls / sys / class / gpio | grep gpio [0-9_]
  

Если в списке нет контактов, вы можете выбрать любой из доступных контактов GPIO на вашей плате. Если вам нужно использовать уже используемый штифт, вы можете сделать его доступным следующим образом:

  sudo echo <номер контакта> | / системный / класс / gpio / неэкспорт
  

Вот список контактов GPIO Raspberry Pi:

Raspberry Pi 2 и 3 контакта GPIO
штифт заголовка функция штифт заголовка функция
01 3V3 02 5 В
03 GPIO0 / GPIO2 04 5 В
05 GPIO1 / GPIO3 06 ЗЕМЛЯ
07 GPIO4 08 GPIO14 / TX
09 ЗЕМЛЯ 10 GPIO15 / RX
11 GPIO17 12 GPIO18
13 GPIO21 / GPIO27 14 ЗЕМЛЯ
15 GPIO22 16 GPIO23
17 3V3 18 GPIO24
19 GPIO10 20 ЗЕМЛЯ
21 GPIO9 22 GPIO25
23 GPIO11 24 GPIO8
25 ЗЕМЛЯ 26 GPIO7
ID_SD EEPROM 27 28
29 GPIO5 30 ЗЕМЛЯ
31 GPIO6 32 GPIO12
33 GPIO13 34 ЗЕМЛЯ
35 GPIO19 36 GPIO16
37 GPIO26 38 GPIO20
39 ЗЕМЛЯ 40 GPIO21

Для Raspberry Pi 2 или 3 я рекомендую использовать GPIO_9, GPIO_10 и GPIO_11.Для PIC, таких как 16F1788, где выводы PGD и PDC также являются выводами последовательного порта Rx и Tx (соответственно), выводы GPIO_14, GPIO_15 и GPIO_18 работают даже лучше, потому что вы можете использовать одни и те же выводы для программирования связи PIC и . с ним через последовательный порт PIC.

Предполагается, что ваш PIC не имеет или не должен использовать вывод PGM для программирования в режиме LVP. Если используется PIC, который вы используете (например, 18F14K50), вам также необходимо выбрать четвертый вывод GPIO для этой функции.

Вот список контактов Orange Pi + 2:

Orange Pi Plus 2 40-контактный разъем
штырь функция sysfs номер GPIO пин функция sysfs номер GPIO
1 3,3 В 2 VCC-5V
3 PA12 (TWI0-SDA / DI_RX / EINT12) NA 4 VCC-5V
5 PA11 (TWI0-SCK / DI_TX / EINT11) NA 6 ЗЕМЛЯ
7 PA6 (SIM_PWREN / PWM1 / PA_EINT6) гпио_6 8 PA13 (SPI1_CS / UART3_TX / PA_EINT13) gpio_13
9 ЗЕМЛЯ 10 PA14 (SPI1_CLK / UART3_RX / PA_EINT14) gpio_14
11 PA1 (UART2_RX / JTAG_CK0 / PA_EINT1) гпио_1 12 PD14 (RGMII_NULL / MII_TXERR / RMII_NULL) гпио_110
13 PA0 (UART2_TX / JTAG_MS0 / PA_EINT0) гпио_0 14 ЗЕМЛЯ
15 PA3 (UART2_CTS / JTAG_DI0 / PA_EINT3) гпио_3 16 PC4 (NAND_CE0) gpio_68
17 3.3В 18 PC7 (NAND_RB1) гпио_71
19 PC0 (NAND_WE / SPI0_MOSI) NA 20 ЗЕМЛЯ
21 PC1 (NAND_ALE / SPI0_MISO) NA 22 PA2 (UART2_RTS / JTAG_DO0 / PA_EINT2) гпио_2
23 PC2 (NAND_CLE / SPI0_CLK) NA 24 PC3 (NAND_CE1 / SPI0_CS) NA
25 ЗЕМЛЯ 26 PA21 (PCM0_DIN / SIM_VPPPP / PA_EINT21) gpio_21
27 PA19 (PCM0_CLK / TWI1_SDA / PA_EINT19) NA 28 PA18 (PCM0_SYNC / TWI1_SCK / PA_EINT18) NA
29 PA7 (SIM_CLK / PA_EINT7) gpio_7 30 ЗЕМЛЯ
31 PA8 (SIM_DATA / PA_EINT8) гпио_8 32 PG8 (UART1_RTS / PG_EINT8) гпио_200
33 PA9 (SIM_RST / PA_EINT9) гпио_9 34 ЗЕМЛЯ
35 PA10 (SIM_DET / PA_EINT10) гпио_10 36 PG9 (UART1_CTS / PG_EINT9) gpio_201
37 PA20 (PCM0_DOUT / SIM_VPPEN / PA_EINT20) NA 38 PG6 (UART1_TX / PG_EINT6) гпио_198
39 ЗЕМЛЯ 40 PG7 (UART1_RX / PG_EINT7) гпио_199

Для этой платы я рекомендую использовать gpio_1, gpio_0 или gpio_3; или gpio_13, gpio_14 и gpio_110.Последний вариант лучше всего подходит, если вы хотите установить связь с последовательным портом PIC, а выводы последовательного порта PIC также являются выводами для программирования.

Опять же, это предполагает, что вашему PIC не нужно использовать вывод PGM для его программирования. Если это так, вам также понадобится дополнительный вывод GPIO для этой функции.

Примечание: мне потребовалось время, чтобы выяснить, как пронумерованы контакты на платах Orange Pi.

Контакты GPIO идентифицируются буквой, соответствующей местоположению банка, и двузначным числом, связанным с его положением в этом банке.Например, штифт «PD14», который находится на 12-й позиции в заголовке, является 14-м контактом в группе «D».

Эта буквенно-цифровая система должна быть преобразована в чистое число, которое понимает sysfs Linux. Формула для этого:

  Номер GPIO = (позиция буквы в алфавите - 1) x 32 + номер контакта  

Для этого булавки, поскольку “D” является четвертой буквой алфавита:

  

Число GPIO = (4–1) x 32 + 14 = 110

Следовательно, вывод 12 заголовка – gpio_110.

Я использовал эту формулу для расчета номеров выводов, указанных в таблице.)

Таблица взята из вики Orange Pi Plus 2 linux-sunxi). Другие платы Orange Pi могут иметь разные конфигурации. Вы можете найти другие платы Orange Pi в разделе Xunlong вики linux-sunxi. (Xunlong является производителем плат Orange Pi.)

Некоторые контакты ввода-вывода в заголовке могут быть настроены для других задач и недоступны для использования в качестве контактов ввода-вывода общего назначения.Как определить, какие контакты доступны, зависит от того, какое ядро ​​Linux использует ваша плата. Существует два основных типа: старые «устаревшие» (3.x) ядра и новые «ванильные» (4.x) ядра. Вы можете определить, какое ядро ​​Linux вы используете, через.

  $ sudo uname -a
[sudo] пароль для пользователя:
Linux orangepiplus 3.4.112-sun8i # 14 SMP PREEMPT Вт, 5 июля 16:28:14 CEST 2016 armv7l GNU / Linux
  

Номер версии указан после слов «Linux» и вашего имени хоста. В данном случае это 3.4.112. Если меньше 4, вы используете «устаревшее» ядро. Если оно> 4, значит, вы используете «ванильное» ядро.

Устаревшие ядра настраиваются с помощью файла fex. Этот файл fex компилируется в двоичный файл и читается при загрузке. Чтобы увидеть, как настроены контакты, вам нужно декомпилировать этот двоичный файл и прочитать конфигурации gpio конфигурации. Команда для этого:

  sudo bin2fex /boot/script.bin | grep gpio_
  

Новые ядра имеют другую систему конфигурации, известную как «дерево устройств».Следуйте этим инструкциям, чтобы просмотреть свои настройки.

Создание файла конфигурации

Когда вы знаете, какие выводы GPIO можно использовать для программирования PIC, вы создаете файл конфигурации, необходимый Pickle для программирования микросхемы. Этот файл называется .pickle и хранится в вашем домашнем каталоге.

Образец файла создается при установке программного обеспечения. Вы можете отредактировать существующий файл или создать новый.

Вы можете запустить эту команду, чтобы создать файл, необходимый для Raspberry Pi 2 или Raspberry Pi 3:

  кот>.рассол << EOF
УСТРОЙСТВО = RPI2
СОН = 1
БИТРУЛЫ = 0x4F00
VPP = 9
# установите PGM = -1, если не используется, в противном случае используйте правильный номер пина ниже
PGM = -1
PGC = 10
PGD ​​= 11
EOF
  

В этой конфигурации контакты GPIO 9, 10 и 11 Raspberry Pi будут подключены к контактам VPP, PGC и PGD на микроконтроллере. PGM не будет использоваться. Если вашему чипу требуется вывод PGM для программирования в режиме LVP, вам нужно изменить «-1» на номер вывода GPIO, который вы будете использовать для этой функции.

Вот команда, которую нужно запустить для создания файла конфигурации для Orange Pi + 2:

  кот>.рассол << EOF
# Linux с битовым битом GPIO
# УСТРОЙСТВО = / dev / gpio-bb
# оригинальный Orange Pi, Orange Pi PC, Orange Pi PC Plus или Mini
# DEVICE = OPI
# Апельсин Пи Ноль
# DEVICE = OPI0
# Orange Pi Plus или Orange Pi Plus 2
УСТРОЙСТВО = OPIP
СОН = 1
# Правила битов ввода-вывода.
# Эти правила определяют полярность линий управления и
# ввод данных требует вывода данных на высокий уровень.
# 0x0001 PGD_OUT_FLIP
# 0x0002 PGC_OUT_FLIP
# 0x0004 VPP_OUT_FLIP
# 0x0008 PGD_IN_FLIP
# 0x0010 PGD_IN_PULLUP
# 0x0020 PGM_OUT_FLIP
# 0x0040 VPP_OUT_CLOCK
# Эти правила предназначены для GPIO при выходе из программы.# 0x0100 PGD_RELEASE
# 0x0200 PGC_RELEASE
# 0x0400 PGM_RELEASE
# 0x0800 VPP_RELEASE
# 0x1000 VPP_RUN
# Это правило включает переключение с блокировкой irq для GPIO BIT-BANG.
# 0x2000 BB_LOCK
# Это правило повторно включает функцию ALT0 при освобождении R-PI GPIO.
# 0x4000 ALT_RELEASE
# Мы хотим, чтобы VPP находился в режиме "run" и PGC & amp; PGD ​​выпущен для использования UART3
БИТРУЛЫ = 0x4F00
ЗАНЯТО = 0
#PGD - контакт # 8 (PA13 / UART3_TX - & gt; sysfs 13)
# Примечание: PGD также может быть UART_RX на многих PIC
PGD ​​= 13
#PGC - контакт # 10 (PA14 / UART3_RX - & gt; sysfs 14)
# Примечание: PGC также может быть UART_TX на многих PIC
PGC = 14
#VPP - контакт # 12 (PD14 - & gt; sysfs 110)
ВПП = 110
#PGM - не используется
PGM = -1
ОТЛАДКА = 10
EOF
  

Здесь мы используем gpio_13 для PGD, gpio_14 для PGC и gpio_110 для VPP.Я выбрал именно эти выводы, потому что некоторые PIC (например, 16f1788, который я сейчас использую) имеют альтернативное отображение своих последовательных выводов Tx и Rx над выводами PGC и PGD соответственно. Это позволяет мне использовать одни и те же линии как для программирования микросхемы, так и для связи с ней через UART. Это освобождает два дополнительных контакта как на плате, так и на микросхеме.

Вот как это выглядит при подключении к моей плате Orange Pi Plus 2E:

Провода на фото выше подключены следующим образом:

  1. VDD
  2. PGD
  3. PGC
  4. VPP
  5. ЗЕМЛЯ

Эта конфигурация также будет работать на Orange Pi PC или Orange Pi PC Plus.

Установить драйвер Bit-Bang (для других одноплатных компьютеров)

Pickle поддерживает все платы Raspberry Pi, и поддержка была добавлена ​​для большинства плат Orange Pi, начиная с версии 4.0f. Если ваша плата не поддерживается (Odroid C2, Tinkerboard и т. Д.), Вам необходимо установить драйвер Bit-Bang для Linux Даррона Броада. Сначала установите Mercurial, если он еще не установлен на вашем Pi:

  sudo apt-get install mercurial
  

Затем клонируйте его репозиторий и запустите сценарий установки:

  hg clone http: // hg.kewl.org/pub/gpio-bb
cd gpio-bb
делать
sudo make install
  

Теперь он должен появиться в вашем списке установленных модулей:

  lsmod | grep gpio_bb
  

После установки вы должны быть пользователем root, чтобы использовать драйвер bit-bang (и, следовательно, программировать свой чип). Чтобы изменить это, создайте группу для пользователей драйвера и добавьте себя в группу:

  sudo addgroup gpiobb
sudo chgrp gpiobb / dev / gpio-bb
sudo adduser your_username gpiobb
  

Обновите файл конфигурации modprobe, чтобы он загружался при каждой перезагрузке компьютера, добавив его в / etc / modprobe.d / modprobe.conf (вам может потребоваться создать файл, если он не существует):

  установить gpio-bb modprobe --ignore-install gpio-bb & amp; & amp; modprobe gpio-bb & amp; & amp; mknod / dev / gpio-bb c 180 0 & amp; & amp; chmod 666 / dev / gpio-bb & amp; & amp; chgrp gpiobb / dev / gpio-bb
  

Наконец, добавьте в файл / etc / modules следующее:

  gpio-bb
  

Программирование PIC

После того, как все установлено, подключите свой чип к контактам GPIO на плате, используя контакты, которые вы выбрали в своем.файл рассола. (Даррон рекомендует подключать резистор ~ 470 Ом последовательно в каждой из линий программирования и Vpp, чтобы предотвратить повреждение в случае ошибки; я без проблем использовал резисторы 1 кОм.) Не забудьте также подключить линию заземления. , а также линию 3,3 В, если ваше устройство не имеет автономного питания.

Если ваше устройство питается от 5 В во время программирования, вам необходимо использовать 4-канальный преобразователь уровня 3,3 В в 5 В между вашим устройством и SBC, потому что большинство контактов SBC GPIO являются 3.3В.

Как только ваш PIC подключен к компьютеру SBC, вы готовы его программировать. Команда, которую вы должны использовать для программирования вашего микроконтроллера, зависит от PIC, который вы используете:

PIC серии команда программирования
14-битное слово PIC10F / 12F / 16F p14
14-битное слово, новый алгоритм PIC10F / 12F / 16F n14
16-битное слово PIC18F п.16
16-битное слово, новый алгоритм PIC18F n16
24-битное слово PIC24 / dsPIC п.24
32-битное слово PIC32 с.32

PIC «нового алгоритма» - это более новые 8-битные устройства, которые используют новый алгоритм программирования, которые старые микросхемы не используют.Вы можете получить список устройств, которые запрограммирует команда, выполнив «<команда> select». Например,

  $ n16 выбрать
PIC18F24K40 PIC18F24K42 PIC18F25K40 PIC18F25K42
PIC18F26K40 PIC18F27K40 PIC18F45K40 PIC18F46K40
PIC18F47K40 PIC18LF24K40 PIC18LF24K42 PIC18LF25K40
PIC18LF25K42 PIC18LF26K40 PIC18LF27K40 PIC18LF45K40
PIC18LF46K40 PIC18LF47K40
Итого: 18
  

Итак, если вы хотите запрограммировать, скажем, 18F25K42, это означает, что вы захотите использовать команду n16, а не p16.

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

  p14 id lvp
  

( Примечание : если вы используете микросхему PIC32, вам следует опустить в команде «lvp».)

Вы должны получить обратно что-то вроде (в данном случае 16F1789):

  [0000] [ПРОГРАММА] 4000 СЛОВ (0200 СТРОК ИЗ 0020 СЛОВ)
[8000] [USERID0] 3FFF.
[8001] [USERID1] 3FFF.[8002] [USERID2] 3FFF.
[8003] [USERID3] 3FFF.
[8004] [ЗАЩИЩЕНО] 3FFF
[8005] [ПЕРЕСМОТР] 2041 РЕД .: 041
[8006] [DEVICEID] 302A DEV: 302A PIC16F1789
[8007] [КОНФИГУРАЦИЯ1] 39E4
[8008] [КОНФИГУРАЦИЯ2] 3FFF
[8009] [CALIB1] 314D
[800A] [CALIB2] 1D49
[800B] [CALIB3] 3FFD
[800C] [CALIB4] 3A87
[800D] [CALIB5] 3FFF
[800E] [CALIB6] 3887
[800F] [CALIB7] 3988
[8010] [CALIB8] 3B86
[8011] [CALIB9] 3FCF
[8012] [CALIB10] 3FD4
[8013] [CALIB11] 3FD7
[F000] [ДАННЫЕ] 0100 БАЙТОВ
  

Если вместо этого вы получите:

  pic14_read_config_memory: информация: устройство не обнаружено. 

при выполнении приведенной выше команды, либо вы запускаете неправильную команду (например, p16 вместо p14), она подключена неправильно, либо у вас что-то не так в вашем файле конфигурации. См. Раздел об устранении неполадок ниже.

Предполагая, что все работает нормально, вы можете продолжить и запрограммировать чип, используя:

  <команда> программа lvp 
  

, где <команда> - это команда из приведенной выше таблицы, а - это шестнадцатеричный файл, который вы хотите загрузить в чип.

Чтобы загрузить файл с именем program.hex на микросхему 16F1788, например, вы должны использовать:

  p14 программа lvp program.hex
  

Опять же, оставьте «lvp», если вы программируете часть PIC32.

Устранение неисправностей

Если вы не получаете результата при попытке прочитать идентификатор микросхемы, подключите последовательно светодиод и резистор между VPP и землей, затем выполните следующую команду:

  ptest VPP 5
  

Светодиод должен мигать.Повторите также для PGC и PGC.

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

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

Как создать свой собственный программатор USB PIC?

Этот программатор DIY PIC является продолжением нашего учебника по основам программирования PIC. Используя этот программатор USB PIC, вы можете программировать серии PIC микрочипа 10F, 12F, 16F, 18F, 24F, 30F.Это также программатор EEPROM, поскольку он поддерживает EEPROM 12Cxx. Основным компонентом этой схемы программирования микроконтроллера PIC является микроконтроллер PIC182550, который управляет всей схемой. Программаторы PIC с последовательным портом являются широко используемым комплектом программаторов PIC-чипов, но поскольку ноутбуки не имеют портов RS232, им требуется преобразователь USB в RS232.

Вам рекомендуют:
Одним из основных преимуществ этой схемы является то, что она не требует внешнего источника питания, вместо этого она использует питание от USB.Он генерирует программирующее напряжение 13 В через умножители напряжения. Программатор Linux PIC также доступен для записи. Вы можете запрограммировать микроконтроллер, такой как pic16f84a, pic16f877a, pic18f4550, pic16f628a и т. Д., И упростить программирование микроконтроллера.

Принципиальная схема программатора PIC Chip Programmer

Щелкните изображение для увеличения

(Загрузите и увеличьте масштаб для более детального просмотра)

Компоненты

  1. Микроконтроллер PIC 18F2550
  2. Транзистор (BC548-2Nos, BC547, BC557)
  3. Диод IN4148 (6Nos)
  4. Резистор (ИК-7НО, 100К, 470-2НО, 1М, 470К, 330-3НО)
  5. Конденсатор (0.01uF-3Nos, 2.2uF-2Nos, 10uF, 22pf-2Nos)
  6. Кристалл 8 МГц
  7. Разъем USB
  8. 5-контактный разъем (2 шт.)

Пошаговая процедура

  • PIC 18F2550 имеет встроенный порт USB, который значительно упрощает взаимодействие с ПК.
  • Сначала необходимо записать прошивку на PIC 18F2550 с помощью любого программатора PIC, а затем подключить перемычку, как показано на принципиальной схеме. Скачайте прошивку здесь.
  • Перемычка определяет режим программатора, т.е.е. режим загрузчика или режим программиста. Загрузчик используется для обновления прошивки, а режим программиста - для записи микрочипа PIC.
  • Теперь подключите схему к USB-порту вашего ПК и откройте шестнадцатеричный файл в программном обеспечении PIC.
  • Подключите любую микросхему PIC через заголовок ICSP (In Circuit Serial Programming), включая VPP, VDD, PGD, PGC, GND.

Расположение выводов компонентов


Ross Bencina »DIY MIDI-контроллеры с использованием микроконтроллеров PIC и базовых штампов

Введение

Комбинируя микроконтроллер PIC или Basic Stamp II с несколькими пассивными компонентами, нетрудно сконструировать свой собственный блок регуляторов, блок триггеров или другое устройство ввода MIDI.Для подключения к некоторым датчикам может потребоваться знание электроники. И Stamp, и PIC обеспечивают экономичную (менее 100 долларов США) точку входа в мир альтернативных MIDI-контроллеров.

Эта страница была создана, чтобы предоставить отправную точку для людей, заинтересованных в создании собственных устройств управления MIDI с использованием микроконтроллеров Microchip PIC или Parallax Basic Stamp. Если у вас есть какие-либо комментарии или предложения, пожалуйста, напишите мне.

Основные марки и фото


Базовый штамп состоит из крошечной печатной платы, на которой припаян процессор PIC, тактовый кристалл и немного памяти EEPROM для хранения программ.Он предоставляет 16 контактов двунаправленных данных (цифровой ввод / вывод), которые могут быть подключены к потенциометрам, простой выходной цепи MIDI, аналого-цифровым преобразователям и т. Д. Как следует из названия, Basic Stamp выполняет код, написанный на BASIC, который загружается на штамп с использованием последовательного интерфейса. Parallax, Inc. производит ряд различных моделей Basic Stamp, Basic Stamp II и IIsx обычно считаются достаточно быстрыми для приложений передачи MIDI, но ни одна из них не поддерживает ввод MIDI удовлетворительно.


Microchip Technology Inc. производит широкий спектр микроконтроллеров PIC. Для небольших проектов часто выбирают PIC16F84, поскольку он дешев и использует перепрограммируемую флеш-память для хранения программ. Микросхема PIC16F84 содержит 1к слов программной флэш-памяти, 68 байтов ОЗУ и 64 байта EEPROM для постоянного хранения данных. PIC16F84 имеет 13 двунаправленных выводов данных, которые можно использовать аналогично таковым на Basic Stamp. Микросхемы PIC программируются на языке ассемблера, который затем сохраняется в микросхеме с помощью специального программатора.Для пользователей ПК программатор на основе параллельного порта для PIC16F84 может быть построен примерно за 30 долларов. И Microchip, и Parallax распространяют бесплатное программное обеспечение ассемблера PIC для ПК.

По общему мнению, Basic Stamp II - лучшая отправная точка для людей с небольшим опытом программирования или электроники или без него, так как использование PIC напрямую требует от вас изучения языка ассемблера PIC, что может быть утомительным, если вы не в этом роде. вещи. Если вы программист или собираетесь использовать более одного устройства, PIC16F84 - хороший выбор, так как он дешев и часто может работать быстрее, чем Basic Stamp.Вы можете собрать программатор, несколько микросхем PIC и схему блока питания дешевле, чем Basic Stamp II.

См. Статью Питера Х. Андерсона Работа с марками и PIC для подробного обсуждения относительных достоинств PIC и базовых марок.

Интерфейс к MIDI

Как для чипов Basic Stamp II, так и для PIC среднего класса, MIDI (то есть последовательный) вывод реализуется программно путем управления состоянием вывода данных. На Basic Stamp это достигается с помощью команды SEROUT, на PIC вам нужно свернуть свою собственную процедуру вывода MIDI - это может быть сложно, поскольку последовательная синхронизация определяется количеством выполненных инструкций и тактовой частотой PIC, однако в сети есть множество примеров, с которых можно начать.

Ни PIC среднего диапазона (например, PIC16F84), ни Basic Stamp (любая модель) не подходят для одновременного приема и передачи MIDI, поскольку они не поддерживают буферизованную последовательную связь. На Basic Stamp II любой MIDI, поступающий во время обработки Stamp, будет утерян. На PIC код должен быть тщательно разработан, чтобы чередовать последовательные чтения и другую обработку на уровне битов суб-MIDI, чтобы избежать потери данных.

MIDI-ввод без вывода возможен на PIC, но не описан здесь - см. Раздел ссылок для некоторых примеров.Реализация одновременного ввода и вывода MIDI или мягкого перехода / слияния невозможна с использованием Basic Stamp II. Его сложно реализовать на PIC16F84, и он оставляет мало места для выполнения другой обработки. Предлагаемое решение - использовать два PIC - один для ввода и один для вывода, или использовать более дорогой PIC, такой как PIC16C7x, который имеет встроенный UART.

MIDI выход

Подключение PIC или Basic Stamp для вывода MIDI не может быть проще:

  • Подключите контакт 4 разъема MIDI к желаемому выходному контакту PIC или Basic Stamp через резистор 220 Ом
  • Подключите контакт 5 MIDI-разъема к + 5В через резистор 220 Ом
  • Подключите контакт 2 разъема MIDI к земле

Важное примечание! Несколько человек написали мне, что контакты 4 и 5 на схеме подключения MIDI-выхода поменяны местами.Я не проверил, правда это или нет. Возможно, вам придется поэкспериментировать, поменяв местами соединения, если это не сработает.

См. Программу «MIDI Sender» Дэвида Б. Томаса (ассемблер параллакса) или мою программу midisend (сборка микрочипов) для примера отправки MIDI с использованием микросхемы PIC. Для Basic Stamp II см. Программу Джеффа Манна MIDI out для BASIC Stamp II.

Если вам нужна информация о MIDI, посетите Центр «промывания мозгов» MIDI Technical Fanatic. Схема электрических характеристик MIDI вместе с другой полезной информацией доступна на веб-сайте ассоциации производителей MIDI.

Сопряжение с переменным сопротивлением

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

Двойной ввод / вывод выводов данных PIC и Basic Stamp позволяет построить простую схему, которая может измерять значение потенциометра. Для выполнения этого измерения обычно используются две разные схемы: первая использовалась в сочетании с командой POT Basic Stamp I и полезна для PIC, поскольку исходный код для ее управления находится в свободном доступе (это версия, описанная ниже).Basic Stamp II заменил команду POT на команду RCTIME, которая требует другой схемы - см. Подробности в руководстве по Stamp II или на странице с ручкой Basic Stamp DIY Джона Раденберга для рабочего примера.

Метод POT

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

Команда Basic Stamp I POT выполняет описанный выше процесс и возвращает масштабированное выходное значение. См. Ассемблерную версию команды POT Скота Эдвардса Parallax в The PIC Source Book для примера использования вышеуказанной схемы с микросхемой PIC.

На 10 МГц PIC16F84 вышеуказанная схема заряжается за 6 мсек, а при максимальном сопротивлении требуется 138 отсчетов (0,5 мс) для разрушения. Преимущество PIC перед Basic Stamp при использовании нескольких горшков состоит в том, что все RC-цепи могут заряжаться одновременно, обеспечивая значительное увеличение скорости по сравнению с последовательной зарядкой и разрядкой каждой цепи.

Интерфейс для пьезоэлектрических преобразователей

В февральском выпуске (том 27, № 3) журнала Electronics Today International за 1998 год, статья Тома Скарфа под названием MIDI Drum Pads описывает конструкцию пьезоэлектрического триггера с 8 входами для MIDI-устройства на основе микроконтроллера PIC16C84. Устройство генерирует MIDI-сообщения при нажатии на триггеры, однако информация о скорости не измеряется. Статья Тома, включая исходный код и схемы, доступна в Интернете.

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

У

PAiA есть несколько более сложных схем для взаимодействия с датчиками перкуссии.

Дальнейшие направления

Интернет содержит множество примеров взаимодействия PIC, базовых штампов и других микроконтроллеров с переключателями, аналого-цифровыми преобразователями и другими устройствами, которые могут быть с пользой использованы для создания интересных MIDI-контроллеров.Страница Дэна О’Салливана по физическим вычислениям - отличный источник информации о посредничестве между физическим и цифровым мирами.

Комбинируя аналого-цифровой преобразователь и микросхему мультиплексора, можно легко создать MIDI-контроллер с увеличенным разрешением, более быстрым временем обновления и большим количеством потенциометров, датчиков или других устройств ввода. Для тех, кто любит приключения, Microchip производит более сложные PIC, поддерживающие более высокие тактовые частоты, встроенные аналого-цифровые преобразователи, таймеры и последовательные интерфейсы.

PIC и MIDI-ссылки Basic Stamp

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

MIDI выход
MIDI вход
Другое

Общие ссылки на PIC

Производитель микросхем PIC Microchip Technology Inc.поддерживает большой веб-сайт, на котором представлена ​​техническая информация, заметки по применению и бесплатное программное обеспечение для разработки на ПК. Parallax, Inc., производитель Basic Stamps, предоставляет списки рассылки для разработчиков PIC и Stamp, а также имеет бесплатное программное обеспечение для разработки, доступное в Интернете.

Питер Х. Андерсон преподает программирование PIC и Basic Stamp, его веб-сайт Embedded Processor Control - это кладезь проектов, наборов и другой полезной информации. Если вы смотрите только на один другой сайт, сделайте это.

Dontronics продает различные продукты, связанные с PIC, включая платформу разработки SimmStick.Дон поддерживает большой набор ссылок и ресурсов PIC, а также размещает онлайн-версию книги Scot Edwards The PIC Source Book , которая содержит версии набора инструкций Basic Stamp на языке ассемблера - очень полезно!

Базирующаяся в Соединенном Королевстве компания Russell Warburton’s Warburton Technology специализируется на распространении Parallax Basic Stamp и других продуктов и средств разработки на основе микроконтроллеров.

Многие компании производят программаторы PIC, большинство из которых предназначены для работы с более дорогими микросхемами PIC.В сети есть много советов для программаторов PIC своими руками, особенно для более дешевых PIC, таких как PIC16F84. Я использую программатор на основе чрезвычайно доступного программатора No Parts PIC от Майкла Ковингтона, который можно приобрести в виде комплекта в Oatly Electronics.

Если вы решили принять участие в разработке PIC, рассмотрите PICList, список рассылки с большим объемом трафика, который обеспечивает благоприятную среду для обсуждения разработки программного и аппаратного обеспечения PIC.

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

Комментарии читателей

Хосе Соуто написал, чтобы сообщить мне, что:

Существует ряд бесплатных компиляторов C для PIC, и я очень доволен CC5xFree с www.bknd.com. Благодаря полной интеграции этого компилятора с MPLAB от Microchip, людям, желающим использовать PIC, не нужно полагаться на ассемблер для написания кода для MIDI.

В прошлом году я написал небольшой C-фрагмент для чтения MIDI с помощью PIC12C508, используя битовый C-код, написанный с помощью CC5xFree. Это из моего опыта написания полноценного MIDI-ресивера для клиента.Я разместил его в PicList

Питер М. Олсен написал мне о Picaxe, который можно программировать на BASIC:

Вы смотрели Picaxe? (www.picaxe.co.uk). Я использую их около 6 месяцев, и, насколько мне известно, они оставляют базовый штамп навсегда! Это в основном PIC Microchip с загрузчиком начальной загрузки. Я бы хотел, чтобы кто-то работал с MIDI.

Благодарности

Благодарность:
Джону Раденбергу, известному на странице с ручками Basic Stamp DIY, который познакомил меня со многими идеями на этой странице.
Джим Соснин, чья работа с PIC и MIDI вселила в меня уверенность в том, что я могу попытаться построить свои собственные схемы.
Джеффа Манна за многочисленные предложения и исправления.

Galva-Wisp недорогой программатор PIC

Galva-Wisp недорогой программатор PIC

Galva-Wisp mark II, недорогой программатор PIC для ICSP

Гальваника от ПК, изолированный программатор PIC

The Wisp648 с сайта www.voti.nl это программатор I n C ircuit S erial P для программирования flash PIC, который в большинстве случаев может оставаться в вашей схеме.
Нет раздражающие действия, такие как вытаскивание PIC из печатной платы, вставьте его в программатор, запрограммировав его, вытащите его из программатора и снова и снова вставьте в печатную плату, он может оставаться в схеме на вашей макетной плате или печатной плате во время программирования PIC.
Это становится рискованным , когда PIC подключен напрямую к сети 230 В, например, диммер с беспроводным управлением (и без трафика!) С этого места, тогда лучше запрограммировать PIC отдельно от схемы.


Программатор PIC Galva-Wisp (mark II).

Galva-Wisp
Другое решение для защиты вашего ПК - гальваническая изоляция программатора Wisp648 от ПК или создание Galva-Wisp, это Wisp628, но гальванически разделенный двумя сдвоенными оптопарами.
Galva-Wisp дополняется зеленым светом на светодиодах , красный светодиод программы и кнопка для возможности сброса запрограммированного руководства PIC.
Кстати, ручной сброс возможен только при включенном MCLR.( КОНФИГУРАЦИЯ MCLRE_ON в PIC-Basic (= по умолчанию) )

MARK II
Отличие от Galva-Wisp MARK I в том, что в MARK II больше нет микросхемы MAX232.



PIC, который остается на Galva-Wisp, сам управляет Galva-Wisp, и это , а не PIC, который должен быть запрограммирован!

Galva-Wisp получает питание от целевой схемы PIC (где остается PIC, который должен быть запрограммирован) (5В / 20мА) и COM-порт RS232 (+/- 9В...12V).
PIC, который необходимо запрограммировать, может оставаться на своей печатной плате (или макете) во время программирования, см. Рисунки внизу.


Здесь программатор Galva-Wisp PIC подключается непосредственно к COM-порту с ноутбука.
Конечно, можно также использовать удлинительный кабель (1: 1) между COM-портом и программатором.


Если COM-порт отсутствует, используйте последовательный USB-адаптер.

«Диодный кабель» с отдельным экраном на каждый провод.
Чтобы соединить программатор с PIC, который должен быть запрограммирован
, вы можете сделать это с помощью проводов, но
проще при использовании DIL-зажима.
Программирование PIC также возможно, если PIC
уже впаян в печатную плату (см. Изображения выше этого).


Кабель на DIL-зажиме не должен быть длиннее 1 метра, рекомендуется кабель с экраном на каждом проводе (см. Рисунок).



Компоненты: кнопка сброса может выйти, если не используется.

Печатная плата 130101 Протравите самостоятельно (31 мм x 53 мм) (Руководство по травлению на голландском разрезе)
IC1 PIC16F648A - Загрузите файл HEX внизу этой страницы
IC2, IC3 PC827 (из LTV827) (сдвоенные оптопары)
LED1, LED2 Зелено-красный светодиод, Ø3 мм, слаботочный
Т1 BC547 Транзистор NPN
Т2 TIP120 NPN транзистор Дарлингтона (см. Текст)
D1, D2, D3, D4 BAT85 Диод Шоттки (если нет, то 1N4148)
D5 Диод Шоттки SB140 (или SB130, или 1N5819)
Х1 Кристалл 20 МГц
R1, R2, R9...R12
R3 ... R8 47 Ом
R13 2к2
C1 1000 мкФ / 6,3 В или 10 В (радиальный) (см. Текст)
C2 100н, осевой (идет под IC1, в гнезде IC)
C3, C4 1 мкФ (тантал)
C5 22 мкФ
C6, C7 22 пФ
S1 Кнопка сброса (может отсутствовать)
Conn1 15-контактный разъем Sub-D, вилка
Conn2 9-контактный разъем Sub-D, розетка
IC-розетка 18 контактов, собственный выбор


C2 устанавливается на внутри гнезда IC под PIC.
Обратите внимание на провод, подключенный к контакту 7 9-контактного разъема Sub-D.

Помните, что 2 оптопары (IC2 и IC3) устанавливаются с углублением друг относительно друга.
Диод D5 должен быть диодом Шоттки, например типа SB130, SB140 или 1N5819.
C2 устанавливается в разъем IC под PIC.
PIC должен быть вставлен в гнездо, чтобы его время от времени можно было заменять новым программным обеспечением, чтобы можно было программировать самые новые типы PIC.
Обновление возможно, если сначала запрограммировать обновление в другом 16F648, а затем заменить им PIC (IC1).
Вы можете перепрограммировать "старую" PIC и использовать ее для другого проекта или, лучше, оставить ее как запасную PIC.

Выберите для C1 радиальный низковольтный elco (6,3 В или 10 В), иначе он не подходит для печатной платы Galva-Wisp.
Значение 1000 мкФ выглядит немного чрезмерно большим, но на это есть свои причины - программирование меньших PIC.


Меньшие PIC
Некоторые PIC (например, 12Fxxx и 16F630 / 16F676) могут конфигурировать свой вывод MCLR как вход.
Эти микросхемы (в большинстве случаев) не смогут войти в режим программирования, если вывод MCLR действительно настроен как вход.
Вот почему необходима дополнительная схема, когда нужно запрограммировать небольшой PIC.

Подробнее о программировании меньших PIC


Поймите, что гальваническая развязка находится между программатором и ПК, а не между программатором и схемой, поэтому, если вы программируете PIC, который подключен к сети (то есть диммер), то части программатора также находятся под линией жизни!
Будьте уверены, что вы делаете, когда программируете PIC, которые подключены к этому опасному напряжению, Galva-Wisp предназначен только для защиты вашего ПК (также при программировании экспериментальных схем без высокого напряжения).
Далее стоит Galva-Wisp, такой же, как старый добрый Wisp628 от Voti.

Wisp 648 является преемником Wisp628.
Для получения очень подробной информации о программаторе Wisp PIC щелкните здесь.


Программное обеспечение для ПК

XWisp
XWisp написан Воутером ван Оойеном.


XWisp screendump во время программирования PIC.

PIC от Galva-Wisp (IC1) должен иметь прошивку версии V1.30 .
Вы можете скачать это внизу страницы.


XWisp2 (сторонний, с некоторыми интересными функциями, проверьте его сайт)
Третья программа XWisp 2 является вариантом от XWisp.
С помощью XWisp 2 вы можете добавлять устройства PIC по своему усмотрению, он также работает в Linux и eComStation.
XWisp 2 написан Робом Хамерлингом.


XWisp2 w . exe - это версия для Windows (откройте ее в окне DOS).

PIC от Galva-Wisp (IC1) должен иметь прошивку версии V1.30 .
Вы можете скачать это внизу страницы.


Схема Galva-Wisp mark II


Принципиальная схема от Galva-Wisp mark II.

PIC, который должен быть запрограммирован (целевой PIC), подключается к 15-полюсному разъему Sub-D: Программа
1. GND Galva-Wisp получает питание от цепи, в которой также находится PIC, который должен быть запрограммирован.
2. +5 В
3. Часы PG Часы последовательного программирования, в основном PORTB.6.
4. Данные PG Данные последовательного программирования, в основном PORTB.7.
5. Vpp / MCLR Напряжение программы (13 В, генерируется самим Galva-Wisp из источника питания 5 В) / Master CLeaR (сброс), активный низкий уровень.
6. PGM (LVP) (дополнительное программирование L ow V oltage P ).
7. Асинхронный ==> PIC Дополнительно, эти контакты можно оставить неподключенными или подключить любым способом, который вы сочтете нужным для последовательного прохода. Контакты 7 и 8 соответствуют встроенному UART PIC. (Не каждый тип PIC имеет UART)
8. Асинхронный <== PIC

*) Контакт 7 также используется для управления TIP120 при программировании меньших PIC.

.

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

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