Site Loader

Содержание

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

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

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

Цена готовых 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 необходимо «прошить». Эта простая операция у многих вызывает ступор, так как возникает так называемая проблема «курицы и яйца». Как её решил я, расскажу чуть позднее.

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

Название Обозначение Номинал/Параметры Марка или тип элемента
Для основной части программатора
Микроконтроллер DD1 8-ми битный микроконтроллер PIC18F2550-I/SP
Биполярные транзисторы VT1, VT2, VT3 КТ3102
VT4 КТ361
Диод VD1 КД522, 1N4148
Диод Шоттки 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 кОм
R13 100 кОм
Конденсаторы 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 любая типа «джампер»
Для панели установки микроконтроллеров (МК)
ZIF-панель XS1 любая 40-ка контактная ZIF-панель
Резисторы R1 2 кОм МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R6 10 кОм

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

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

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

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

В данной статье приведено описание USB программатора для микроконтроллеров AVR, который можно собрать своими руками. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK500 v2.

Описание USB программатора

USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита . На плате есть 2 перемычки: одна расположена под разъё­мом SPI, вторая перемычка расположена неподалеку от того же разъема.

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

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

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

Программирование Atmega8 через LPT-порт компьютера

Самый быстрый и дешевый способ запрограммировать Atmega8 – применить LPT-программатор для AVR. Подобная схема приведена ниже.

Питание микроконтроллера осуществляется от простого стабилизатора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.

При первом включении программы и при не подключенном контроллере, нажав кнопку «LPTpins», необходимо настроит выводы LPT-порта следующим образом:

В момент запуска UniProf, она автоматом определяет вид микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отклоняем подключение файла EEPROM.

Выставляем следующим образом фьюзы (для программы UniProF), нажав кнопку «FUSE»:

Для запоминания установок нажимаем все три кнопки «Write». Затем нажав на «Erase» предварительно очищаем память прошиваемого микроконтроллера. После этого уже жмем на «Prog» и дожидаемся завершения прошивки.

Настройка USB программатора

После того как наш микроконтроллер прошит, его необходимо установить в плату USB программатора. Далее подключаем программатор к USB порту компьютера, но пока питание не подаем.

Настройка порта:

Настройка терминала:

Настройка ASCII:

Теперь после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен промигать 6 раз и затем светится постоянно.

Для проверки связи USB программатора с компьютером 2 раза нажимаем клавишу «Enter» в программе HyperTerminal. Если все в порядке мы должны увидеть следующую картину:

Если это не так проверяем еще раз монтаж, особенно линию TxD.

Далее вводим версию программатора 2.10, так как без этого програм­матор не будет работать с программами «верхнего уровня». Для этого вводим «2» и нажимаем «Enter», вводим «а» (английская) и нажимаем «Enter».

USB программатор способен распознавать подключение программируемого микроконтроллера. Выполнено это в виде контроля «подтяжки» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:

  • «0», «Enter» — режим выключен.
  • «1», «Enter» — режим включён.

Изменение скорости программирования (1МГц):

  • «0», «Enter» – максимальная скорость.
  • «1», «Enter» – сниженная скорость.

На этом подготовительная работа завершена, теперь можно попробовать прошить какой-нибудь микроконтроллер.

(скачено: 1 199)

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

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

Этот программатор я начал разрабатывать еще в 90-е годы прошлого века. Он задумывался как простой и дешевый универсальный программатор для использования в любительских условиях с минимальными требованиями к компьютеру и с возможностью расширения номенклатуры программируемых микросхем.

В дальнейшем программа неоднократно дорабатывалась, номенклатура поддерживаемых микросхем расширялась. Последняя версия — август 2005г. Она поддерживает следующие классы микросхем: PROM : 155PE3, 556PTxx; EPROM : 2716…27512, 27C64…27C512; EEPROM : W27C512, 28C16A, 28C17A, 28C64A, AT28C64B, AT28C256, AT29C256/257/512; 8051 : 8751, 87C51, 87C51FA, 87C51FB, 87C51FC, 87C51RD+, AT89C51, AT89C52, AT89C55, AT89C1051, AT89C2051, AT89C4051, AT89S53, AT89S8252; PIC16 : PIC12F629/675, PIC16F84/C84, PIC16F627/A, PIC16F628/A, PIC16F648A, PIC16F73/74, PIC16F76/77, PIC16F873/874, PIC16F876/877, PIC16F876A/877A, PIC16C5xx, PIC16C6x, PIC16CE6xx, PIC16C7x; AVR : AT90S1200, AT90S2313, AT90S2323/2343, AT90S2333, AT90S4414/4434, AT90S4433, AT90S8515/8535, ATtiny10/11, ATtiny12, ATtiny15, ATtiny28; I2C : 24LC01…24LC512, PCA8581, PCF8582, ST24E16; PIC18 : PIC18Fxx2/xx8; PIC12 : PIC12C508/509, PIC12F508/509, PIC16F505.

Для ATMEL AVR поддерживаются все режимы программирования: как Low voltage, так и High voltage. Т.е. можно программировать в параллельном режиме все поддерживаемые AVR микроконтроллеры.

Принципиальная схема основного блока программатора показана на рисунке. Его легко собрать своими руками. Программатор представляет собой универсальный микропроцессорный контроллер на базе микроконтроллера КР1830ВЕ31 (80C31). В его состав входят следующие узлы: ПЗУ DD3 для хранения управляющей программы, ОЗУ DD5 для хранения данных, регистр для демультиплексирования адреса и данных DD2, параллельный порт для связи с программируемой микросхемой DD4, а также узлы приемника и передатчика RS-232, осуществляющие преобразование уровней – VT1 и VT2. Все эти элементы включены по стандартной схеме.

Основное отличие данного программатора от других – это возможность работы с любым компьютером, под управлением любой операционной системы. Не обязательно Windows или DOS, даже не обязательно IBM совместимый компьютер. Важно, чтобы имелся COM порт и стандартная коммуникационная программа для работы с ним. Если нет COM порта, программатор можно подключить и к USB через адаптер USB-COM. Поддерживаются кодировки DOS, Windows и KOI-8.

На компьютере должна быть запущена какая-либо коммуникационная программа, например «Telemax», входящая в комплект Norton Commander, «Terminal» из Windows и т.п. Я обычно пользуюсь простой, но очень удобной программой «Tera Term Pro 2.3».

Пользователь управляет процессом программирования, набирая на клавиатуре компьютера команды и наблюдая на экране результаты их выполнения. Все команды состоят из одной или двух латинских букв, которые можно набирать, как в верхнем, так и в нижнем регистре клавиатуры. За командой могут следовать один, два или три цифровых параметра, разделенных пробелом. Не значащие нули слева можно не вводить, а команду редактировать клавишей «Back Space». Ввод завершается нажатием «Enter». В случае какой-либо ошибки при вводе выдается сообщение «ERROR», а на выполнение команд, последствия которых могут быть необратимы для программируемой микросхемы, запрашивается подтверждение. Полный список всех доступных команд постоянно присутствует на экране, поэтому, даже если пользоваться программатором один раз в год, не придется что-либо вспоминать.

При работе с программатором вначале необходимо нажать на клавиатуре компьютера любую буквенно-цифровую клавишу в латинском регистре, т.е. с кодом менее 128. При этом программатор автоматически определит скорость работы порта и будет посылать информацию в компьютер на этой же скорости. Если все сделано правильно, на экране появится предложение выбрать кодовую таблицу, с которой будет работать программатор. Как указывалось выше, поддерживается кодировка DOS, Windows и KOI-8. Все дальнейшие сообщения будут выводиться на экран на русском языке. Если символы не читаемы, значит кодовая таблица выбрана неверно и следует выключить и снова включить программатор, а затем выбрать другую кодировку.

Программа дорабатывалась в течение нескольких лет. В итоге — около 400(!) кбайт чистого текста на ассемблере. Кодировка — DOS, не пытайтесь перекодировать ассемблерный текст в Windows , это полностью нарушит работу программы.

Для расширения номенклатуры программируемых микросхем есть несколько путей. Во-первых, по мере появления у автора возможности, необходимости и желания, программа модернизируется. Во-вторых, архитектура программатора открытая, поэтому любой желающий, конечно, при наличии достаточных знаний и опыта, может написать свою собственную программу. Наконец, в-третьих, можно разработать программный модуль для нужного типа микросхемы и непосредственно перед программированием загружать его в верхнюю половину ОЗУ в виде HEX файла, а затем запускать на выполнение командой G из меню.

Печатную плату я рисовал вручную, в те годы Sprint Layout еще не было. Но был PCAD, в котором и прислал мне свои варианты платы один из радиолюбителей, повторивших эту конструкцию. Я, в свою очередь, делюсь этой информацией с Вами. Это дополнение выложено в архиве в том виде, в каком я его получил — «как есть». Более подробно работа с программатором описана в pdf файле, там же приведены схемы всех сменных блоков. Выкладываю также прошивку и исходный текст программы. Все ссылки ниже.

Универсальный программатор для микроконтроллеров AVR и PIC. Радиотехника, электроника и схемы своими руками. Программаторы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Название Обозначение Номинал/Параметры Марка или тип элемента
Для основной части программатора
Микроконтроллер DD1 8-ми битный микроконтроллер PIC18F2550-I/SP
Биполярные транзисторы VT1, VT2, VT3 КТ3102
VT4 КТ361
Диод VD1 КД522, 1N4148
Диод Шоттки 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 кОм
R13 100 кОм
Конденсаторы 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 любая типа «джампер»
Для панели установки микроконтроллеров (МК)
ZIF-панель XS1 любая 40-ка контактная ZIF-панель
Резисторы R1 2 кОм МЛТ, МОН (мощностью от 0,125 Вт и выше), импортные аналоги
R2, R3, R4, R5, R6 10 кОм

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

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

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

Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL , то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP , мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.

Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):

Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:


На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.


Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно


Прошивка управляющего микроконтроллера

Итак, после сборки устройства осталось самое важное — прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом:) Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:


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

Установка драйвера

Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:


Выбираем папку где лежат дрова и жмем Далее


Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:


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


Все, теперь программатор готов к работе.

Khazama AVR Programmer

Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer. Замечательная программка, с минималистичным интерфейсом.


Она работает со всеми ходовыми микроконтроллерами AVR, позволяет прошивать flash и eeprom, смотреть содержимое памяти, стирать чип, а также менять конфигурацию фьюз-битов. В общем, вполне стандартный набор. Настройка фьюзов осуществляется выбором источника тактирования из выпадающего списка, таким образом, вероятность залочить кристалл по ошибке резко снижается. Фьюзы можно менять и расстановкой галок в нижнем поле, при этом нельзя расставить галки на несуществующую конфигурацию, и это тоже большой плюс в плане безопасности.


Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.

Скачать файл печатной платы в SprintLayout можно по этой ссылке

22 сентября 2011 в 20:11
  • Программирование микроконтроллеров

Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.

Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):

Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:

На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.

Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно

Прошивка управляющего микроконтроллера
Итак, после сборки устройства осталось самое важное — прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом:) Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:

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

Установка драйвера
Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:

Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:

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

Все, теперь программатор готов к работе.

Khazama AVR Programmer
Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer . Замечательная программка, с минималистичным интерфейсом.

Она работает со всеми ходовыми микроконтроллерами AVR, позволяет прошивать flash и eeprom, смотреть содержимое памяти, стирать чип, а также менять конфигурацию фьюз-битов. В общем, вполне стандартный набор. Настройка фьюзов осуществляется выбором источника тактирования из выпадающего списка, таким образом, вероятность залочить кристалл по ошибке резко снижается. Фьюзы можно менять и расстановкой галок в нижнем поле, при этом нельзя расставить галки на несуществующую конфигурацию, и это тоже большой плюс в плане безопасности.

Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.

Скачать файл печатной платы в SprintLayout можно по

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

В радиолюбительских журналах и сети Интернет приводится множество схем программаторов. Они отличаются способом подключения к компьютеру: через LPT, COM, USB. Программаторы для порта LPT наиболее простые, для COM — чуть сложнее. Для программатора, подключаемого к USB-порту, нужно иметь либо микроконтроллер, либо специализированную микросхему, преобразователь USB — UART. Кроме этого, разные программаторы предназначены для прошивки разных микроконтроллеров: AVR или PIC, при том, что алгоритм программирования этих двух типов микроконтроллеров отличается незначительно. Поэтому само собой напрашивается желание собрать универсальный программатор для любых микроконтроллеров — AVR и PIC.


Оптимальной нам показалась приведённая ниже схема программатора. Он подключается к COM-порту компьютера и содержит известную микросхему MAX232, которая корректно работает с любым COM-портом (у разных компьютеров уровни порта могут существенно отличаться от стандарта), защищая его при случайных ошибках монтажа или подключения. Программатор имеет панельки для разных корпусов микроконтроллеров, а также возможность для внутрисхемного программирования ICSP, когда программатор подключается проводами к плате с микроконтроллером или непосредственно к ножкам микроконтроллера без установки его в панельку. Программатор видится программами как JDM, поэтому проблем с программным обеспечением не возникает. Можно рекомендовать программу IC-PROG 1.06В.


Переключение режимов AVR — PIC производится микропереключателем. Процесс работы устройства индицируется четырьмя светодиодами. Программатор прост и не требует наладки, используются очень распространённые детали.

Вместо микросхемы 74LS00 можно поставить К555ЛА3 или КР1533ЛА3, транзисторы, в принципе, заменимы на похожие. У данной схемы есть одна странность — номиналы токоограничительных резисторов для светодиодов. Так как светодиоды подключены к разным участкам схемы, напряжения на этих участках также разные, из-за чего светодиоды светятся с разной яркостью. Для того, чтобы это исправить, можно попробовать подобрать резисторы, в частности — уменьшить R4 и R7. Вместо КД523 можно использовать распространённые 1N4148.

Печатная плата.lay (для Sprint Layout) Разводка выполнена под SMD-резисторы, остальные компоненты — в обычном исполнении.

Внимание! На печатной плате проводки MOSI и MISO к панельке ATMEGA8 показаны неправильно, их нужно перекинуть. Также C7 и C9 имеют перемычки — их нужно убрать.

Работа с IC-PROG

Скачивать программу нужно с официального сайта:

http://www.ic-prog.com/index1.htm

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

icprog.exe — непосредственно программа
icprog.sys — драйвер доступа к портам под XP

Необходимо нажать правой клавишей мыши на файле icprog.exe и выбрать «свойства». На вкладке «совместимость» необходимо поставить галочку «запустить в режиме совместимости» и выбрать Windows 2000.

Далее необходимо зайти в меню «Настройки» и выбрать пункт «Программатор». Тип программатора необходимо установить JDM и указать COM-порт, к которому физически подключен программатор. Для очень быстрых компьютеров можно также установить задержку ввода-вывода. В этом же окне необходимо указать интерфейс «Прямой доступ к портам». Все галочки параметров сигналов должны быть сняты.

Затем необходимо зайти в меню «Настройки» и выбрать пункт «Опции», вкладку «Общие», где установить галочку «Включить NT/2000/XP драйвер». При этом появится окно подтверждения установки драйвера и программа перезапустится.

После этого программа готова к работе с программатором.

Когда-то давно пару лет назад, в очередной раз пересмотрел подшивку како-го радиотехнического журнала и задумался: а не пора ли осваивать микроконтроллеры? С этим проблем не было, литературы много, примеров достаточно. Изучил матчасть, написал свою первую ПРОГРАММУ. Потом начались поиски того, чем эту программу запихнуть в контроллер, тоесть программатора. Нужна была схема простая, чтоб собрать из того, что под рукой и надежная, без глюков так сказать. После долгих поисков выбор пал на схему программатора из журнала «РАДИО» №10 2007г. ст. 31. Описывать эту схему не стану, для желающих в архиве есть оригинал статьи. Скажу лишь, что схема отлично работала, шила все подряд без проблем, только почему-то иногда вилетал МАХ232 (заменил 3 шт., может бракованые попались). Тот программатор подарил коллеге и решил собрать себе такой-же, но у меня не оказалось еще одного управляемого стабилизатора K78R12C, опять начались поиски замены… В результате родилась вот такая схема, это результат «скрещивания» журнальной схемы и фирменного программатора SI-PROG:

MAX232 заменил на более быстродействующий ST232, управляемый стабилизатор заменил обычным 7812 и транзисторным ключем после него, транзисторы — ВС547, все остальные детали — по рекомендациям из оригинальной статьи. Также добавил отдельную подключаемую плату с панельками для разных типов контроллеров (так как в основном юзаю РІС-и, то плата пока только под них, а если нужно прошить AVR — то проводочками:-)). Монтируется все это на вот такой плате:

А это сменная плата для ПИК-ов и микросхем памяти:

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

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

На фото видно в корпусе трансформатор питания, я его потом выкинул, так как он оказался слабоват (сделал светодиодную подсветку передней панели из сверхярких светодиодов, и трансформатор не осилил:-). Сейчас используется внешний блок питания 15В, и током до 1А. Программатор работает с программами PonyProg, Si-prog, WinPic800. Используя для управления программу PonyProg следует выбрать в соответствующем ее окне программатор SI Prog I/O и задать инверсию сигналов в соответствии с таблицей 1, для программ Si-Prog и WinPic 800 следует выбрать программатор JDM Programmer, а инверсию сигналов задать в соответствии с таблицами 2 и 3.

Программатор Spi Flash своими руками — RUUD

The content of the article:

Микропрограммное обеспечение предварительно установлено в устройства флэш-памяти перед изготовлением печатной платы, поддерживая высокую пропускную способность. Тем не менее есть преимущества в программировании флэш-памяти уже после ее выпуска, то есть до того, как она была припаяна к плате. Программатор Spi Flash (SF) с дискретной флэш-памятью имеет существенные преимущества перед обычными SD. Его цена обычно не превышает 1/10 стоимости флешки, использует гораздо меньший форм-фактор и требует небольшого количества специального оборудования.

Выбор: SF & SD

You will be interested:How dangerous is the new coronavirus?

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

  • Аппаратная сложность, преимущество имеет SF. DIP-пакет с дискретной флеш-микросхемой намного проще использовать, чем SD.
  • Сложность программного обеспечения, преимущество имеет SF. Подсистема флэш-памяти SD обычно опирается на библиотеки SD Fat16/32. Хотя устройства являются интерфейсом SPI, имеет смысл использовать FAT, поскольку любой ПК/MAC может считывать карту. Эти библиотеки большие и могут занимать драгоценное пространство EEPROM на малых встроенных контроллерах.
  • Емкость и портативность, преимущество имеет SD. Можно использовать SD-карту большей емкости в существующем дизайне без изменений. Дискретная SPI имеет более низкие пределы плотности.
  • Стоимость, преимущество имеет SF.
  • Мощность, преимущество имеет SF. SD-карты обычно имеют более высокую мощность утечки из-за более высокой плотности и высокой динамической мощности из-за скорости доступа.
  • Скорость, преимущество имеет SD. SD-флэш-память поставляется во многих различных SKU, основанных на скорости в основном из-за требований цифровой фотографии и использования необработанных форматов изображений.
  • Флэш-память SPI

    Флэш-память SPI- это тип энергонезависимой памяти, основанный на технологии MOSFET. Энергонезависимое означает, что устройство сохраняет все данные, в том числе, когда не включено. Флэш-память работает, перенося группу носителей заряда на диэлектрик. Это называется программированием и обычно выполняется с более высоким напряжением. Процесс не безобидный, он на самом деле повреждает материал, и после 100 тыс. циклов устройство выходит из строя. Чтобы снять носители заряда с диэлектрика, при одинаковом высоком напряжении на обратном потенциале снимают носители с затвора. Это называется стиранием.

    Запрограммированный флэш-бит имеет значение 0, а стертый бит имеет значение 1, стертый флэш-байт равен 0xFF в шестнадцатеричном формате. В настоящее время флэш-память может хранить несколько битов на ячейке, с использованием уровней напряжения. С учетом роста требований к объему памяти это становится все более сложным выполнить конструкционно.

    Преимущество Spi Flash программаторов USB заключается в простоте программного обеспечения, код в основном сдвигает данные выводов DI и DO, соответственно по переднему фронту тактовой частоты. Часы контролируются хостом, для них не требуется причудливая схема синхронизации: фазы могут быть настолько асимметричными, насколько нужно, при условии соблюдения минимальных требований к ширине цикла устройства.

    Утилита для идентификации

    Flashrom — это утилита для идентификации, чтения, записи, проверки и удаления флеш-чипов. Она предназначена для прошивки образов BIOS/EFI/coreboot/firmware/optionROM на материнских платах, картах контроллера сети/графики/хранения и на различных других устройствах программирования. Функциональные возможности:

  • Поддерживает более 476 чипов флэш-памяти, 291 наборов микросхем, 500 материнских плат, 79 устройств PCI, 17 устройств USB и различные программаторы Spi Flash на основе параллельных/последовательных портов.
  • Поддерживает параллельные интерфейсы, интерфейсы флэш-памяти LPC, FWH и SPI и различные пакеты микросхем (DIP32, PLCC32, DIP8, SO8/SOIC8, TSOP32, TSOP40, TSOP48, BGA и другие).
  • Физический доступ не требуется, root-доступ достаточен или вообще не требуется для некоторых программаторов.
  • Не требуется загрузочная дискета, CD-ROM или другой носитель.
  • Клавиатура и мониторы не требуются, просто перепрошиваются удаленно через SSH.
  • Не требуется мгновенная перезагрузка.
  • Переписывают чип в работающей системе и проверяют его, новая прошивка будет работать при следующей загрузке.
  • Доступна частичная поддержка Windows.
  • DIY: универсальные программы создания

    Это лучший для микроконтроллеров PIC и AVR программатор Spi Flash, своими руками, может быть, его создать не получится, но устройство не дорогое, стоит меньше 10 $ и выполняется из легко доступных компонентов.

    Преимущества:

  • Бесплатное ПО с открытым исходным кодом.
  • Нет необходимости устанавливать дополнительные драйверы, использует драйвер HID (Human Interface Device), который обычно применяется для клавиатуры и мыши.
  • Поддерживает много устройств PIC и AVR.
  • Поддерживает платформы Windows и Linux.
  • Состоит из микроконтроллера PIC18F2550 — мозга программатора Spi Flash.
  • Разъем USB-B подключается к компьютеру.
  • Имеется два светодиодных индикаторов, один для индикации подключения программатора, другой показывает статус программирования.
  • Микроконтроллер PIC18F2550

    Основные три последовательных заголовка (J1, J2 и J3) используются для связи с ведомым устройством микроконтроллера. Использование выводов различно в разных микроконтроллерах. Переключатель сброса добавлен к блоку контроллера для установки сброса программатора. PIC18F2550 мигает с помощью шестнадцатеричного кода прошивки, можно использовать другие последовательные или параллельные программаторы Spi Flash PIC.

    Он проверяет связь между микроконтроллером и ПК. Требуется провести тестирование HID-обнаружения (Human Interface Device), которое устранит много ошибок, таких как проблемы с микроконтроллером, кристаллами и USB. Перед началом использования программы убеждаются, что мигает светодиод LED, который затем замедляет процесс мигания. Если программатор не обнаружен, проверяют перекрестные соединения и инструкции. Если он обнаружен, переходят к следующему шагу.

    Программирование через OpenProg

    Устанавливают программу OpenProg на ПК, запускают и проверяют подключенное устройство. Последовательность прошивки программатора Spi Flash:

  • Подключают USB-разъем к ПК.
  • Открывают OpenProg и убеждаются, что программатор обнаружен.
  • Нажимают «Параметры» -> «Проверка оборудования».
  • Выполняют аппаратный тест. Он проверяет все контакты программирования, и пользователь может легко отлаживать устройство при обнаружении ошибок.
  • Аппаратный тест показывает напряжение на VODU, VPPU, CLK, DATA, PGM в разные моменты времени, что важно учитывать при выполнении своими руками программатора Spi Flash на SMD.
  • Измеряют напряжение между выводами VODU, VPPU, CLK, DATA, PGM и проверяют его значениями на экране.
  • VPP может иметь разницу в 1 В из-за преобразования переменного тока в постоянный.
  • Если напряжение этих выводов части контроллера и то, что отображается на экране, схожи, программатор работает отлично.
  • Если напряжение отличается, проверяют цепь соответствующих контактов.
  • Дизайн печатной платы

    Эта печатная плата разработана в Eagle 7.2. Размер пластины 7,5 х 7 см, она выполнена на автоматическом травильном станке. Печатная плата также может быть изготовлена с помощью химического травления в домашних условиях.

    Компоненты JA, JB, JC являются перемычками. По схеме тщательно проверяют это и сначала, во время сборки компонентов, устанавливают перемычки. Для обеспечения безопасности PIC18F2550 во время пайки используют 28-контактное основание IC.

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

    Плата расширения может быть легко сделана с использованием перфорированной доски или в специальных заготовок для плат, приобретенных в торговой сети. Для серий микроконтроллеров используется разные платы расширений. Для LVICP от 5 В до 3,3 В необходим регулятор напряжения, такой как LM1117 или аналогичный ему.

    Устройство 3.3 В должно быть запрограммировано только с использованием платы расширения 3.3 В, в противном случае может произойти необратимое повреждение. Некоторые из плат имеют вариант 5 В. Если нужно запрограммировать на 5 В, можно выбрать опцию «Не требовать платы низкого напряжения». Также не рекомендуется размещать 24F-33F в гнездо 30F, которое работает при 5 В.

    Завершение процесса создания

    После изготовления части контроллера и платы расширения, можно сразу перейти к программированию устройства:

  • Находят устройство и серию устройства для программирования.
  • Выбирают подходящую плату расширения устройства.
  • Подключают устройство к плате расширения.
  • Присоединяют плату расширения к блоку контроллера.
  • Подключают соединительный кабель USB B к программатору и к ПК.
  • Открывают OpenProg.exe и убеждаются, что программатор обнаружен.
  • Открывают устройства и выбирают нужное для программирования.
  • Нажимают зеленую стрелку в верхней части, чтобы прочитать устройство.
  • Для записи/прошивки нажимают левую кнопку сверху, чтобы выбрать код «.hex», и нажимают «Ok».
  • Нажимают красную кнопку со стрелкой рядом с зеленой кнопкой со стрелкой, чтобы запрограммировать устройство.
  • Убеждаются, что LED мигает во время программирования, показывая статус процесса.
  • Проверяют результат и убеждаются, что мигание прошло успешно.
  • Последовательная SPI AT45DB161D

    Простой Spi Flash программатор SPI (AT45DB161D) представляет собой 16-мегабитную (2 МБайт) 2,5 В или 2,7 В флэш-память с последовательным интерфейсом, идеально подходящего для широкого спектра приложений, предназначенных для хранения программного кода и данных.

    Всего 2097152 байта (0x1FFFFF) организованы в 4096 страниц с 512 байтами на страницу. Несмотря на то, что чип предлагает различные варианты стирания, библиотека программного обеспечения поддерживает стирание блоков, причем один блок содержит 4 Кбайт.

    Чтобы перезаписать существующие данные, сначала необходимо удалить соответствующий блок. Чтение и запись данных осуществляется довольно простым способом, в основном путем предоставления адреса чтения/записи (от 0 до 0x1FFFFF) и информации о длине данных. Используя существующие базовые функции, можно расширить код для поддержки обширной системы доступа к файлам.

    USB- накопитель EEPROM

    Программатор Spi Flash EEPROM серии 25 с программным обеспечением и поддержкой драйверов и 25-SPI флэш-память 8-контактный/16-контактный имеет следующие функциональные возможности:

  • Автоматическая идентификация модели чипа 25 серия.
  • Поддержка USB в TTL.
  • Автоматическое определение чипа серии 25.
  • Поддержка загрузки STC серии.
  • Процедура однокристального микроконтроллера STC программатора Spi Flash ch441a поддерживает полный спектр загрузки программ для разнообразного ПО: резервного копирования, стирания, программирования, калибровки и других перемещений.
  • Обеспечивает выход питания 5 В — 3,3 В.
  • Размер: 70 мм х 27 мм
  • Ch441SER.EXE — самостоятельная установка архива с USB на последовательный драйвер.
  • Устранение сбоев работы микроконтроллеров

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

  • При любом сбое вначале проверяют блок питания. Иногда случается так, что источник питания не подходит к программатору и требуется внешний источник питания.
  • Выбирают правильный последовательный порт в программном обеспечении.
  • Прежде чем использовать программатор, необходимо установить драйверы, необходимые для его функционирования. Когда подключается программатор в первый раз, он автоматически устанавливает их, если есть соединение с интернетом, иногда потребуется указать расположение драйверов.
  • Повышение напряжения. Многие микроконтроллеры требуют подтягивания в своей цепи, прежде чем могут быть запрограммированы, так микроконтроллер пикасе требует 10 кОм подтягивающего резистора на последовательном выводе, иначе показывает ошибку.
  • Программное обеспечение для программирования не обнаруживает микроконтроллер — это опять-таки проблема с блоком питания, проверяют БП снова и подключают программатор к компьютеру.
  • После выполнения своими руками USB программатора Spi Flash пользователь получит SF, выполненную собственноручно для системного программирования. Она будет легко управляться компьютером через шину USB благодаря удобному интерфейсу и мощным функциями.

    Источник

    PicKit3 внутрисхемный программатор-отладчик / Хабр

    Итак, без чего не обходится практически любое устройство на микроконтроллере? Правильно, без микроконтроллера!  Но, увы, не получится его запрограммировать без программатора (если это конечно не

    Arduino

    ).

    Итак, рассмотрим внутрисхемный программатор-отладчик PicKit 3,

    счастливым

    обладателем коим являюсь я.



    Описание функциональности данного девайса я описывать тут не буду, по скольку вы сами можете почитать  вот тут http://pickit2.ru/doku.php/что.такое.pickit3 что вы собственно уже и сделали. А моей целью является — донести до вас информацию с точки зрения обыкновенного пользователя.

    Заказывая сей девайс в интернет магазине я долго думал, размышлял PicKit2 или PicKit3. В то время я мало знал об этих программаторах, разве что то, что они работают через USB и являются внутрисхемными, плюс можно отлаживать программу непосредственно в микроконтроллере с помощью PicKit 2 и 3.
    Внутрисхемным программированием ICSP (In-circuit serial programming) прямо на конечном устройстве, который мы собираем на PIC контроллере. И нам не придётся вытаскивать его из программатора запрограммированный микроконтроллер и втыкать его обратно в конечную схему. А отлаживать его было бы как сложно в таких условиях? Так что ICSP вещь очень удобная и практичная. Единственно нужно только предусмотреть разъём ICSP/ICD на конечном устройстве для подключения программатора.

    Об отличиях PicKit 3 от Pickit2 я знал мало, но рассуждал логически так. PicKit 2 проверенный временем и людьми, надёжный и удобный. А PicKit 3 должно быть следующая версия, более доработанный, более мощный, современный и функциональный чем  PicKit 2. К тому же PicKit 3 стоил не сильно дороже чем программатор предыдущей версии. И хотя функциональности Пиккит 2 мне полностью было предостаточно в итоге было решено купить PicKit 3 с расчётом на будущее, так сказать «на вырост».

    Вот прислали почтой мне эту красивую коробочку. Внутри сам непосредственно программатор, Провод USB-miniUSB. Пара каких то бумажек, среди которых плакат с объяснением как и куда подключать программатор и диск с MPLAB 8.36 и примерами. Естественно всё на английском.
    Достаём, подключаем к компу через прилагаемый шнурок. Компьютер определяет подключенное HID совместимое устройство. Это означает, что дтов для программатора не нужно. Загораются 3 огонька — вроде работает.
    Далее, устанавливаем MPLAB IDE 8.38. С более новыми версиями возникнут определённые проблемы, до тех пор, пока в новых версиях не устранят баг. О проблемах и их решении в новых версиях я расскажу чуть позже.
    Установили, запускаем! Лезем в меню Programmer — Select Programmer — Pickit 3. Мплаб должен определить программатор, но если он не подключен к контроллеру, или на контроллер не подано питание то он ругнётся об этом. При первом подключении Мплаб сказал что нашёл в инете более новую прошивку для программатора и предложил её загрузить и закачать — соглашаемся!
    Хотелось бы отдельно заострить внимание на питании микроконтроллера. Тут возможны 2 варианта:
    1. питание от внешнего источника;
    2. питание от программатора.
    Если внешнего источника питания у вас нет, то выбираем в настройках Programmer — Settings… и идём на вкладку Power. Ставим галочку и меняем значение величины напряжения если требуется.

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

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

    Теперь о бочке дёгтя в ложке мёда. Недостатков, пока что, у PicKit3 больше чем достоинств по сравнению с PicKit2. Начнём с того, что для второго пиккита есть русская документация, а для третьего я не нашёл. Кроме того, программировать через PICkit 3 можно только в среде MPLAB IDE, а для второго пиккита кромеMPLAB IDE есть специальная компактная и удобная утилита PICkit 2 Programmer. И в завершении хочу сказать что в Linux (не всем же под виндой сидеть) я не нашёл вооообще программ, для программирования через PICkit 3, а для PICkit 2 есть. И хотя в будущем эти проблемы решаемы, но сейчас пока по моему скромному мнению этот программатор не стоит своих денег и по этому лучше, надёжней и дешевле будет приобрести PICkit 2.

    Давайте разберемся, как сделать программатор своими руками

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

    Общая информация

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

    Техническое описание

    Для упрощения печатной платы можно исключить из схемы элементы индикации. На работоспособности прибора это никак не отразится, ведь они нужны исключительно для наглядности, чтобы пользователь видел, в каком режиме находится USB-программатор PIC. Однако эту же информацию можно увидеть и на мониторе персонального компьютера (с помощью программного обеспечения «WinPic800» версий 3.55 B или 3.55 G). Итак, опишем облегченную версию устройства. Сигнальные выводы Vpp1 и Vpp2 предназначены для микроконтроллеров с различным типом корпусов (разное количество выводов). Вывод Vpp/ICSP нужен для внутрисхемного программирования. Оставшиеся выводы типовые. Схему данного программатора можно развести на односторонней печатной плате. Адаптер, используемый для этого устройства, является универсальным, его можно подключать к другим программаторам PIC-микроконтроллеров.

    Настройка устройства

    Итак, собрав схему, проводим первое включение. В результате на экране компьютера появится сообщение: «Найдено новое оборудование «GrabadorTodoPic-USB sammer 2005». После этого ПК предложит установить драйверы для этого устройства. Их можно найти в управляющей программной оболочке «WinPic800». Указываем путь нахождения драйверов: \WinPic8003.55G\GTP-USB\DriverGTP-USB\. Следует заметить, что описанная в статье схема проверена на практике, она работает с программной оболочкой «WinPic800» версий 3.55B и 3.55G. С другими версиями программатор работать не будет. Производим настройку: в меню «Установки – Оборудование» необходимо выбрать «GTP-USB-#F1» или «GTP-USB-#0» и нажать «Применить». После этого проводим тест нашего оборудования. В результате на мониторе появится сообщение: «Opening GTP-USB#0 Ind #0 Hardware Ok. V-3.55». Вот и все, устройство готово к работе. Как видите, собрать программатор своими руками несложно. Прибор считывает информацию со скоростью 1-2 секунды, запись производит за 3-5 секунд.

    Заключение

    Многие радиолюбители предпочитают изготавливать инструменты для себя самостоятельно, так как себестоимость такого оборудования существенно отличается от фирменного. Существует множество технических решений, позволяющих собрать устройство любого типа, в том числе и программатор чипов картриджей практически всех видов лазерных и струйных принтеров. Такие устройства подключаются к персональному компьютеру с помощью USB-порта, а к устройству — через СОМ-порт. Схема самого программатора элементарна, не требует дополнительных настроек, а себестоимость составит всего 2-3 доллара.

    Модуль RC036. PICKIT 2 W. USB Программатор PIC контроллеров, микросхем памяти EEPROM и ключей KeeLOQ

    Полный схемотехнический аналог фирменного программатора PICKIT 2 компании Microchip. Назначение:

    Простой USB программатор PICKIT 2 W для микроконтроллеров PIC, микросхем памяти и ключей KeeLOQ производства компании Microchip Technology Inc.
    Программатор поддерживается Интегрированной средой разработки MPLAB-IDE, и собственной программой PICkit 2 Programmer.
    При использовании с MPLAB-IDE, программатор PICKIT 2 может выполнять функцию Внутрисхемного Отладчика (ICD).

    Исполнение:

    Малогабаритный модуль в пластиковом корпусе с интерфейсом USB и 6-ти контактным разъёмом ICSP.
    Программатор PICKIT 2 питается от USB порта компьютера.
    Подключение микроконтроллеров к программатору PICKIT 2 осуществляется через 6-контактный разъём ICSP. Шаг выводов разъёма 2,54 мм. Ответные разъёмы и кабель для подключения в комплекте

    Список поддерживаемых микросхем: (Версия программы PICkit 2 v2.61)

    Baseline PIC:
    PIC10F200, PIC10F202, PIC10F204, PIC10F206, PIC10F220, PIC10F222
    PIC12F508, PIC12F509, PIC12F510, PIC12F519
    PIC16F505, PIC16F506, PIC16F526
    PIC16F54, PIC16F57, PIC16F59

    Midrange PIC:
    PIC12F609, PIC12HV609
    PIC12F615, PIC12HV615
    PIC12F617
    PIC12F629, PIC12F635, PIC12F675, PIC12F683
    PIC12F752
    PIC16F610, PIC16HV610
    PIC16F616, PIC16HV616
    PIC16F627, PIC16F628
    PIC16F627A, PIC16F628A, PIC16F648A
    PIC16F630, PIC16F631, PIC16F636, PIC16F639, PIC16F676
    PIC16F677, PIC16F684, PIC16F685, PIC16F687
    PIC16F688, PIC16F689, PIC16F690
    PIC16F707
    PIC16F72
    PIC16F73, PIC16F74, PIC16F76, PIC16F77
    PIC16F720, PIC16F721
    PIC16F722
    PIC16F723, PIC16F724, PIC16F726, PIC16F727
    PIC16F722A, PIC16F723A
    PIC16F716
    PIC16F737, PIC16F747, PIC16F767, PIC16F777
    PIC16F785, PIC16HV785
    PIC16F84A, PIC16F87, PIC16F88
    PIC16F818, PIC16F819
    PIC16F870, PIC16F871, PIC16F872
    PIC16F873, PIC16F874, PIC16F876, PIC16F877
    PIC16F873A, PIC16F874A, PIC16F876A, PIC16F877A
    PIC16F882, PIC16F883, PIC16F884, PIC16F886, PIC16F887
    PIC16F913, PIC16F914, PIC16F916, PIC16F917
    PIC16F946
    PIC16F1516, PIC16F1517, PIC16F1518, PIC16F1519
    PIC16F1526, PIC16F1527
    PIC16F1782, PIC16F1783
    PIC12F1822
    PIC16F1823, PIC16F1824
    PIC16F1826, PIC16F1827, PIC16F1828
    PIC16F1825, PIC16F1829
    PIC12F1840
    PIC16F1847
    PIC16LF1902, PIC16F1903, PIC16F1904, PIC16F1906, PIC16F1907
    PIC16F1933, PIC16F1934, PIC16F1936, PIC16F1937
    PIC16F1938, PIC16F1939
    PIC16F1946, PIC16F1947

    PIC18F:
    PIC18F242, PIC18F252, PIC18F442, PIC18F452
    PIC18F248, PIC18F258, PIC18F448, PIC18F458
    PIC18F1220, PIC18F1320, PIC18F2220, PIC18F2320
    PIC18F1230, PIC18F1330
    PIC18F2221, PIC18F2321
    PIC18F2331, PIC18F2410, PIC18F2420, PIC18F2431
    PIC18F2423
    PIC18F2450, PIC18F2455, PIC18F2458, PIC18F2480
    PIC18F2510, PIC18F2515, PIC18F2520, PIC18F2523
    PIC18F2525
    PIC18F2550, PIC18F2553, PIC18F2580, PIC18F2585
    PIC18F2610, PIC18F2620, PIC18F2680
    PIC18F2682, PIC18F2685
    PIC18F4220, PIC18F4221
    PIC18F4320, PIC18F4321, PIC18F4331
    PIC18F4410, PIC18F4420, PIC18F4423
    PIC18F4431, PIC18F4450, PIC18F4455
    PIC18F4458, PIC18F4480
    PIC18F4510, PIC18F4515, PIC18F4520, PIC18F4523
    PIC18F4525, PIC18F4550, PIC18F4553, PIC18F4580
    PIC18F4585
    PIC18F4610, PIC18F4620, PIC18F4680
    PIC18F4682, PIC18F4685
    PIC18F6310, PIC18F6390, PIC18F6393
    PIC18F6410, PIC18F6490, PIC18F6493
    PIC18F6520, PIC18F6525, PIC18F6527, PIC18F6585
    PIC18F6620, PIC18F6621, PIC18F6622, PIC18F6627
    PIC18F6628, PIC18F6680
    PIC18F6720, PIC18F6722, PIC18F6723
    PIC18F8310, PIC18F8390, PIC18F8393
    PIC18F8410, PIC18F8490, PIC18F8493
    PIC18F8520, PIC18F8525, PIC18F8527, PIC18F8585
    PIC18F8621, PIC18F8620, PIC18F8622, PIC18F8627
    PIC18F8628, PIC18F8680
    PIC18F8720, PIC18F8722, PIC18F8723
    PIC18F24J10, PIC18F25J10, PIC18F44J10, PIC18F45J10
    PIC18LF24J10, PIC18LF25J10, PIC18LF44J10, PIC18LF45J10
    PIC18F24J11, PIC18F25J11, PIC18F44J11, PIC18F45J11
    PIC18LF24J11, PIC18LF25J11, PIC18LF44J11, PIC18LF45J11
    PIC18F26J11, PIC18F46J11
    PIC18LF26J11, PIC18LF46J11
    PIC18F24J50, PIC18F25J50, PIC18F44J50, PIC18F45J50
    PIC18LF24J50, PIC18LF25J50, PIC18LF44J50, PIC18LF45J50
    PIC18F26J50, PIC18F46J50
    PIC18LF26J50, PIC18LF46J50
    PIC18F63J11, PIC18F63J90, PIC18F64J11, PIC18F64J90
    PIC18F65J10, PIC18F65J11, PIC18F65J15
    PIC18F65J50, PIC18F65J90
    PIC18F66J10, PIC18F66J11, PIC18F66J15, PIC18F66J16
    PIC18F66J50, PIC18F66J55, PIC18F66J60, PIC18F66J65
    PIC18F66J90
    PIC18F67J10, PIC18F67J11, PIC18F67J50, PIC18F67J60
    PIC18F67J90
    PIC18F83J11, PIC18F83J90, PIC18F84J11, PIC18F84J90
    PIC18F85J10, PIC18F85J11, PIC18F85J15, PIC18F85J50
    PIC18F85J90
    PIC18F86J10, PIC18F86J11, PIC18F86J15, PIC18F86J16
    PIC18F86J50, PIC18F86J55, PIC18F86J60, PIC18F86J65
    PIC18F86J90
    PIC18F87J10, PIC18F87J11, PIC18F87J50, PIC18F87J60
    PIC18F86J90
    PIC18F96J60, PIC18F96J65
    PIC18F97J60
    PIC18F13K22, PIC18F14K22
    PIC18F13K50, PIC18F14K50
    PIC18F23K20, PIC18F24K20, PIC18F25K20, PIC18F26K20
    PIC18F43K20, PIC18F44K20, PIC18F45K20, PIC18F46K20
    PIC18F23K22, PIC18F24K22, PIC18F25K22, PIC18F26K22
    PIC18F43K22, PIC18F44K22, PIC18F45K22, PIC18F46K22

    PIC24:
    PIC24F04KA200, PIC24F04KA201
    PIC24F08KA101, PIC24F08KA102
    PIC24F16KA101, PIC24F16KA102
    PIC24FJ16GA002, PIC24FJ16GA004
    PIC24FJ32GA002, PIC24FJ32GA004
    PIC24FJ32GA102, PIC24FJ32GA104
    PIC24FJ32GB002, PIC24FJ32GB004
    PIC24FJ48GA002, PIC24FJ48GA004
    PIC24FJ64GA002, PIC24FJ64GA004
    PIC24FJ64GA102, PIC24FJ64GA104
    PIC24FJ64GB002, PIC24FJ64GB004
    PIC24FJ64GA006, PIC24FJ64GA008, PIC24FJ64GA010
    PIC24FJ64GB106, PIC24FJ64GB108, PIC24FJ64GB110
    PIC24FJ96GA006, PIC24FJ96GA008, PIC24FJ96GA010
    PIC24FJ128GA006, PIC24FJ128GA008, PIC24FJ128GA010
    PIC24FJ128GA106, PIC24FJ128GA108, PIC24FJ128GA110
    PIC24FJ128GB106, PIC24FJ128GB108, PIC24FJ128GB110
    PIC24FJ192GA106, PIC24FJ192GA108, PIC24FJ192GA110
    PIC24FJ192GB106, PIC24FJ192GB108, PIC24FJ192GB110
    PIC24FJ256GA106, PIC24FJ256GA108, PIC24FJ256GA110
    PIC24FJ256GB106, PIC24FJ256GB108, PIC24FJ256GB110
    PIC24HJ12GP201, PIC24HJ12GP202
    PIC24HJ16GP304
    PIC24HJ32GP202, PIC24HJ32GP204
    PIC24HJ32GP302, PIC24HJ32GP304
    PIC24HJ64GP202, PIC24HJ64GP204
    PIC24HJ64GP206, PIC24HJ64GP210, PIC24HJ64GP506
    PIC24HJ64GP502, PIC24HJ64GP504, PIC24HJ64GP510
    PIC24HJ128GP202, PIC24HJ128GP204
    PIC24HJ128GP206, PIC24HJ128GP210, PIC24HJ128GP306
    PIC24HJ128GP310
    PIC24HJ128GP502, PIC24HJ128GP504
    PIC24HJ128GP506, PIC24HJ128GP510
    PIC24HJ256GP206, PIC24HJ256GP210, PIC24HJ256GP610

    dsPIC30:
    dsPIC30F1010
    dsPIC30F2010, dsPIC30F2011, dsPIC30F2012
    dsPIC30F2020, dsPIC30F2023
    dsPIC30F3010, dsPIC30F3011, dsPIC30F3012
    dsPIC30F3013, dsPIC30F3014
    dsPIC30F4011, dsPIC30F4012, dsPIC30F4013
    dsPIC30F5011, dsPIC30F5013, dsPIC30F5015, dsPIC30F5016
    dsPIC30F6010A, dsPIC30F6011A, dsPIC30F6012A
    dsPIC30F6013A, dsPIC30F6014A, dsPIC30F6015

    dsPIC33:
    dsPIC33FJ12GP201, dsPIC33FJ12GP202
    dsPIC33FJ16GP304
    dsPIC33FJ32GP202, dsPIC33FJ32GP204
    dsPIC33FJ32GP302, dsPIC33FJ32GP304
    dsPIC33FJ64GP202, dsPIC33FJ64GP204
    dsPIC33FJ64GP206, dsPIC33FJ64GP306, dsPIC33FJ64GP310
    dsPIC33FJ64GP206A, dsPIC33FJ64GP306A, dsPIC33FJ64GP310A
    dsPIC33FJ64GP706, dsPIC33FJ64GP708, dsPIC33FJ64GP710
    dsPIC33FJ64GP706A, dsPIC33FJ64GP710A
    dsPIC33FJ64GP802, dsPIC33FJ64GP804
    dsPIC33FJ128GP202, dsPIC33FJ128GP204
    dsPIC33FJ128GP206, dsPIC33FJ128GP306, dsPIC33FJ128GP310
    dsPIC33FJ128GP206A, dsPIC33FJ128GP306A, dsPIC33FJ128GP310A
    dsPIC33FJ128GP706, dsPIC33FJ128GP708, dsPIC33FJ128GP710
    dsPIC33FJ128GP706A, dsPIC33FJ128GP710A
    dsPIC33FJ128GP802, dsPIC33FJ128GP804
    dsPIC33FJ256GP506, dsPIC33FJ256GP510, dsPIC33FJ256GP710
    dsPIC33FJ256GP506A, dsPIC33FJ256GP510A, dsPIC33FJ256GP710A
    dsPIC33FJ06GS101, dsPIC33FJ06GS102, dsPIC33FJ06GS202
    dsPIC33FJ16GS402, dsPIC33FJ16GS404
    dsPIC33FJ16GS502, dsPIC33FJ16GS504
    dsPIC33FJ12MC201, dsPIC33FJ12MC202
    dsPIC33FJ16MC304
    dsPIC33FJ32MC202, dsPIC33FJ32MC204
    dsPIC33FJ32MC302, dsPIC33FJ32MC304
    dsPIC33FJ64MC202, dsPIC33FJ64MC204
    dsPIC33FJ64MC506, dsPIC33FJ64MC508, dsPIC33FJ64MC510
    dsPIC33FJ64MC706, dsPIC33FJ64MC710
    dsPIC33FJ64MC802, dsPIC33FJ64MC804
    dsPIC33FJ128MC202, dsPIC33FJ128MC204
    dsPIC33FJ128MC506, dsPIC33FJ128MC510
    dsPIC33FJ128MC706, dsPIC33FJ128MC708, dsPIC33FJ128MC710
    dsPIC33FJ128MC802, dsPIC33FJ128MC804
    dsPIC33FJ256MC510, dsPIC33FJ256MC710

    PIC32:
    PIC32MX320F032H, PIC32MX320F064H
    PIC32MX320F128H, PIC32MX320F128L
    PIC32MX340F128H, PIC32MX340F128L
    PIC32MX340F256H
    PIC32MX340F512H
    PIC32MX360F256L, PIC32MX360F512L
    PIC32MX420F032H
    PIC32MX440F128L, PIC32MX440F128H
    PIC32MX440F256H
    PIC32MX440F512H
    PIC32MX460F256L, PIC32MX460F512L

    KEELOQ® HCS:
    HCS200, HCS201
    HCS300, HCS301, HCS320
    HCS360, HCS361, HCS362

    11 Series Serial EEPROM:
    11LC010, 11AA010
    11LC020, 11AA020
    11LC040, 11AA040
    11LC080, 11AA080
    11LC160, 11AA160

    24 Series Serial EEPROM:
    24C00, 24LC00, 24AA00
    24C01B, 24LC01B, 24AA01B
    24C02B, 24LC02B, 25AA02B
    24C04B, 24LC04B, 24AA04B
    24C08B, 24LC08B, 24AA08B
    24LC16B, 24AA16B
    24LC32A, 24AA32A
    24LC64, 24FC64, 24AA64
    24LC128, 24FC128, 24AA128
    24LC256, 24FC256, 24AA256
    24LC512, 24FC512, 24AA512
    24LC1025, 24FC1025, 24AA1025

    25 Series Serial EEPROM:
    25LC010A, 25AA010A, 25LC020A, 25AA020A, 25LC040A, 25AA040A
    25LC080A, 25AA080A, 25LC080B, 25AA080B, 25LC160A, 25AA160A, 25LC160B, 25AA160B
    25LC320A, 25AA320A, 25LC640A, 25AA640A
    25LC128, 25AA128, 25LC256, 25AA256, 25LC512, 25AA512, 25LC1024, 25AA1024

    93 Series Serial EEPROM:
    93LC46A, 93AA46A, 93C46A, 93LC46B, 93AA46B, 93C46B, 93LC46C, 93AA46C, 93C46C
    93LC56A, 93AA56A, 93C56A, 93LC56B, 93AA56B, 93C56B, 93LC56C, 93AA56C, 93C56C
    93LC66A, 93AA66A, 93C66A, 93LC66B, 93AA66B, 93C66B, 93LC66C, 93AA66C, 93C66C
    93LC76A, 93AA76A, 93C76A, 93LC76B, 93AA76B, 93C76B, 93LC76C, 93AA76C, 93C76C
    93LC86A, 93AA86A, 93C86A, 93LC86B, 93AA86B, 93C86B, 93LC86C, 93AA86C, 93C86C

    MCP250xx CAN:
    MCP25020, MCP25025
    MCP25050, MCP25055

    Документация и программное обеспечение для программатора PICKIT 2.
    Ссылка на сайт компании Microchip

    Программирование микросхем EEPROM серии 24x:
    Вывод разъёма программатора Вывод микросхемы серии 24x (корпус DIP)
    (2) VDD (8) VCC
    (3) GND (4) VSS
    (5) PGC (6) SCL
    (6) AUX (5) SDA (подключить подтягивающий резистор 1 кОм на VCC)
      (7) WP (можно не подключать, в микросхеме этот вывод подтянут резистором к GND, то есть Write Protect отключен.)
      (1), (2), (3) Адресные входы, подключать к VDD или GND в соответствии с Data Sheet. (Обычно, все на GND).
    Комплектность:
    PICKIT2 W — Программатор PIC-контроллеров, микросхем памяти EEPROM и ключей KeeLOQ.
    Кабель удлинитель (USB-A Mini-USB-B 5 pin.) *1шт.
    Кабель ICSP (BLS-1×6 BLS-1×6) *1шт.

    Как создать свой собственный программатор 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. Резистор
    5. (ИК-7НО, 100К, 470-2НО, 1М, 470К, 330-3НО)
    6. Конденсатор (0.01uF-3Nos, 2.2uF-2Nos, 10uF, 22pf-2Nos)
    7. Кристалл 8 МГц
    8. Разъем USB
    9. 5-контактный разъем (2 шт.)

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

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

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


    Самодельный программист. Самодельный программатор для контроллеров 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, *, * 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.

    Также добавлен подтягивающий резистор 2 кОм, который подключается между выводом 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 кОм
    R13 100 кОм
    Конденсаторы 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. Необходимо распечатать изображение платы в зеркальном отображении .

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

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

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

    После обновления нужно отключить программатор от ПК и снять перемычку 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 (стабилизация напряжения 5,1В)
    • VD7 — 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В … Вот и я решил Обратимся к моему первому ПК , который давно пылится и ждал своего звездного часа (и все еще ждал).
    Итак, включаем компьютер и в первую очередь устанавливаем программу 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 900

    Примечание: микроконтроллеры, отмеченные звездочкой (*), должны быть подключены к программатору через разъем 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 сек).

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

    Руководство по микроконтроллерам

    PIC — Урок № 2

    Как и было обещано, эта часть начинается с простого руководства по программированию микроконтроллера PIC12F675, в котором показано, как его программировать и использовать в качестве простого светодиодного мигалки.Предполагается, что вы успешно сконструировали свою собственную мини-плату для разработки PIC и у вас в руках есть USB-программатор PIC (PIC Kit 2). Что ж, тогда будьте готовы подготовить свое маленькое оборудование для этого небольшого эксперимента, как описано ниже.

    Аппаратная проводка

    Как видите, аппаратное обеспечение очень простое и требует всего 5 мм красного светодиода и резистора 1 кОм в дополнение к плате разработки PIC mini. Светодиод подключается между GPIO 2 (вывод 5) микроконтроллера PIC 12F675 и шиной заземления (0 В) через токоограничивающий резистор 1 кОм.

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

    Для простоты здесь используется «готовый к использованию» шестнадцатеричный код. Просто скачайте шестнадцатеричный файл (Hello_LED.Hex) по указанной ссылке и запишите его в микроконтроллер PIC12F675 с помощью программатора PIC Kit 2. Обратите внимание, что это всего лишь простой подход к тестированию микроконтроллера PIC12F675 вашей мини-платы для разработки. Из следующей части вы узнаете, как программировать микроконтроллеры PIC, используя ваши собственные коды!

    PIC Kit 2 Руководство программиста микроконтроллера

    Чтобы максимально использовать возможности программатора микроконтроллеров PIC Kit 2, рекомендуется загрузить руководство пользователя PIC Kit 2 с http: // www.pic16.com/soft/PICkit2_USER_GUIDE.pdf В этом руководстве пользователя описывается, как использовать программатор микроконтроллеров PIC Kit 2. Другие полезные примечания также включены в эту подробную официальную документацию.
    Программатор микроконтроллеров PIC KIt 2 может программировать микроконтроллеры PIC, которые установлены в цепи приложения, с помощью внутрисхемного последовательного программирования (ICSP). Для внутрисхемного последовательного программирования (ICSP) требуется пять сигналов:

    • VPP / MCLR — Программирование напряжения (при подаче прибор переходит в режим программирования)
    • PGC или ICSPCLK — Программирование часов (однонаправленная синхронная последовательная линия синхронизации от программатора к цели)
    • PGD или ICSPDAT — Программирование данных (двунаправленная синхронная линия последовательных данных)
    • VDD — Блок питания (положительное напряжение)
    • VSS — Источник питания (заземление)

    Если вы знакомы с программатором микроконтроллера PIC Kit 2, соедините мини-макетную плату (MDB) с PIC Kit 2, как показано ниже.Поскольку вы можете безопасно запитать мини-макетную плату (в это время) с помощью самого программатора микроконтроллера PICkit ™ 2, не забудьте выключить питание мини-макетной платы во время программирования ICSP!

    После этого подключения ICSP подключите программатор PIC Kit 2 к вашему ПК и откройте программное обеспечение PICKit2. После открытия PICKit2 Programmer Tool щелкните Erase , а после удаления импортируйте загруженный шестнадцатеричный файл из сохраненного места ( File → Import ).

    После импорта шестнадцатеричного файла запишите программу в PIC, нажав кнопку Запись . После программирования вы можете проверить программу в микроконтроллере PIC с помощью файла Hex, используя кнопку Verify . Это можно использовать для проверки того, повреждена ли программа в микроконтроллере. Теперь удалите проводку ICSP и включите мини-плату для разработки от собственного источника питания. Если все в порядке, вы можете видеть, что светодиод непрерывно мигает с частотой около 4 Гц при рабочем цикле 50%.

    Да, теперь вы уверены, что ваш PIC12F675 (в вашем MDB) работает нормально, и ваш программатор микроконтроллера PIC Kit 2 может успешно записывать шестнадцатеричные файлы с вашего компьютера на микросхему микроконтроллера. Конечно же, неплохой вечер!

    → Часть 3
    ← Часть 1

    Yinhing USB-программатор USB-программатор PIC Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами

    Компоненты компьютера Внутренние компоненты Yinhing USB-программатор USB-программатор PIC USB-универсальный программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10-ю адаптерами vistamhc.ком
    1. Дом
    2. Дом и сад
    3. Электроника
    4. Компьютеры и аксессуары
    5. Компоненты компьютера
    6. Внутренние компоненты
    7. Карты портов ввода / вывода
    8. Карты портов USB
    9. Программатор USB Yinhing USB-программатор PIC USB Универсальный программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами

    USB-программатор PIC Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10-ю адаптерами: карты USB-портов — ✓ БЕСПЛАТНАЯ ДОСТАВКА при соответствующих критериях покупки.Поддержка записи одновременно с 4 программистами на каждом компьютере. 。 Минимальная громкость и самое низкое энергопотребление и отсутствие ощущения тепла в процессе. 。 Все чипы не нуждаются во внешнем источнике питания, поддерживают последовательные и параллельные серии 40/44 / 48PIN FLASH большой емкости。 Особенности: Поддержка одновременной записи с 4 программаторами на каждом компьютере. Минимальная громкость и самое низкое энергопотребление, а также отсутствие ощущения тепла в процессе. Все микросхемы не нуждаются во внешнем блоке питания. самая мощная 4-х уровневая максимальная токовая защита VCC / VPP.Короткое замыкание не сбрасывает ПК. 。 Широкий спектр поддержки микросхем 15000+, USB-программатор Yinhing, собственное низкое энергопотребление, гарантирующее, что порт USB может обеспечивать достаточную мощность. 。 Лучшая внутренняя 40-контактная защита от перенапряжения. Поддержка последовательных и параллельных серий 40/44 / 4PIN FLASH большой емкости. Уникальный последовательный интерфейс ICSP. Поддержка последовательной загрузки и высокоскоростного параллельного программирования высокого напряжения. Примечание. TL66CS не поддерживает интегральную схему серии ICSP Test CMOS4000 74/4.Может быть обнаружена ошибка схемы затвора. Серийный номер чипа авто самый полный и практичный. Операция шифрования оригинального чипа на микроконтроллере AVR с внутренним байтом калибровки RC. Программное обеспечение Decrypt не может быть запущено напрямую на другом чипе того же типа. 。 Спецификация: Материал: печатная плата。 Вес: 7 г。。 В пакет включено: 1 * Программатор TL66II Plus。 1 * USB-кабель (как для источника питания, так и для передачи данных)。 10 * адаптеров。 1 * Кабель ICSP (6 контактов)。 1 * 2 Флэш-адаптер с последовательным периферийным интерфейсом (без этого адаптера.самая мощная 4-х уровневая максимальная токовая защита VCC / VPP. Короткое замыкание не сбрасывает ПК. Широкий спектр поддержки чипов 1000+. зажим не может использоваться на TL66 для программирования последовательного периферийного интерфейса 2 флеш-чипов!)。 1 * Зажим для программирования / тестирования SOIC SMD。 1 * -контактный соединительный кабель。 1 * Головка контакта。。。。。, USB-программатор PIC USB Универсальный программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами: Компьютеры и аксессуары. Купить программатор USB Yinhing. собственное низкое энергопотребление, гарантирующее, что порт USB может обеспечить достаточную мощность.Лучшая внутренняя 40-контактная защита от перенапряжения.







    Yinhing USB-программатор USB-программатор PIC Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами





    32 х 48 дюймов Rainier 2 Холщовый комплект с плавающей рамкой ArtWall из двух частей Cody Yorks Seattle and Mt, от центра до центра 5-1 / 16 дюйма 128 мм бронзовый протертый маслом гикори с выделением фурнитуры P3012-OBH Studio Collection Pull, Plants-vs-Zombies-Xmas Сумка-тоут для ноутбука Легкий водоотталкивающий чехол для переноски для ноутбука / MacBook / Ultrabook / Chromebook Plants vs Zombies , Plant , Zombie , Classic Game White 13inch.Матрас Queen Bluestone Down Alternative с приталенной юбкой. Delton 4,25 дюйма, смола, новогодняя шапка, сова, набор из 2. USB-программатор Yinhing USB-программатор PIC USB-универсальный программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с адаптером 10 , коврик Surya Area 22 x 3, средний серый, RONSHIN ConsumerElectronics 1 / 4 Винт штатива для вспышки камеры Алюминиевый адаптер для крепления на горячем башмаке, 10 ГБ IDE LB10A492 Quantum, Studio Designs Home 71019 Квадратный журнальный столик Pergola 36 Chrome / Java, ПЕРЕДАЧА 9230 Набор адаптеров для привода из трех метрических гаечных ключей с трещоткой 9230D. Yinhing USB-программатор USB-программатор PIC Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами , настольная память OFFTEK Запасная оперативная память 512 МБ для Sony Vaio VGC-RB33 Series PC3200 — без ECC, о дизайне лица Профессиональная бабушка Небольшой стол для вывески 1,5 В x 3,5 Вт Серый Черный, Освещение WAC HR-2LED-T509N-C-CB Встраиваемый светильник Downlight 2-дюймовая линза Настенная машина с квадратной отделкой Медная бронза. Карта мира Синяя 15,6-дюймовая большая сумка для ноутбука Сумка для ноутбука Сумка для ноутбука Сумка для ноутбука Сумка для ноутбука Портфельная сумка через плечо Идеально подходит для офисов Университета, Sandvik Coromant R846-1290-30-A1A 1220 Corodrill Delta-C Solid Carbide Drill для HRSA 0.5079 Сверло 0.5079 Сверло 6256418 Corodrill 846 для ISO S 12,9 мм Внутренняя охлаждающая жидкость 3 x D. USB-программатор Yinhing USB-программатор PIC Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с адаптером 10 ,


    Yinhing USB-программатор USB-программатор PIC Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами

    Чтобы начать практику или узнать больше, давайте поговорим…

    Yinhing USB-программатор USB-программатор PIC Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами

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

    PIC USB Универсальный программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами Yinhing USB-программатор USB, USB-программатор PIC USB-универсальный программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами: карты портов USB — ✓ БЕСПЛАТНО ДОСТАВКА возможна для соответствующих покупок, Купить USB-программатор Yinhing, Потрясающая мода, Удивительные цены, Платформа для покупок товаров, Получите лучшие предложения, Официальный онлайн-сайт — бесплатный возврат.Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптерами Yinhing USB-программатор USB-программатор PIC, Yinhing USB-программатор USB-программатор PIC Универсальный USB-программатор для TL866II Plus EEPROM Flash 8051 AVR MCU GAL PIC с 10 адаптером.

    Как запрограммировать микроконтроллер 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) gpio_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) gpio_1 12 PD14 (RGMII_NULL / MII_TXERR / RMII_NULL) gpio_110
    13 PA0 (UART2_TX / JTAG_MS0 / PA_EINT0) gpio_0 14 ЗЕМЛЯ
    15 PA3 (UART2_CTS / JTAG_DI0 / PA_EINT3) gpio_3 16 PC4 (NAND_CE0) gpio_68
    17 3.3В 18 PC7 (NAND_RB1) gpio_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) gpio_8 32 PG8 (UART1_RTS / PG_EINT8) gpio_200
    33 PA9 (SIM_RST / PA_EINT9) gpio_9 34 ЗЕМЛЯ
    35 PA10 (SIM_DET / PA_EINT10) gpio_10 36 PG9 (UART1_CTS / PG_EINT9) gpio_201
    37 PA20 (PCM0_DOUT / SIM_VPPEN / PA_EINT20) NA 38 PG6 (UART1_TX / PG_EINT6) gpio_198
    39 ЗЕМЛЯ 40 PG7 (UART1_RX / PG_EINT7) gpio_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. ВПП
    5. GND

    Эта компоновка также будет работать на 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 с.14
    14-битное слово, новый алгоритм PIC10F / 12F / 16F n14
    16-битное слово PIC18F p16
    16-битное слово, новый алгоритм PIC18F n16
    24-битное слово PIC24 / dsPIC p24
    32-битное слово PIC32 p32

    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, либо этот вывод настроен неправильно.

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

    Загрузки> Пример кода> Платы для разработки PIC> PIC24> Modtronics

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

    Выберите свой проект

    picoTRONICS24 PIC24 Development Board
    nanoTRONICS24 PIC24 Development Board
    RFM22B Breakout Board
    PIC / PIC24 Open Source USB Stack
    Пример кода PIC / PIC24
    Пример кода PIC / PIC24 900 предназначен для работы на нашей плате разработки picoTRONICS24 PIC.Он разработан для работы на микроконтроллерах Microchips PIC24FJ64GB004 PIC. Хотя он был либо соблюден для PIC24FJ64GB004, либо проект настроен для PIC24FJ64GB004, его достаточно легко заменить для другого устройства серии PIC24. Наш пример кода реализует следующие функции на нашей плате для разработки PIC: USB, UART, светодиоды, таймеры, выбор периферийных контактов (PPS) и ряд других функций.

    Предварительно скомпилированный файл HEX - все, что вам нужно сделать, это загрузить его. Совет по развитию - пример проекта

    Этот пример кода предназначен для нашей платы разработки nanoTRONICS24 PIC.Он разработан для работы на микроконтроллерах Microchips PIC24FJ64GB004 PIC. Хотя он был либо соблюден для PIC24FJ64GB004, либо проект настроен для PIC24FJ64GB004, его достаточно легко заменить для другого устройства серии PIC24. Наш пример кода реализует следующие функции на нашей плате для разработки PIC: USB, UART, светодиоды, таймеры, выбор периферийных контактов (PPS) и ряд других функций.

    ЖК-библиотека - переносимая для других устройств PIC24

    ЖК-библиотека nanoTRONICS24 - пример проекта

    QP-nano Traffic Light (PELICAN) Порт nanoTRONICS24

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

    Фреймворк QP-nano можно загрузить с веб-сайта Quantum Leaps или непосредственно с SourceForge. Он распространяется как открытый исходный код под Стандартной общественной лицензией GNU (GPL). Таким образом, наш порт nanoTRONICS24 из примера PELICAN распространяется под той же лицензией.

    Вы можете загрузить заметку по применению, предоставленную Quantum Leaps, в которой подробно описан пример PELICAN , здесь .

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

    nanoTRONICS24 - Порт светофора QP-nano - Пример проекта и исходный код

    Этот код является демонстрационным кодом HopeRF, который они предоставляют беспроводной модуль RFM22B.Этот код не тестировался для работы с нашими коммутационными платами RFM22B.

    RFM22B Код демонстрации, предоставленный производителем

    Этот код также совместим со следующими продуктами, которые мы предлагаем:

    PIC / PIC24 USB-стек с открытым исходным кодом

    Мы рекомендуем и используем USB-стек M-Stack с открытым исходным кодом для Microchip PIC18 / Микроконтроллеры PIC24 и PIC32. Более подробную информацию о стеке (и исходном коде) можно загрузить из программного обеспечения Signal11 по адресу: их веб-сайт или Github. Хотя Microchip предоставляет очень функциональный стек USB для загрузки с этого веб-сайта, к сожалению, это не открытый исходный код, и лицензионное соглашение запрещает третьим сторонам (например, нам) распространять наш собственный код.

    Вы можете загрузить пример кода для наших руководств по PIC / PIC24 ниже:

    Программирование 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В ВДД; 1,8-14В ВПП)
    • Не имеет отдельного приложения для программирования и может использоваться только с Microchip IDE

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


    DIY 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
    I, IV, Q6 BS250P, VP2106, ZVP3306A 689-VP2106N3-G ZVP3306A-ND
    Q2, Q3, Q5, Q7 2N7000 512-2N7000TA 2N7000TACT-ND
    D1, D2 БАТ85 78-BAT85S 568-1617-1-ND
    D3 Зеленый светодиод 5 мм 604-WP7113SGD 754-1263-ND
    D4 Желтый светодиод 5 мм 604-WP7113YD 754-1284-НД
    D5 Красный светодиод 5 мм 604-WP7113ID 754-1264-ND
    X1 Кристалл, 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-НД
    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-НД
    C9 47 мкФ 16 В 647-UVR1C470MDD1TD 493-1039-ND
    L1 680uH 652-RLB0608-681KL 811-2051-ND
    S1 Кнопка 506-ФСМЧ 450-1665-НД
    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 показана ниже.

    alexxlab

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

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