Программатор для pic своими руками: Простейший программатор для PIC

Содержание

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

USB программатор PIC контроллеров — 3.8 out of 5 based on 11 votes

Фотогорафии программатора предоставленны Ансаганом Хасеновым

В данной статье рассматриваются практические аспекты сборки несложного USB программатора PIC микроконтроллеров, который имеет оригинальное название GTP-USB (Grabador TodoPic-USB). Существует старшая модель этого программатора GTP-USB plus который поддерживает и AVR микроконтроллеры, но предлагается за деньги. Однозначных сведений по схемам и прошивкам к GTP-USB plus обнаружить не удалось. Если у вас есть информация по GTP-USB plus, прошу связаться со мной.

Итак, GTP-USB. Данный программатор собран на микроконтроллере PIC18F2550. GTP-USB нельзя рекомендовать начинающим, т.к. для сборки требуется прошить PIC18F2550 и для этого требуется программатор. Замкнутый круг, но не настолько замкнутый, чтобы это стало препятствием для сборки.

Из оригинальной схемы GTP-USB исключены элементы индикации для упрощения рисунка печатной платы. Основной индикатор — это монитор вашего компьютера, на котором из программы WinPic800 версий 3.55G или 3.55B вы можете наблюдать за процессом программирования.

Облегченная схема GTP-USB.

Сигнальные линии Vpp1 и Vpp2 определены под микроконтроллеры в корпусах с различным количеством выводов. Линия Vpp/ICSP определена для внутрисхемного программирования. Остальные линии типовые.

Программатор собран на односторонней печатной плате .

Адаптер можно безболезненно подключать к любому другому программатору PIC-микроконтроллеров, что, безусловно, удобно.

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

Затем следует традиционный запрос на установку драйвера. Драйвер расположен в управляющей программе WinPic800 по примерному пути \WinPic800 3.55G\GTP-USB\Driver GTP-USB\.


Соглашаемся с предупреждениями и продолжаем установку.

Обращаю внимание. Данная схема программатора и прошивка к нему проверены на практике и работают с управляющей программой WinPic800 версий 3.55G и 3.55B. Более старшие версии, например, 3.63C не работают с этим программатором. Производим настройку управляющей программы: в меню Settings — Hardware (Установки — Оборудование) выбираем GTP-USB-#0 или GTP-USB-#F1 и нажимаем Apply (Применить).

Нажимаем на панели кнопку и производим тест оборудования. В результате успешного тестирования появляется сообщение (см. ниже), которое не может нас не радовать.

Данный программатор отлично работал со следующими контроллерами (из того что было в наличии): PIC12F675, PIC16F84A, PIC16F628A, PIC16F874A, PIC16F876A, PIC18F252. Тест контроллеров, запись и чтение данных — выполнены успешно. Скорость работы впечатляет. Чтение 1-2 сек. Запись 3-5 сек. Глюков не замечено. Часть зашитых МК протестировано в железе — работает.


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

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

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

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

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

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

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

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

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

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

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

LM7812

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

LM7805

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

КТ502Е

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

КТ3102Е

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

1N4148

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

1 кОм

3

Программатор пик контроллеров usb своими руками.

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

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

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

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

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

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

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

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

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

Рассказать в:
Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей — не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом — как его запрограммировать. Одним из самых простых вариантов программаторов является JDM программатор.
Программа — программатор ProgCode v 1.0Эта программа работает в WindowsXP. Позволяет программировать PIC контроллеры среднего семейства(PIC16Fxxx) через COM порт компьютера. Индикатор подключения программатора(в правом верхнем углу окна) при отсутствии программатора на выбранном в настройках порту окрашивается в красный цвет. Если программатор подключен — программа обнаруживает его и индикатор в правом верхнем углу принимает вид, который показан на рисунке 1. В левой части окна программы расположена панель управления. Эту панель можно свернуть нажав на кнопку в панели инструментов или, кликнув по левому краю окна (это удобно, когда окно программы развёрнуто во весь экран).

Рисунок (скриншот программы ProgCode v1.0)

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

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

Формат файлов SFRВ программаторе ProgCode поддержана работа с собственным форматом файлов. Эти файлы имеют расширение.SFR и позволяют хранить дополнительную информацию о программе, предназначенной для микроконтроллера. В таком файле сохраняется информация о типе микроконтроллера. Это позволяет при загрузке файла формата SFR не беспокоится о предварительном выборе типа МК в настройках.

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

Задержка импульса может быть равна 0. Её регулировка предусмотрена для «особо трудных» экземпляров контроллеров, которые не удаётся прошить. То же самое относится и к надбавке к паузе при записи — по умолчанию она нулевая. Если увеличить значения этих настроек, время программирования контроллера значительно увеличится.

Галочка «проверка при записи» должна быть выставлена, если вам нужно «на лету» проверить всё что записывается в микроконтроллер на правильность и соответствие исходному файлу. Если эту галочку снять проверка не производится вообще и сообщений об ошибках не будет, даже если такие ошибки в реальности будут присутствовать.
Выбор скорости порта — скорость может быть любой. Для JDM программатора этот параметр не имеет значения.

В WindowsXP применяется буферизирование передаваемой через порты COM информации. Это так называемые буфера FIFO. Чтобы избежать ошибок при программировании через JDM этот механизм необходимо отключить. Сделать это можно в диспетчере устройств Windows.

Заходим в панель управления, затем:
Администрирование — управление компьютером — диспетчер устройств

Затем выбираем порт, на который подключен JDM программатор(например COM1) — смотрим свойства — вкладка параметры порта — дополнительно. И снимаем галочку на пункте «Использовать буферы FIFO»

Рисунок — Настройка COM порта для работы с JDM программатором

После этого перезагружаем компьютер.

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

Любой файл при двойном клике по нему в панели обозревателя откроется в самой программе — это относится к рисункам, html файлам, doc, rtf, djvu(при установленных плагинах), pdf, txt, asm. Файл возможно так-же открыть двойным кликом в обозревателе с помощью внешней программы, установленной на компьютере. Для этого расширение нужного типа файлов необходимо прописать в списке «Ассоциации файлов». Если путь к открывающей программе не указывать — Windows откроет файл в программе по умолчанию(это удобно для открытия архивов, которые не всегда однозначно открываются). Если путь к открывающей программе указан в списке — файл откроется в указанной программе. Удобно просматривать таким образом файлы типа SPL, LAY, DSN.

Рисунок (скриншот обозревателя программы ProgCode v1.0)

Вот так выглядит окно с настройками ассоциаций файлов:

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


При обзоре проектов в интернете если на странице проекта есть ссылка на файл с расширением SFR(это формат файлов программы ProgCode), то такой файл при клике по нему откроется в новой вкладке программы и сразу готов к прошивке в микроконтроллер.
Список ссылок можно редактировать воспользовавшись кнопкой «Изменить». При этом откроется окно редактирования списка ссылок:

Описание процесса программирования микросхемБольшинство современных микросхем содержит флэш-память, которая программируется посредством протокола I2C или подобных протоколов.
Перезаписываемая память есть в PIC , AVR и других контроллерах, микросхемах памяти типа 24Cxx, и подобных им, различных картах памяти типа MMC и SD, обычных флэш USB картах, которые подключаются к компьютеру через USB разъём.Рассмотрим запись информации во флэш память микроконтроллера PIC16F628AЕсть 2 линии DATA и CLOCK, по которым передаётся информация. Линия CLOCK служит для подачи тактовых импульсов, а линия DATA для передачи информации.
Чтобы передать в микроконтроллер 1 бит информации, необходимо выставить 0 или 1(в зависимости от значения бита) на линии данных(DATA) и создать спад напряжения (переход от 1 к 0) на линии тактирования(CLOCK).
Один бит для контроллера – маловато. Он ждёт вдогонку ещё пять, чтобы воспринять эту посылку из 6-ти бит как команду. Контроллеру очень нравятся команды, а состоять они должны именно из 6-ти бит – такова уж природа у PIC16.
Вот список и значение команд, которые PIC способен понять. Команд не так уж и много – словарный запас у этого контроллера невелик, но не надо думать, что он совсем глуп – бывают устройства и с меньшим количеством команд»LoadConfiguration» 000000 — Загрузка конфигурации
«LoadDataForProgramMemory» 000010 — Загрузка данных в память программ
«LoadDataForDataMemory» — 000011 — Загрузка данных в память данных(EEPROM)
«IncrementAddress» 000110 — Увеличение адреса PC МК
«ReadDataFromProgramMemory» 000100 — Чтение данных из памяти программ
«ReadDataFromDataMemory» 000101 — Чтение данных из памяти данных(EEPROM)
«BeginProgrammingOnlyCycle» 011000 — Начать цикл программирования
«BulkEraseProgramMemory» 001001 — Полное стирание памяти программ
«BulkEraseDataMemory» 001011 — Полное стирание памяти данных(EEPROM)
«BeginEraseProgrammingCycle» 001000 — Начать цикл программированияРеагирует контроллер на эти команды по-разному. По-разному после выдачи команды нужно и продолжать с ним разговор.
Для того чтобы начать полноценный процесс программирования необходимо ещё подать напряжение 12 вольт на вывод MCLR контроллера, после этого подать на него напряжение питания. Именно в такой последовательности подачи напряжений есть определённый смысл. После подачи питания, если PIC сконфигурирован на работу от внутреннего RC генератора, он может начать выполнение собственной программы, что при программировании вещь недопустимая, так как неизбежен сбой.
Предварительная подача 12-ти вольт на MCLR позволяет избежать такого развития событий.
При записи информации во флэш память программ МК после команды»LoadDataForProgramMemory» 000010 — Загрузка данных в память программнеобходимо отправить в контроллер сами данные — 16 бит,
которые выглядят так: “0xxxxxxxxxxxxxx0”.Крестики в этом слове – это сами данные, а нули по краям отправляются как обрамление – это стандарт для PIC16. Значащих битов в слове всего 14. У этой серии контроллеров 14-ти битный формат представления команд.
После окончания передачи слова с данными PIC ждёт следующую команду.
Так как нашей целью является запись слова в память программ МК, следующей командой должна быть команда
«BeginEraseProgrammingCycle» 001000 — Начать цикл программированияПолучив её, контроллер отключается от внешнего мира на 6 миллисекунд, которые нужны ему, чтобы завершить процесс записи.Сигналы на выводах микроконтроллера формируются компьютером при помощи специальных программ — программаторов. Для передачи сигнала могут служить порты COM, LPT или USB. C JDM программатором работают такие программы как PonyProg, IsProg, WinPic800.
Схема JDM программатораОчень простая схема программатора приведена на рисунке. В этой схеме хоть и не реализуется контроль последовательности подачи напряжений, но зато она очень проста и собрать такую схему возможно очень быстро, ипользовав минимумом деталей.
Рисунок (схема JDM программатора)


Одним из вопросов при подключении программатора к компьютеру является вопрос — как обеспечить селективную развязку. Чтобы в случае неисправности в схеме избежать повреждения COM порта. В некоторых схемах применяется микросхема MAX232, которая обеспечивает селективную развязку и согласует уровни сигналов. В этой схеме вопрос решён проще — с помощью применения батарейного питания. Уровень сигнала, поступающего от компьютера ограничивается стабилитронами VD1, VD2, и VD3. Несмотря на простоту схемы JDM программатора с его помощью можно запрограммировать большинство типов PIC микроконтроллеров.Перемычка между выводами COM6(DSR) и COM7(RTS) предназначена для того, чтобы программа могла определить, что программатор подключен к компьютеру.

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

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

приведены рисунки с назначением выводов наиболее распространнённых МК при программировании. Цоколёвка (распиновка) микроконтроллеров PIC16F876A, PIC16F873A в корпусе DIP28.

Цоколёвка (распиновка) микроконтроллеров PIC16F874A, PIC16F877A в корпусе DIP40.
Цоколёвка (распиновка) микроконтроллеров PIC16F627A, PIC16F628A, PIC16F648A в корпусе DIP18.
Такое же расположение выводов, предназначенных для программирования, имеют МК PIC16F84, PIC16F84A.

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

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

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

Скачать программу можно на странице загрузки файлов:http://cxema.my1.ru/load/proshivki/material_k_state_prostoj_jdm_programmator_dlja_pic_mikrokontrollerov/9-1-0-1613 Раздел:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для Windows95, 98, ME

Для Windows NT, 2000, XP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание:

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

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

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

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

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

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

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


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


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

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

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

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для того, чтобы микросхема начала исполнять какие-либо функции, нужно её прошить, т.е. загрузить в её память код прошивки. Сделать это можно с помощью специального устройства, называемого программатором. Программатор связывает компьютер, на котором находится файл прошивки с прошиваемым микроконтроллером. Стоит упомянуть, что существуют микроконтроллеры семейства AVR, например такие, как Atmega8, Attiny13, и серии pic, например PIC12F675, PIC16F676. Pic-серия принадлежит компании Microchip, а AVR компании Atmel, поэтому способы прошивки pic и AVR отличаются. В этой статье рассмотрим процесс создания программатора Extra-pic, с помощью которого можно прошить микроконтроллер серии pic.
К достоинствам именно этого программатора можно отнести простоту его схемы, надёжность работы, универсальность, ведь поддерживает он все распространённые микроконтроллеры. На компьютере поддерживается также самыми распространёнными программами для прошивки, такими как Ic-prog, WinPic800, PonyProg, PICPgm.

Схема программатора


Она содержит в себе две микросхемы, импортную MAX232 и отечественную КР1533ЛА3, которую можно заменить на КР155ЛА3. Два транзистора, КТ502, который можно заменить на КТ345, КТ3107 или любой другой маломощный PNP транзистор. КТ3102 также можно менять, например, на BC457, КТ315. Зелёный светодиод служит индикатором наличия питания, красный загорается во время процесса прошивки микроконтроллера. Диод 1N4007 служит для защиты схемы от подачи напряжения неправильной полярности.

Материалы


Список необходимых для сборки программатора деталей:
  • Стабилизатор 78L05 – 2 шт.
  • Стабилизатор 78L12 – 1 шт.
  • Светодиод на 3 в. зелёный – 1 шт.
  • Светодиод на 3 в. красный – 1 шт.
  • Диод 1N4007 – 1 шт.
  • Диод 1N4148 – 2 шт.
  • Резистор 0,125 Вт 4,7 кОм – 2 шт.
  • Резистор 0,125 Вт 1 кОм – 6 шт.
  • Конденсатор 10 мкФ 16В – 4 шт.
  • Конденсатор 220 мкФ 25В – 1 шт.
  • Конденсатор 100 нФ – 3 шт.
  • Транзистор КТ3102 – 1 шт.
  • Транзистор КТ502 – 1 шт.
  • Микросхема MAX232 – 1 шт.
  • Микросхема КР1533ЛА3 – 1 шт.
  • Разъём питания – 1 шт
  • Разъём COM порта «мама» — 1 шт.
  • Панелька DIP40 – 1 шт.
  • Панелька DIP8 – 2 шт.
  • Панелька DIP14 – 1 шт.
  • Панелька DIP16 – 1 шт.
  • Панелька DIP18 – 1 шт.
  • Панелька DIP28 – 1 шт.
Кроме того, необходим паяльник и умение им пользоваться.

Изготовление печатной платы

Программатор собирается на печатной плате размерами 100х70 мм. Печатная плата выполняется методом ЛУТ, файл к статье прилагается. Отзеркаливать изображение перед печатью не нужно.


Скачать плату:

(cкачиваний: 639)

Сборка программатора

Первым делом на печатную плату впаиваются перемычки, затем резисторы, диоды. В последнюю очередь нужно впаять панельки и разъёмы питания и СОМ порта.


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


Разъём СОМ порта (он называется DB-9) имеет два штырька, которые должны «втыкаться» в плату. Чтобы не сверлить под них лишние отверстия на плате, можно открутить два винтика под бокам разъёма, при этом штырьки отпадут, как и металлическая окантовка разъёма.


После впайки всех деталей плату нужно отмыть от флюса, прозвонить соседние контакты, нет ли замыканий. Убедиться в том, что в панельках нет микросхем (вынуть нужно в том числе и МАХ232, и КР1533ЛА3), подключить питание. Проверить, присутствует ли напряжение 5 вольт на выходах стабилизаторов. Если всё хорошо, можно устанавливать микросхемы МАХ232 и КР1533ЛА3, программатор готов к работе. Напряжение питания схемы 15-24 вольта.

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

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

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

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

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

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

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

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

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

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

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

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

LM7812

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

LM7805

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

КТ502Е

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

КТ3102Е

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

1N4148

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

1 кОм

3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MAX232E

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

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

10 кОм

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

470 Ом

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

4.7 кОм

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

2 кОм

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

1 кОм

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

240 Ом

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

MAX232E

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

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

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

За основу предлагаемого программатора взята публикация из журнала «Радио» №2, 2004г, «Программирование современных PIC16, PIC12 на PonyProg». Это мой первый программатор, который я использовал для прошивки PIC микросхем дома. Программатор представляет собой упрощенный вариант JDM программатора, оригинальная схема имеет преобразователь RS-232 на TTL в виде микросхемы MAX232, она более универсальна, но ее «на коленке» уже не соберешь. Данная схема не имеет вообще ни одного активного компонента, не содержит дефицитных деталей и очень проста, может быть собрана без применения печатной платы.

Рис. 1: Принципиальная схема программатора.

Описание работы схемы
Схема программатора представлена на рис. 1. Резисторы по цепям CLK (тактирование), DATA (информационный), Upp (напряжение программирования) служат для ограничения протекающего тока. PIC контроллеры защищены от пробоя встроенными стабилитронами, поэтому получается некоторая совместимость TTL и RS-232 логики. В представленной схеме присутствуют диоды VD1, VD2, которые «отбирают» плюсовое напряжение от COM порта относительно 5 контакта и передают его на питание контроллера, благодаря чему в некоторых случаях удается избавиться от дополнительного источника питания.

Налаживание
На практике не всегда случается, что данный программатор заработает без налаживания, с 1-го раза, т.к. работа данной схемы сильно зависит от параметров COM порта. Однако у меня, на двух материнских платах Gigabyte 8IPE1000 и WinFast под XP все заработало сразу. Если Вам лень разбираться с неработающей, более сложной схемой программатора, то стоит попробовать собрать эту. Вот некоторые вещи, которые могут повлиять:

Чем новее мат. плата, тем разработчики уделяют этим портам меньше внимания, потому что эти порты давно стали морально устаревшими. Избавиться от этого можно, купив переходник USB-COM, правда опять же купленное устройство может не подойти. Нужные параметры таковы: изменяемое напряжение должно меняться не менее -10В до +10В (лог. 0 и 1) относительно 5-го контакта разъема. Отдааваемый ток должен быть хотя бы таким, чтобы при подключеннии резистора 2,7 кОм между 5-м контактом и исследуемым контактом напряжение не падало ниже 10В (сам таких плат не встречал). Также порт должен правильно определять напряжения, поступающие от контроллера, при уровне напряжения близкого к 0В, но не больше 2В определяется нуль, и соответственно при выше 2В определяется единица.

Также проблемы могут возникнуть из за программного обеспечения.
Особенно это касается ОС LINUX, т.к. из за наличия эмуляторов типа wine, VirtualBox порты могут работать неправильно, а возможностей от них требуется много. Этих проблем я коснусь подробнее в другой статье.

Зная эти особенности, приступим к налаживанию.
Для этого очень желательно иметь программу ICProg 1. 05D.
В меню программы нужно во первых выбрать в настройках соотв. порт (COM1. COM2), выбрать JDM программатор. Затем открыть окно «Hardware Check», в меню «Settings». В этом меню нужно по очереди ставить галочки и вольтметром измерять напряжение на контактах подключенного разъема. Если параметры напряжения не соответствуют норме, то к сожалению, это может быть причиной неработоспособности, тогда придется собирать схему с преобразователем RS-232 TTL. Отметив все галочки, нужно убедиться, что на стабилитроне образуется напряжение питания около 5В. Если напряжения в норме и отсутствуют ошибки монтажа, то все должно сработать. Ставим контроллер в панельку, открываем прошивку, программируем. Галочки типа «Invert data out» включать не надо (все сняты). Также не нужно забывать, что некоторые партии контроллеров могут иметь не совсем стандартные параметры, и их прошить не получается, в таких случаях с данным программатором можно попробовать только снизить напряжение питания с 5В до 3-4В, подключив соотв. стабилитрон, посмотреть контроллер на предмет ошибочного включения режима LVP (низковольтное программирование), как предотвратить, можно прочитать в Интернете для конкретного типа контроллера. Повысить напряжение программирования проблеммного контроллера можно, наверное, только усложнив схему введением усилительного каскада с общим эмиттером, запитанного от дополнительного источника питания.

Теперь подробнее о проблеме с питанием устройства. Программатор тестировался с программами ICProg и консольным picprog под Linux, должен работать с любым, который поддерживает JDM, если подключить дополнительный источник питания (он подключается через резистор 1кОм к стабилитрону, диоды с резисторами в этом случае можно вообще исключить). Дело в том, что алгоритмы управления программаторов у отдельного софта разные, программа ICProg, является самой неприхотливой. Замечено, что в ОС Windows эта программа на неиспользуемом контакте 2 поднимала нужное напряжение питания, эта же программа под эмулятором в Linux на другой мат. плате уже не смогла этого сделать, однако выход был найден, отбирая питание из напряжения программирования. В общем, с ICProg, думаю, можно применять этот программатор без дополнительного питания. С другим софтом это гарантировать врядли получится, например, «родной» из репозиториев Ubuntu picprog без питания просто не определяет программатор, выдавая сообщение «JDM hardware not found». Вероятно, он либо принимает какие-то данные, не подавая напряжение программирования, либо делает это слишком быстро, таким образом что фильтрующий конденсатор еще не успевает зарядиться.

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

Для того, чтобы микросхема начала исполнять какие-либо функции, нужно её прошить, т.е. загрузить в её память код прошивки. Сделать это можно с помощью специального устройства, называемого программатором. Программатор связывает компьютер, на котором находится файл прошивки с прошиваемым микроконтроллером. Стоит упомянуть, что существуют микроконтроллеры семейства AVR, например такие, как Atmega8, Attiny13, и серии pic, например PIC12F675, PIC16F676. Pic-серия принадлежит компании Microchip, а AVR компании Atmel, поэтому способы прошивки pic и AVR отличаются. В этой статье рассмотрим процесс создания программатора Extra-pic, с помощью которого можно прошить микроконтроллер серии pic.
К достоинствам именно этого программатора можно отнести простоту его схемы, надёжность работы, универсальность, ведь поддерживает он все распространённые микроконтроллеры. На компьютере поддерживается также самыми распространёнными программами для прошивки, такими как Ic-prog, WinPic800, PonyProg, PICPgm.

Схема программатора


Она содержит в себе две микросхемы, импортную MAX232 и отечественную КР1533ЛА3, которую можно заменить на КР155ЛА3. Два транзистора, КТ502, который можно заменить на КТ345, КТ3107 или любой другой маломощный PNP транзистор. КТ3102 также можно менять, например, на BC457, КТ315. Зелёный светодиод служит индикатором наличия питания, красный загорается во время процесса прошивки микроконтроллера. Диод 1N4007 служит для защиты схемы от подачи напряжения неправильной полярности.

Материалы


Список необходимых для сборки программатора деталей:
  • Стабилизатор 78L05 – 2 шт.
  • Стабилизатор 78L12 – 1 шт.
  • Светодиод на 3 в. зелёный – 1 шт.
  • Светодиод на 3 в. красный – 1 шт.
  • Диод 1N4007 – 1 шт.
  • Диод 1N4148 – 2 шт.
  • Резистор 0,125 Вт 4,7 кОм – 2 шт.
  • Резистор 0,125 Вт 1 кОм – 6 шт.
  • Конденсатор 10 мкФ 16В – 4 шт.
  • Конденсатор 220 мкФ 25В – 1 шт.
  • Конденсатор 100 нФ – 3 шт.
  • Транзистор КТ3102 – 1 шт.
  • Транзистор КТ502 – 1 шт.
  • Микросхема MAX232 – 1 шт.
  • Микросхема КР1533ЛА3 – 1 шт.
  • Разъём питания – 1 шт
  • Разъём COM порта «мама» — 1 шт.
  • Панелька DIP40 – 1 шт.
  • Панелька DIP8 – 2 шт.
  • Панелька DIP14 – 1 шт.
  • Панелька DIP16 – 1 шт.
  • Панелька DIP18 – 1 шт.
  • Панелька DIP28 – 1 шт.
Кроме того, необходим паяльник и умение им пользоваться.

Изготовление печатной платы

Программатор собирается на печатной плате размерами 100х70 мм. Печатная плата выполняется методом ЛУТ, файл к статье прилагается. Отзеркаливать изображение перед печатью не нужно.


Скачать плату:

(cкачиваний: 639)

Сборка программатора

Первым делом на печатную плату впаиваются перемычки, затем резисторы, диоды. В последнюю очередь нужно впаять панельки и разъёмы питания и СОМ порта.


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


Разъём СОМ порта (он называется DB-9) имеет два штырька, которые должны «втыкаться» в плату. Чтобы не сверлить под них лишние отверстия на плате, можно открутить два винтика под бокам разъёма, при этом штырьки отпадут, как и металлическая окантовка разъёма.


После впайки всех деталей плату нужно отмыть от флюса, прозвонить соседние контакты, нет ли замыканий. Убедиться в том, что в панельках нет микросхем (вынуть нужно в том числе и МАХ232, и КР1533ЛА3), подключить питание. Проверить, присутствует ли напряжение 5 вольт на выходах стабилизаторов. Если всё хорошо, можно устанавливать микросхемы МАХ232 и КР1533ЛА3, программатор готов к работе. Напряжение питания схемы 15-24 вольта.

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

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

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


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


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

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

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

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


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


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


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


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


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

Рассказать в:
Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей — не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом — как его запрограммировать. Одним из самых простых вариантов программаторов является JDM программатор.
Программа — программатор ProgCode v 1.0Эта программа работает в WindowsXP. Позволяет программировать PIC контроллеры среднего семейства(PIC16Fxxx) через COM порт компьютера. Индикатор подключения программатора(в правом верхнем углу окна) при отсутствии программатора на выбранном в настройках порту окрашивается в красный цвет. Если программатор подключен — программа обнаруживает его и индикатор в правом верхнем углу принимает вид, который показан на рисунке 1. В левой части окна программы расположена панель управления. Эту панель можно свернуть нажав на кнопку в панели инструментов или, кликнув по левому краю окна (это удобно, когда окно программы развёрнуто во весь экран).

Рисунок (скриншот программы ProgCode v1.0)

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

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

Формат файлов SFRВ программаторе ProgCode поддержана работа с собственным форматом файлов. Эти файлы имеют расширение.SFR и позволяют хранить дополнительную информацию о программе, предназначенной для микроконтроллера. В таком файле сохраняется информация о типе микроконтроллера. Это позволяет при загрузке файла формата SFR не беспокоится о предварительном выборе типа МК в настройках.

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

Задержка импульса может быть равна 0. Её регулировка предусмотрена для «особо трудных» экземпляров контроллеров, которые не удаётся прошить. То же самое относится и к надбавке к паузе при записи — по умолчанию она нулевая. Если увеличить значения этих настроек, время программирования контроллера значительно увеличится.

Галочка «проверка при записи» должна быть выставлена, если вам нужно «на лету» проверить всё что записывается в микроконтроллер на правильность и соответствие исходному файлу. Если эту галочку снять проверка не производится вообще и сообщений об ошибках не будет, даже если такие ошибки в реальности будут присутствовать.
Выбор скорости порта — скорость может быть любой. Для JDM программатора этот параметр не имеет значения.

В WindowsXP применяется буферизирование передаваемой через порты COM информации. Это так называемые буфера FIFO. Чтобы избежать ошибок при программировании через JDM этот механизм необходимо отключить. Сделать это можно в диспетчере устройств Windows.

Заходим в панель управления, затем:
Администрирование — управление компьютером — диспетчер устройств

Затем выбираем порт, на который подключен JDM программатор(например COM1) — смотрим свойства — вкладка параметры порта — дополнительно. И снимаем галочку на пункте «Использовать буферы FIFO»

Рисунок — Настройка COM порта для работы с JDM программатором

После этого перезагружаем компьютер.

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

Любой файл при двойном клике по нему в панели обозревателя откроется в самой программе — это относится к рисункам, html файлам, doc, rtf, djvu(при установленных плагинах), pdf, txt, asm. Файл возможно так-же открыть двойным кликом в обозревателе с помощью внешней программы, установленной на компьютере. Для этого расширение нужного типа файлов необходимо прописать в списке «Ассоциации файлов». Если путь к открывающей программе не указывать — Windows откроет файл в программе по умолчанию(это удобно для открытия архивов, которые не всегда однозначно открываются). Если путь к открывающей программе указан в списке — файл откроется в указанной программе. Удобно просматривать таким образом файлы типа SPL, LAY, DSN.

Рисунок (скриншот обозревателя программы ProgCode v1.0)

Вот так выглядит окно с настройками ассоциаций файлов:

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


При обзоре проектов в интернете если на странице проекта есть ссылка на файл с расширением SFR(это формат файлов программы ProgCode), то такой файл при клике по нему откроется в новой вкладке программы и сразу готов к прошивке в микроконтроллер.
Список ссылок можно редактировать воспользовавшись кнопкой «Изменить». При этом откроется окно редактирования списка ссылок:

Описание процесса программирования микросхемБольшинство современных микросхем содержит флэш-память, которая программируется посредством протокола I2C или подобных протоколов.
Перезаписываемая память есть в PIC , AVR и других контроллерах, микросхемах памяти типа 24Cxx, и подобных им, различных картах памяти типа MMC и SD, обычных флэш USB картах, которые подключаются к компьютеру через USB разъём.Рассмотрим запись информации во флэш память микроконтроллера PIC16F628AЕсть 2 линии DATA и CLOCK, по которым передаётся информация. Линия CLOCK служит для подачи тактовых импульсов, а линия DATA для передачи информации.
Чтобы передать в микроконтроллер 1 бит информации, необходимо выставить 0 или 1(в зависимости от значения бита) на линии данных(DATA) и создать спад напряжения (переход от 1 к 0) на линии тактирования(CLOCK).
Один бит для контроллера – маловато. Он ждёт вдогонку ещё пять, чтобы воспринять эту посылку из 6-ти бит как команду. Контроллеру очень нравятся команды, а состоять они должны именно из 6-ти бит – такова уж природа у PIC16.
Вот список и значение команд, которые PIC способен понять. Команд не так уж и много – словарный запас у этого контроллера невелик, но не надо думать, что он совсем глуп – бывают устройства и с меньшим количеством команд»LoadConfiguration» 000000 — Загрузка конфигурации
«LoadDataForProgramMemory» 000010 — Загрузка данных в память программ
«LoadDataForDataMemory» — 000011 — Загрузка данных в память данных(EEPROM)
«IncrementAddress» 000110 — Увеличение адреса PC МК
«ReadDataFromProgramMemory» 000100 — Чтение данных из памяти программ
«ReadDataFromDataMemory» 000101 — Чтение данных из памяти данных(EEPROM)
«BeginProgrammingOnlyCycle» 011000 — Начать цикл программирования
«BulkEraseProgramMemory» 001001 — Полное стирание памяти программ
«BulkEraseDataMemory» 001011 — Полное стирание памяти данных(EEPROM)
«BeginEraseProgrammingCycle» 001000 — Начать цикл программированияРеагирует контроллер на эти команды по-разному. По-разному после выдачи команды нужно и продолжать с ним разговор.
Для того чтобы начать полноценный процесс программирования необходимо ещё подать напряжение 12 вольт на вывод MCLR контроллера, после этого подать на него напряжение питания. Именно в такой последовательности подачи напряжений есть определённый смысл. После подачи питания, если PIC сконфигурирован на работу от внутреннего RC генератора, он может начать выполнение собственной программы, что при программировании вещь недопустимая, так как неизбежен сбой.
Предварительная подача 12-ти вольт на MCLR позволяет избежать такого развития событий.
При записи информации во флэш память программ МК после команды»LoadDataForProgramMemory» 000010 — Загрузка данных в память программнеобходимо отправить в контроллер сами данные — 16 бит,
которые выглядят так: “0xxxxxxxxxxxxxx0”.Крестики в этом слове – это сами данные, а нули по краям отправляются как обрамление – это стандарт для PIC16. Значащих битов в слове всего 14. У этой серии контроллеров 14-ти битный формат представления команд.
После окончания передачи слова с данными PIC ждёт следующую команду.
Так как нашей целью является запись слова в память программ МК, следующей командой должна быть команда
«BeginEraseProgrammingCycle» 001000 — Начать цикл программированияПолучив её, контроллер отключается от внешнего мира на 6 миллисекунд, которые нужны ему, чтобы завершить процесс записи.Сигналы на выводах микроконтроллера формируются компьютером при помощи специальных программ — программаторов. Для передачи сигнала могут служить порты COM, LPT или USB. C JDM программатором работают такие программы как PonyProg, IsProg, WinPic800.
Схема JDM программатораОчень простая схема программатора приведена на рисунке. В этой схеме хоть и не реализуется контроль последовательности подачи напряжений, но зато она очень проста и собрать такую схему возможно очень быстро, ипользовав минимумом деталей.
Рисунок (схема JDM программатора)


Одним из вопросов при подключении программатора к компьютеру является вопрос — как обеспечить селективную развязку. Чтобы в случае неисправности в схеме избежать повреждения COM порта. В некоторых схемах применяется микросхема MAX232, которая обеспечивает селективную развязку и согласует уровни сигналов. В этой схеме вопрос решён проще — с помощью применения батарейного питания. Уровень сигнала, поступающего от компьютера ограничивается стабилитронами VD1, VD2, и VD3. Несмотря на простоту схемы JDM программатора с его помощью можно запрограммировать большинство типов PIC микроконтроллеров.Перемычка между выводами COM6(DSR) и COM7(RTS) предназначена для того, чтобы программа могла определить, что программатор подключен к компьютеру.

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

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

приведены рисунки с назначением выводов наиболее распространнённых МК при программировании. Цоколёвка (распиновка) микроконтроллеров PIC16F876A, PIC16F873A в корпусе DIP28.

Цоколёвка (распиновка) микроконтроллеров PIC16F874A, PIC16F877A в корпусе DIP40.
Цоколёвка (распиновка) микроконтроллеров PIC16F627A, PIC16F628A, PIC16F648A в корпусе DIP18.
Такое же расположение выводов, предназначенных для программирования, имеют МК PIC16F84, PIC16F84A.

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

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

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

Скачать программу можно на странице загрузки файлов:http://cxema.my1.ru/load/proshivki/material_k_state_prostoj_jdm_programmator_dlja_pic_mikrokontrollerov/9-1-0-1613 Раздел:

USB программатор PIC контроллеров — 3.8 out of 5 based on 11 votes

Фотогорафии программатора предоставленны Ансаганом Хасеновым

В данной статье рассматриваются практические аспекты сборки несложного USB программатора PIC микроконтроллеров, который имеет оригинальное название GTP-USB (Grabador TodoPic-USB). Существует старшая модель этого программатора GTP-USB plus который поддерживает и AVR микроконтроллеры, но предлагается за деньги. Однозначных сведений по схемам и прошивкам к GTP-USB plus обнаружить не удалось. Если у вас есть информация по GTP-USB plus, прошу связаться со мной.

Итак, GTP-USB. Данный программатор собран на микроконтроллере PIC18F2550. GTP-USB нельзя рекомендовать начинающим, т.к. для сборки требуется прошить PIC18F2550 и для этого требуется программатор. Замкнутый круг, но не настолько замкнутый, чтобы это стало препятствием для сборки.

Из оригинальной схемы GTP-USB исключены элементы индикации для упрощения рисунка печатной платы. Основной индикатор — это монитор вашего компьютера, на котором из программы WinPic800 версий 3.55G или 3.55B вы можете наблюдать за процессом программирования.

Облегченная схема GTP-USB.

Сигнальные линии Vpp1 и Vpp2 определены под микроконтроллеры в корпусах с различным количеством выводов. Линия Vpp/ICSP определена для внутрисхемного программирования. Остальные линии типовые.

Программатор собран на односторонней печатной плате .

Адаптер можно безболезненно подключать к любому другому программатору PIC-микроконтроллеров, что, безусловно, удобно.

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

Затем следует традиционный запрос на установку драйвера. Драйвер расположен в управляющей программе WinPic800 по примерному пути \WinPic800 3.55G\GTP-USB\Driver GTP-USB\.


Соглашаемся с предупреждениями и продолжаем установку.

Обращаю внимание. Данная схема программатора и прошивка к нему проверены на практике и работают с управляющей программой WinPic800 версий 3.55G и 3.55B. Более старшие версии, например, 3.63C не работают с этим программатором. Производим настройку управляющей программы: в меню Settings — Hardware (Установки — Оборудование) выбираем GTP-USB-#0 или GTP-USB-#F1 и нажимаем Apply (Применить).

Нажимаем на панели кнопку и производим тест оборудования. В результате успешного тестирования появляется сообщение (см. ниже), которое не может нас не радовать.

Данный программатор отлично работал со следующими контроллерами (из того что было в наличии): PIC12F675, PIC16F84A, PIC16F628A, PIC16F874A, PIC16F876A, PIC18F252. Тест контроллеров, запись и чтение данных — выполнены успешно. Скорость работы впечатляет. Чтение 1-2 сек. Запись 3-5 сек. Глюков не замечено. Часть зашитых МК протестировано в железе — работает.


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

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

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

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

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

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

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

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

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

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

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

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

LM7812

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

LM7805

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

КТ502Е

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

КТ3102Е

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

1N4148

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

1 кОм

3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Быстро собрать понравившуюся схему на микроконтроллере для многих радиолюбителей — не проблема. Но многие начинающие работать с микроконтроллерами сталкиваются с вопросом — как его запрограммировать. Одним из самых простых вариантов программаторов является JDM программатор.

Программа — программатор ProgCode v 1.0

Эта программа работает в WindowsXP. Позволяет программировать PIC контроллеры среднего семейства(PIC16Fxxx) через COM порт компьютера. Индикатор подключения программатора(в правом верхнем углу окна) при отсутствии программатора на выбранном в настройках порту окрашивается в красный цвет. Если программатор подключен — программа обнаруживает его и индикатор в правом верхнем углу принимает вид, который показан на рисунке 1.

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

Рисунок (скриншот программы ProgCode v1. 0)

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

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

Формат файлов SFR
В программаторе ProgCode поддержана работа с собственным форматом файлов. Эти файлы имеют расширение.SFR и позволяют хранить дополнительную информацию о программе, предназначенной для микроконтроллера. В таком файле сохраняется информация о типе микроконтроллера. Это позволяет при загрузке файла формата SFR не беспокоится о предварительном выборе типа МК в настройках.
Настройки порта и протокола при подключении программатора
После установки программы — по умолчанию выставлены все настройки, которые необходимы для работы программатора со схемой JDM, приведённой на этой странице.
Инверсия сигнала в приведённой схеме нужна только для выхода OutData, так как в этой цепи сигнал инвертирован согласующим транзистором. На всех остальных выводах инверсия отключена.

Задержка импульса может быть равна 0. Её регулировка предусмотрена для «особо трудных» экземпляров контроллеров, которые не удаётся прошить. То же самое относится и к надбавке к паузе при записи — по умолчанию она нулевая. Если увеличить значения этих настроек, время программирования контроллера значительно увеличится.

Галочка «проверка при записи» должна быть выставлена, если вам нужно «на лету» проверить всё что записывается в микроконтроллер на правильность и соответствие исходному файлу. Если эту галочку снять проверка не производится вообще и сообщений об ошибках не будет, даже если такие ошибки в реальности будут присутствовать.
Выбор скорости порта — скорость может быть любой. Для JDM программатора этот параметр не имеет значения.

В WindowsXP применяется буферизирование передаваемой через порты COM информации. Это так называемые буфера FIFO. Чтобы избежать ошибок при программировании через JDM этот механизм необходимо отключить. Сделать это можно в диспетчере устройств Windows.

Заходим в панель управления, затем:
Администрирование — управление компьютером — диспетчер устройств

Затем выбираем порт, на который подключен JDM программатор(например COM1) — смотрим свойства — вкладка параметры порта — дополнительно. И снимаем галочку на пункте «Использовать буферы FIFO»

Рисунок — Настройка COM порта для работы с JDM программатором

После этого перезагружаем компьютер.

Обозреватель локальных проектов

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

Любой файл при двойном клике по нему в панели обозревателя откроется в самой программе — это относится к рисункам, html файлам, doc, rtf, djvu(при установленных плагинах), pdf, txt, asm. Файл возможно так-же открыть двойным кликом в обозревателе с помощью внешней программы, установленной на компьютере. Для этого расширение нужного типа файлов необходимо прописать в списке «Ассоциации файлов». Если путь к открывающей программе не указывать — Windows откроет файл в программе по умолчанию(это удобно для открытия архивов, которые не всегда однозначно открываются). Если путь к открывающей программе указан в списке — файл откроется в указанной программе. Удобно просматривать таким образом файлы типа SPL, LAY, DSN.

Рисунок (скриншот обозревателя программы ProgCode v1.0)

Вот так выглядит окно с настройками ассоциаций файлов:

Обозреватель проектов в интернете

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



При обзоре проектов в интернете если на странице проекта есть ссылка на файл с расширением SFR(это формат файлов программы ProgCode), то такой файл при клике по нему откроется в новой вкладке программы и сразу готов к прошивке в микроконтроллер.
Список ссылок можно редактировать воспользовавшись кнопкой «Изменить». При этом откроется окно редактирования списка ссылок:


Описание процесса программирования микросхем

Большинство современных микросхем содержит флэш-память, которая программируется посредством протокола I2C или подобных протоколов.
Перезаписываемая память есть в PIC , AVR и других контроллерах, микросхемах памяти типа 24Cxx, и подобных им, различных картах памяти типа MMC и SD, обычных флэш USB картах, которые подключаются к компьютеру через USB разъём.

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

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

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

«LoadConfiguration » 000000 — Загрузка конфигурации

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

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

«LoadDataForProgramMemory » 000010 — Загрузка данных в память программ

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

“0xxxxxxxxxxxxxx 0”.

Крестики в этом слове – это сами данные, а нули по краям отправляются как обрамление – это стандарт для PIC 16. Значащих битов в слове всего 14. У этой серии контроллеров 14-ти битный формат представления команд.
После окончания передачи слова с данными PIC ждёт следующую команду.
Так как нашей целью является запись слова в память программ МК, следующей командой должна быть команда

«BeginEraseProgrammingCycle» 001000 — Начать цикл программирования

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

Сигналы на выводах микроконтроллера формируются компьютером при помощи специальных программ — программаторов. Для передачи сигнала могут служить порты COM, LPT или USB. C JDM программатором работают такие программы как PonyProg, IsProg, WinPic800.


Схема JDM программатора

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


Одним из вопросов при подключении программатора к компьютеру является вопрос — как обеспечить селективную развязку. Чтобы в случае неисправности в схеме избежать повреждения COM порта. В некоторых схемах применяется микросхема MAX232, которая обеспечивает селективную развязку и согласует уровни сигналов. В этой схеме вопрос решён проще — с помощью применения батарейного питания. Уровень сигнала, поступающего от компьютера ограничивается стабилитронами VD1, VD2, и VD3. Несмотря на простоту схемы JDM программатора с его помощью можно запрограммировать большинство типов PIC микроконтроллеров.

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

cxema.org — Программатор PIC микроконтроллеров

На днях возникла необходимость запрограммировать PIC микроконтроллер. В интернете большое обилие схем программаторов, есть простые и навороченные универсальные. Собирать простейший для прошивки одного конкретного микроконтроллера не захотел, так как в планах прошивать разные. Собирать универсальные, с множеством панелек под разные пики тоже не захотел. Есть простые в сборке, компактные и универсальные программаторы, но они в себе содержат управляющий микроконтроллер, который тоже требует программирования. Поискав в интернете на зарубежных сайтах я нашёл то, что хотел собрать. Это простой программатор, но в тоже время довольно универсальный, поддерживающий практически весь ряд PIC контроллеров. Нашёл его у японцев на сайте http://feng3.cool.ne.jp. Multi PIC Programmer 5 Ver.2.

Схема его проста

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

Поддерживаемые и проверенные микроконтроллеры:

  • PIC12C508,PIC12C509
  • PIC12C508A,PIC12C509A
  • PIC12CE518,PIC12CE519
  • PIC12C671,PIC12C672,PIC12CE673,PIC12CE674
  • PIC12F508,PIC12F509 
  • PIC12F629,PIC12F635,PIC12F675,PIC12F683
  • PIC16C505
  • PIC16C61,PIC16C62A,16C62B(3),PIC16C63,PIC16C63A
  • PIC16C64A,PIC16C65A,PIC16C65B,PIC16C66,PIC16C67
  • PIC16C620,PIC16C620A,PIC16C621,PIC16C621A,PIC16C622,PIC16C622A
  • PIC16CE623,PIC16CE624,PIC16C625
  • PIC16F627,PIC16F628
  • PIC16F627A(2),PIC16F628A,PIC16F648A
  • PIC16F630,PIC16F636,PIC16F676,PIC16F684,PIC16F688
  • PIC16C710,PIC16C711,PIC16C715
  • PIC16C712,PIC16C716
  • PICPIC16C71,PIC16C72,PIC16C72A,PIC16C73A,PIC16C73B,PIC16C74A,PIC16C74B,PIC16C76,PIC16C77
  • PIC16F72,PIC16F73,PIC16F74,PIC16F76,PIC16F77
  • PIC16C745,PIC16C765
  • PIC16C717,PIC16C770,PIC16C771
  • PIC16C773,PIC16C774
  • PIC16C781,PIC16C782
  • PIC16C923,PIC16C924
  • PIC16F818,PIC16F819
  • PIC16F83
  • PIC16C84
  • PIC16F84
  • PIC16F84A
  • PIC16F87,PIC16F88
  • PIC16F870,PIC16F871,PIC16F872,PIC16F873,PIC16F874,PIC16F876,PIC16F877
  • PIC16F873A,PIC16F874A,PIC16F876A,PIC16F877A
  • PIC18F1320,PIC18F2320,PIC18F4320
  • PIC18F242,PIC18F252,PIC18F442,PIC18F452
  • PIC18F248,PIC18F258,PIC18F448,PIC18F458
  • PIC18F4539

Для программирования я использую программу IC- Prog, настройки программатора выставляю как JDM programmer.

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

В  архиве вложена плата в формате lay и дополнительные материалы автора программатора. 

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

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

Также здесь вы найдете описание программаторов и из другого семейства — АВР, но исключительно в сравнительных целях. Приступим к статье, где рассказывается, как сделать программатор-flash своими руками.

Для чего необходим программатор

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

Платные против самодельных

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

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

Драйвера

Первоначально следует подобрать программное обеспечение. В зависимости от схемы программатор может быть заточен или под один микроконтроллер, или под большое их количество. Тот, что будет далее рассматриваться, рассчитан примерно на 98 программаторов от 12-го до 18-го семейств. Для тех, кому понравится вариант сборки, следует уточнить, что в качестве драйверного программного обеспечения использовалась программа IC-PROG. Можете попробовать работать и с другой, но уже на свой страх и риск. Это информация для тех, кто хочет создать программатор для AVR своими руками. Далее будет указано, для каких семейств микроконтроллеров РІС он рассчитан. Если есть желание сделать программатор AVR своими руками или какой-то другой тип МК, то вы всегда можете попытаться.

Схема программатора

Вот тут уже можно попробовать сделать программатор для PIC своими руками. В качестве гнезда необходимо использовать разъем DB9. Можно сделать и USB-программатор своими руками, но для него понадобятся дополнительные элементы схемы, которые усложнят и без того довольно сложную плату. Также внимательно рассмотрите рисунок с различными прямоугольниками (чтобы знать, какие части за что отвечают). Выводы должны подключатся именно туда, куда нужно, иначе микроконтроллер превратится в небольшой кусочек пластика и железа, который можно поставить на стеночку как напоминание о былых ошибках. Процесс сборки и использования программатора таков:

  1. Собрать сам программатор так, как написано на схемах. Просмотреть на наличие некачественной пайки, а также потенциальных мест замыкания. Программатор рассчитан на работу с напряжением 15-18В, больше категорически не рекомендуется.
  2. Подготовьте среду управления прошивкой (выше было упоминание одной программы, с которой программатор точно работает).

Процесс прошивки микроконтроллера

Процесс прошивки микроконтроллера данными можно считать продолжением предыдущего списка:

  1. Произвести необходимые для работы программы настройки.
  2. Установить микроконтроллер в программатор так, как отмечено на схеме. Лучше лишний раз убедиться, что всё так, как должно быть, чем ехать за новым МК.
  3. Подключить питание.
  4. Запустить выбранное программное обеспечения (для этого программатора ещё раз посоветуем IC-Prog).
  5. В выпадающем меню вверху справа выбрать, какой именно микроконтроллер следует прошить.
  6. Подготовленный файл выбрать для программирования. Для этого перейдите по пути «Файл» — «Открыть файл». Смотрите, не перепутайте с «Открыть файл данных», это совсем другое, прошить микроконтроллер с помощью второй кнопки не получится.
  7. Нажать на кнопку «Начать программировать микросхему». Примерное время, через которое она будет запрограммирована — до 2 минут. Прерывать процесс программирования нельзя, это чревато выведением из строя микроконтроллера.
  8. И в качестве небольшого контроля нажмите на кнопку «Сравнить микросхему с буфером».

Не очень сложно, но эта последовательность действий позволяет получить качественный программатор, своими руками сделанный, для различных типов микроконтроллеров РІС.

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

Как уже выше упоминалось, этот программатор может работать как минимум с 98 моделями. Как можно заметить по схематическим рисункам и платам, он рассчитан на те МК, что имеют 8, 14, 18, 28 и 40 выводов. Этого должно хватить для самых различных экспериментов и построения самых разных механизмов, которые только можно сделать в пределах скромного бюджета среднестатистического гражданина. Можно выразить уверенность, что сделанный программатор своими руками сможет удовлетворить самых требовательных радиолюбителей — при условии, что он будет сделан качественно.

USB программатор PIC контроллеров — 3.8 out of 5 based on 11 votes

Фотогорафии программатора предоставленны Ансаганом Хасеновым

В данной статье рассматриваются практические аспекты сборки несложного USB программатора PIC микроконтроллеров, который имеет оригинальное название GTP-USB (Grabador TodoPic-USB). Существует старшая модель этого программатора GTP-USB plus который поддерживает и AVR микроконтроллеры, но предлагается за деньги. Однозначных сведений по схемам и прошивкам к GTP-USB plus обнаружить не удалось. Если у вас есть информация по GTP-USB plus, прошу связаться со мной.

Итак, GTP-USB. Данный программатор собран на микроконтроллере PIC18F2550. GTP-USB нельзя рекомендовать начинающим, т.к. для сборки требуется прошить PIC18F2550 и для этого требуется программатор. Замкнутый круг, но не настолько замкнутый, чтобы это стало препятствием для сборки.

Из оригинальной схемы GTP-USB исключены элементы индикации для упрощения рисунка печатной платы. Основной индикатор — это монитор вашего компьютера, на котором из программы WinPic800 версий 3.55G или 3.55B вы можете наблюдать за процессом программирования.

Облегченная схема GTP-USB.

Сигнальные линии Vpp1 и Vpp2 определены под микроконтроллеры в корпусах с различным количеством выводов. Линия Vpp/ICSP определена для внутрисхемного программирования. Остальные линии типовые.

Программатор собран на односторонней печатной плате .

Адаптер можно безболезненно подключать к любому другому программатору PIC-микроконтроллеров, что, безусловно, удобно.

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

Затем следует традиционный запрос на установку драйвера. Драйвер расположен в управляющей программе WinPic800 по примерному пути \WinPic800 3.55G\GTP-USB\Driver GTP-USB\.


Соглашаемся с предупреждениями и продолжаем установку.

Обращаю внимание. Данная схема программатора и прошивка к нему проверены на практике и работают с управляющей программой WinPic800 версий 3.55G и 3.55B. Более старшие версии, например, 3.63C не работают с этим программатором. Производим настройку управляющей программы: в меню Settings — Hardware (Установки — Оборудование) выбираем GTP-USB-#0 или GTP-USB-#F1 и нажимаем Apply (Применить).

Нажимаем на панели кнопку и производим тест оборудования. В результате успешного тестирования появляется сообщение (см. ниже), которое не может нас не радовать.

Данный программатор отлично работал со следующими контроллерами (из того что было в наличии): PIC12F675, PIC16F84A, PIC16F628A, PIC16F874A, PIC16F876A, PIC18F252. Тест контроллеров, запись и чтение данных — выполнены успешно. Скорость работы впечатляет. Чтение 1-2 сек. Запись 3-5 сек. Глюков не замечено. Часть зашитых МК протестировано в железе — работает.


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

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


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

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

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

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


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

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

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


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

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


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

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


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

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


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


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

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


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

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


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

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


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

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

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


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

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


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

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


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

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

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

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


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


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

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

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

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


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


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


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


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


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

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

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

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

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

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

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

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

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

Сайт Kitsrus.com

16 октября 2007 г.

Последний пакет DIYpack для программистов PIC K128, K149, K150, K182

DIYpack25ep.zip


2 марта 2007 г.

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

Kit 128 Pic

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

Kit 149E Pic

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

Kit 150 Pic

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

Kit 182 Pic


7 апреля 2005 г.

Боб собрал некоторые заметки по программированию PIC ICSP.

Текущая документация поставляется с наборами 128, 149, 150 и 182.
Kit 128
Kit 149 Обновлено 17 апреля 2005 г.
Kit 150
Kit 182

См. Pdf-файлы в каждом diypack для получения дополнительной информации и схем.


25 марта 2005 г.

Если вы войдете на форум Kit Forum, вы увидите, что Боб Акстелл усердно работает над редизайном MicroPro и над созданием нового PIC ProgrammerKit 185.Одна небольшая проблема, которую мы сейчас исправляем, — это перегорание транзисторов, особенно при коротком замыкании проводов ICSP. В наборе 149 мы теперь используем 3xBC327-40 вместо BC558 и транзистор SOT23 MMBT2907A для других наборов.


Последний комплект DIYpack для K128 / 149/150/182

Скачать diypack25.zip Это будет последний diypack до выхода P19 / MP2. На данный момент новые PIC добавляться не будут.

Программный протокол, позволяющий переносить его на другие платформы — щелкните здесь (P018 от 16 августа 2004 г.).

Вот список PIC, которые программное обеспечение и прошивка diypack25 поддерживает для K149 и K150. K128 и K182 — это флеш-программаторы и поддерживают только те PIC с буквой F в номере детали:

.

12C508 16C65A 16C77 16F76 16F877
12C508A 16C65B 16C710 16F77 16F877A
12C509 16C66 16C711 16F737 18F242
12C509A 16C66A 16C712 16F747 18F248
12C671 16C67 16C716 16F767 18F252
12C672 16C620 16C745 16F777 18F258
12CE673 16C620A 16C765 16F83 18F442
12CE674 16C621 16C773 16F84 18F448
12F62916C621A 16C774 16F84A 18F452
12F675 16C622 16C83 16F87 18F458
16C505 16C622A 16C84 16F88 18F1220
16C554 16C71 16F627 16F818 18F1320
16C558 16C71A 16F627A 16F819 18F2220
16C61 16C72 16F628 16F870 18F2320
16C62 16C72A 16F628A 16F871 18F4220
16C62A 16C73 16F630 16F872 18F4320
16C62B 16C73A 16F648A 16F873 16C63
16C73B 16F676 16F873A
Добавлено из diypack23:
16C63A 16C74 16F684 16F874 16F5x
16C64 16C74A 16F688 16F874A 10Fxxx
18F6525 6621 8525 8621
(все бета) 16C64A 16C74B 16F73 16F876
16C65 16C76 16F74 16F876A
Добавлен diypack25 12F683

Поддержка 16F88 добавлена ​​в diypack22 на.Обратите внимание: резистор 10 кОм необходимо добавить между контактами 9 и 10
. Программирование носка


Предыдущие наборы для самостоятельной сборки

Если в документации к вашему набору указано, что нужно получить diypack18, diypack19 или diypack22 и т. Д., Вы ДОЛЖНЫ получить эту версию, чтобы поставляемая прошивка работала с версией MicroPro.exe из соответствующего diypack. После того, как вы получите комплект, обновите его до последней версии, запрограммировав прошивку с помощью соответствующего шестнадцатеричного файла из последней версии, заменив микропрограмму IC и запустив последнюю версию MicroPro.EXE.

diypack23v2.zip 29 сентября 2004 г. Голосовые аннотации удалены. Добавлена ​​поддержка 15F5x. Бета (непроверенная) поддержка 10Fxxx 18F6525 6621 8525 8621
diypack22.zip
diypack21.zip
diypack20.zip
diypack19.zip
2 марта 2004 г. Для загрузки в микросхемы 628A войдите в Fuses и выключите всю кодовую защиту.
diypack18.zip
diypack16.zip
diypack15.zip
diypack14.zip
diypack11.zip
diypack10.zip
diypack9.zip
diypack8.zip
diypack7.zip


У некоторых пользователей возникли проблемы с установкой Micropro.

НЕКОТОРЫЕ версии Windows XP не позволяют программе установки DIYPACK работать. Боб провел небольшое исследование и обнаружил, что обработчиком был Win16 (1997). Поэтому для людей, которые совершенно не могли установить MicroPro, Боб придумал разные версии DIYPACK22 и DIYPACK25.НИЧЕГО не меняется, кроме самого обработчика. Таким образом, в следующем выпуске и в дальнейшем в DIYPACK будет использоваться установщик Win32. Это тонкий намек на то, что, как и DOS, Microsoft постепенно отказывается от приложений Win16!

Скачать версии Боба можно здесь — diypack22a.zip и diypack25a.zip


USB-драйверы

Драйверы USB VCP для Windows можно загрузить с веб-сайта FTDI http://www.ftdichip.com/Drivers/VCP.htm. Выберите драйвер для версии Windows, которую вы используете, и ZIP-файл будет загружен. Все комплекты программатора используют микросхему FT232BM.

Руководства по установке (PDF-файлы) можно найти по адресу http://www.ftdichip.com/Documents/InstallGuides.htm


Fixhex — это программа исправления для людей, у которых есть компиляторы C, которые выводят нечетное количество байтов в строке файла Hex. MicroPro отклоняет файл, и в результате люди не могут использовать DIY Programmers.Эта программа исправляет файл Hex, чтобы MicroPro могла его принять. (1 апреля 2005 г.)


Новые программаторы USB PIC — наборы философии дизайна 149128 и 150

23 марта 2003 г. Мы быстро разрабатываем три новых программатора PIC, использующих порт USB: наборы 128, 149 и 150.
Первоначально должны были быть пакеты программного обеспечения для всех трех, но стало ясно, что один пакет программного обеспечения, охватывающий все три набора, будет лучше всего.

24 марта выпущен новый пакет программного обеспечения для Kit 149 с необходимыми изменениями в аппаратном обеспечении: замените кристалл с частотой 4,000 МГц на кристалл с частотой 6,000 МГц. Подробности ниже. Тогда все 3 комплекта теперь будут работать с одинаковой тактовой частотой, и пользовательский интерфейс будет одинаковым для всех трех комплектов. В новом программном обеспечении Kit 149 (V250303) также исправлены некоторые ошибки в предыдущем выпуске V030303.

Комплект 149 (печатная плата версии A). Программатор PIC USB и последовательного порта.Все сквозные компоненты, кроме микросхемы FT232BM. (Эта версия сейчас распродана.)

11 мая. Выпущен комплект 149 версии B PCB. Он добавляет ICSP и снимает 1 кристалл, некоторые резисторы и другие компоненты.) Обратите внимание, что гнездо ZIF не входит в комплект. Его нужно покупать дополнительно. В комплект входит обычная 40-контактная розетка для микросхем.

10 апреля 2004 г. Выпущен комплект 149 версии C.

Комплект 150.(«Комплект 149B без последовательного порта.») Программатор USB PIC, поддерживается программирование ICSP. В основном поверхностный монтаж. Режим ICSP. Некоторые сквозные компоненты. Выпущено 22 августа 2003 г. Новая версия 2 апреля 2004 г.

Kit 128. USB all-Flash программатор PIC. Нет внешнего источника питания. Нет ICSP. В основном поверхностный монтаж. На выбор: розетка ZIF с 40-контактным разъемом или просто 40-контактное гнездо для микросхемы 0,6 дюйма. Все компоненты для поверхностного монтажа предварительно припаяны. Выпущено 5 апреля 2003 г.


Комплект 149, программатор PIC для USB / последовательного порта

Выпущено 12/2002. Переключатель DPST переключает между USB и последовательным режимами. В комплекте используется современный FT232BM для поверхностного монтажа, припаянный на стороне пайки платы.


9 сентября 2003 г. Аппаратная модификация K149A K149B K150.

Было отмечено, что в схемотехнике этих комплектов, когда комплект находится в состоянии сброса, все напряжения программирования появляются в гнезде программирования и на выводах ICSP.Это также произойдет, когда платы подключены, а MicroPro не запущен. Обычно это не проблема, так как ИС программируются только во время работы MicroPro. Но это нежелательно. Решение состоит в том, чтобы добавить три резистора 3K3, как показано здесь. Эти резисторы будут добавлены в следующие печатные платы этих плат.


Программное обеспечение

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

V110103 Программное обеспечение пользовательского интерфейса, K149_v4.zip

шестнадцатеричных файлов прошивки. Эти шестнадцатеричные файлы можно программировать напрямую. вам не нужно использовать Параметры / Обновление. Используйте k149_v4.hexfirst.

ПРИМЕЧАНИЕ: , если вы добавили ссылку на программирование без нажатия клавиш после использования V030303, вы ДОЛЖНЫ удалить ее при запуске этой более ранней версии.


27 марта. Программное обеспечение пользовательского интерфейса V280103, k149_v61.zip Это обновление выполняет две задачи: заменяет V030303, в котором были некоторые ошибки, и обновляет оборудование до кварцевого режима с частотой 6 МГц.

ПЕРЕД обновлением до этой версии у вас ДОЛЖЕН быть 6.Доступен кристалл 000 МГц. Используйте шестнадцатеричный файл k149av61.hex, содержащийся в zip-файле, для программирования новой микропрограммной микросхемы. Затем замените кристалл с частотой 4.000 МГц на кристалл с частотой 6000 МГц, после чего вы обновитесь. Затем добавьте ссылку для режима программирования без нажатия клавиш.


3 апреля 2003 г. Поскольку тот же пользовательский интерфейс теперь будет использоваться для комплектов 149 (A и B), 128 и 150 это последнее обновление, которое теперь распаковывается в c: \ diypgmr. Кроме того, это обновление может распознать, какая плата программатора подключена к ПК.Для комплекта 149A вы ДОЛЖНЫ СНАЧАЛА запрограммировать новую микросхему микропрограммы перед запуском последней версии. Прочтите upgrade.txt в разархивированном файле. Получите последнюю версию отсюда. diypack7.zip

11 мая. Выпущен комплект 149 версии B PCB. Он добавляет ICSP и снимает 1 кристалл, некоторые резисторы и другие компоненты.) 40-контактный разъем ZIF, необязательный для обоих.


Kit 128 USB Flash Программатор PIC с разъемом ZIF

3 апреля 2003 г. Новейший программатор PIC для флеш-памяти USB-портов. Аппаратное и программное обеспечение, разработанное Тони Никсоном. Внешний источник питания не требуется. Над коробкой торчит только би-светодиод. На выбор предлагается 40-контактное гнездо ZIF с широким разъемом или обычное 40-контактное 0,6-дюймовое гнездо IC, если у вас есть собственное 40-контактное гнездо ZIF. В основном компоненты для поверхностного монтажа. Используется удлинительный кабель USB типа A, A-A.

Загрузите 13-страничное руководство пользователя здесь. (Это также есть в загрузке пользовательского интерфейса.)

Загрузите документацию k128intro.pdf, которая идет в комплекте.

Обратите внимание, что этот программатор НЕ программирует микросхемы без Flash! Убедитесь, что вы знаете, какие микросхемы PIC являются Flash (те, которые отмечены буквой F!), А какие нет.


Kit 182 USB Flash Программатор PIC без гнезда ZIF

Комплект 182 — это комплект 128 без гнезда ZIF. Таким образом, это программатор Flash ICSP, работающий от порта USB.Он будет продаваться полностью собранным, так как большинство компонентов монтируются на поверхность. Размер платы всего 48 х 30 мм. Есть 4 нейлоновых 10-миллиметровых стойки для защиты нижней стороны. Гнездовой разъем USB «B».

Перед покупкой убедитесь, что вы понимаете ICSP. У нас уже была одна жалоба от человека, который купил комплект, а затем жаловался, что «некуда» поставить IC!


Kit 150 USB PIC Programmer

22 августа 2003 г.Наконец-то выпущен сегодня. Он имеет USB-разъем B, а также 6-контактный разъем ICSP. Мы продаем его без разъема ZIF, но 40-контактный разъем ZIF рекомендуется для большинства программ, поскольку он очень удобен.


Часто задаваемые вопросы программиста PIC

Запрос: Питер, мне нужна ваша помощь с моим программатором MicroPro. Я использую DIYPACK11.ZIP версии 11. Я использую MPLAB 6.41 и самую последнюю версию HI-TECH PICC-18 v8.30, чтобы сгенерировать шестнадцатеричный файл для моего приложения. Когда я использую MicroPro с шестнадцатеричным файлом, он говорит: «Ожидается INHXFILE». Некоторые из шестнадцатеричных файлов, которые я использую, работают, в то время как другие выдают эту ошибку. Если вы можете помочь мне разобраться в этой проблеме, я был бы признателен.

Ответ Тони: происходит то, что большинство компиляторов помещают: 020000040000FA в начало файлов INHX32 для обозначения адреса 0000: xxxx Идентификатор 04 указывает верхний 16-битный адрес, следующие 4 цифры, в данном случае «0000».: 020000040030CA Здесь указывается старший 16-битный адрес «3000» = 3000: xxxx, который является адресом данных предохранителя. Ваш компилятор не помещает: 020000040000FA в первую строку файла HEX, поэтому MicroPro запутается и решит, что это не файл INHX32. diypack17 (теперь доступен) имеет возможность отключить это сообщение.


— = Программисты Atmel = —


Комплект 122. Программатор Atmel AVR. Для программирования 20-контактного DIP — 90S1200, 90S2313 и 40-контактного DIP — 90S4414, 90S8515.Программы со скоростью 9600 бод. Параллельный режим. С дополнительной платой адаптера теперь вы можете программировать AT90S4434 и AT90S8535. Он не будет программировать 8-контактные устройства AVR (90S2323, 90S2343).

Пересмотрено 8/2001

К122 собран и испытан. Так мы продаем собранный и протестированный Комплект 122. Выбор обычных разъемов IC или разъемов ZIF остается за покупателем.

Плата адаптера для K122 для программирования 90S4434 / 8535.

вид снизу платы адаптера
вид сверху на плату адаптера

Вопрос клиента: но вам не нужен программист для программирования AVR. Всего несколько строк в параллельный порт — seedontronics.com!

Ответ: AVR имеют режим последовательного программирования, называемый ISP — In System Programming. Да, вы можете использовать несколько строк кода из параллельного порта для программирования флэш-памяти, eprom и битов блокировки.НО микросхемы AVR имеют «предохранительные» биты, которые недоступны в режиме последовательного программирования. Например, в наших наборах 129 и 154 мы должны запрограммировать один из битов предохранителя RCEN для включения внутреннего генератора. Это было бы невозможно при последовательном программировании. Также есть предохранитель для отключения последовательного программирования. Если этот бит предохранителя запрограммирован, то микросхема вообще недоступна через ISP. Тогда его можно будет программировать только с помощью программатора, такого как комплект 122 для «параллельного режима».

Конечно, вы можете сделать программатор «параллельного режима», который будет работать с параллельным портом вместо последовательного, как в Kit 122. Но мы отказались от этого, потому что это потребует специального программного обеспечения для работы на каждом типе компьютеров. БОЛЬШОЕ преимущество комплекта 122 состоит в том, что весь интеллект заключен в встроенном ПО. Kit 122 будет работать на всех типах компьютеров. Все, что требуется, — это программа терминала / связи, которая есть на всех компьютерах.

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

Kit 117 — это пример, когда у нас есть специальное программное обеспечение только для Windows, работающее на параллельном порту. Обновление для новых микросхем PIC выполняется простым добавлением их в устройство.ini ‘файл.


Начало работы в программировании AVR. V4. Ноябрь 2000 г. уже в продаже.

Дэвис ван Хорн пишет: сначала он был написан, чтобы проиллюстрировать, как настроить AVR8515 и как использовать основные встроенные периферийные устройства, но, как и все, что осталось в холодильнике слишком долго, оно растет. Он имеет набор удобных программ для внешних устройств, таких как сервоприводы с дистанционным управлением, ЖК-дисплеи и VFD-дисплеи, шаговые двигатели .. Версия 4.0 есть все это плюс:
— устранение старых линейных буферов. Они были заменены кольцевыми буферами переменной длины. Я сделал их переменной длины, готовясь к схеме динамического распределения, но на данный момент я не уверен, стоит ли это реализовывать. Это часть того, что я исследую для версии 5.0

— реализация интерпретатора языка, считывающего команды с необязательными параметрами из EEPROM.Это также означает, что программу в EEPROM можно изменять, так что это отправная точка для робота или другого устройства, которое может «учиться». В языке реализовано всего четыре команды, но сначала я не хотел усложнять его. Добавить свои собственные команды тривиально просто, и они могут быть простыми процедурами или могут изменить поведение других частей системы. Это полностью зависит от пользователя. В настоящее время реализованные команды: Задержка (мс), Положение сервопривода (серво) (положение), Цикл и Пропуск (команды для пропуска). Я не реализовал переменные, но добавить несколько фиксированных переменных было бы тривиально.Я ищу более гибкую схему, которая позволила бы мне динамически выделять переменную память, но опять же, это что-то для 5.0

— есть много чисток и улучшений в других подпрограммах. С аппаратными назначениями справиться проще, и я включил все выделения ROM и RAM в подпрограммы, которые их используют, вместо того, чтобы помещать их в «tables.asm» и «equates.asm»

.

— tt по-прежнему быстрый, и он использует чуть больше половины ПЗУ (как настроено) и меньше половины оперативной памяти (опять же, как настроено) В реальном приложении вы, вероятно, выделяете только небольшое подмножество буферов, которые у меня есть в этой демонстрации , но я хотел сделать его визуально «загруженным», поэтому я использую все восемь сервоприводов (один управляется интерпретируемой программой, другой — генератором случайных чисел, а остальные просто нарастают), дисплей VFD (прокручивая верхнюю часть и нижние строки в противоположных направлениях в одном буфере), и ЖК-дисплей с другим текстом, но с аналогичной прокруткой, и вывод «Quick brown fox» на последовательный порт, плюс вывод кода Морзе со случайными сообщениями.При этом процессор все еще почти простаивает 🙂


Комплект 123. Программатор Atmel 89xxxx

Запрограммировать
· 89C1051, 89C2051 и 89C4051
· 89C51, 89LV51
· 89C52, 89LV52
· 89C55, 89LV55
· 89S8252, 89LS8252
· 89С53, 89ЛС53
. Поддержка 87F51, 87F52 (отп) добавлена ​​в августе 2000 г.

Цена 49 долларов США плюс 10 долларов США за пересылку и упаковку.

Две утилиты DOS доступны для загрузки, чтобы исследовать и переупорядочивать фрагментированные шестнадцатеричные файлы, создаваемые некоторыми компиляторами. (Фрагментированные шестнадцатеричные файлы могут заглушить любую программу последовательного программирования, которая этого не ожидает.) Hexmap.exe и reorder.exe

term.zip Терминальная программа без излишеств, написанная Фрэнком для программирования комплектов 121, 122 и 123. Это проще, чем использовать Hyperterminal. На основе DOS, но будет работать под W9x.


K151 Комплект 151 Программатор EEPROM

ПК Программатор параллельного порта для 24xxx, шины I2C и 93xxx EEPROMS.Только 8-битный режим программирования. Мы используем программное обеспечение 24C16 в комплекте 103 для рождественской елки, поэтому это была основная причина, по которой мы сделали этот комплект. На плате используется 16-контактный разъем ZIF. Верхние 8 контактов предназначены для 24ххх; нижние 8 предназначены для 93xxx SPI EEPROM.

Комплект 151 документации.

Изображение

Комплект 151. Программное обеспечение eeprog.exe


Kit 69. Электронные кости PIC 16C54

Сканирование комплекта 69 PCB

Один из самых популярных электронных наборов — это игральные кости.Теперь мы использовали микроконтроллер, содержащий всю электронику. Только те элементы, которые нельзя поместить в программное обеспечение, например дисплей, все еще находятся в аппаратном обеспечении. Весь код на дискете. Размер печатной платы 1,4 «x2,6».

Программное обеспечение Single Dice 10K


Набор 71. Двойные электронные кости PIC16C54

Код в наборе 69 расширен, чтобы бросить два кубика. Размер печатной платы 1.4 дюйма x2,6 дюйма.

Программное обеспечение Dual Dice 14K


30 июля 2003 г. Тони Никсон / Bubblesoft Software закрыл свой веб-сайт. Но его файлы pdf и asm для его Введение в PIC и My Next PIC Projects можно найти здесь. 1,15 МБ.


Design For DIY Programmer Hardware Tester — рабочая схема ICSP для DIY USB PIC программистов

Обратите внимание, что диод Шотти позволяет программатору DIY запитывать свой VCC без замыкания его VCC на нормальный источник питания PIC.Крошечный DIP-переключатель также будет работать вместо диода. ПРИМЕЧАНИЕ: диод очень удобен при разработке кода, но он снижает напряжение VCC примерно на 100 мВ (но никогда не было проблемой в моих проектах. Просто НЕ включайте PIC во время его программирования.

Рекомендуется 27K, чтобы ток VPP не увеличивал VCC. Это может быть даже больше. Вы можете использовать всего 10 кОм, если диод подключен последовательно к выводу MCLR, так что при применении VPP ничего не может проводить.Но иметь второй диод — бесполезная трата времени.

Причина этой схемы состоит в том, чтобы прояснить, как ICSP управляется программистом DIY.

Сам программатор PIC предназначен для обеспечения только VPP и VDD, достаточными для программирования устройства, и ничего больше. С диодом Шоттки, нагрузка VDD самого продукта игнорируется программистом во время программирования. Крышка чипа очень важна и может составлять всего 0.01 мкФ и до 0,1 мкФ — но не может быть больше, иначе время нарастания, необходимое для входа в режим программирования, не может быть достигнуто.

Другая причина заключается в том, что PIC должны входить в режим программирования. Некоторым необходимо сначала применить VCC, а другим — сначала применить VPP. Этот двухэтапный процесс вместе с PGD и PGC на gnd заставляет PIC переходить в режим программирования.


Дизайн для тестера аппаратного обеспечения программатора DIY


В этом PDF-файле показаны схемы для тестирования всех программаторов PIC DIY.Инструкции для пользователя прилагаются. Очевидно, что если НИ ОДИН из светодиодов не мигает, существует проблема связи с программатором, драйверами USB, кабелем и т. Д., Хотя внутренняя микросхема PIC также может быть вставлена ​​в обратном направлении или неисправна.

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

Zero External Parts — НЕМНОГО ТАЙНЫ

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

Квест

Существуют простые схемы программирования DIY, и на самом деле моим первым программистом для PIC был самодельный «усовершенствованный» NOPPP (программатор PIC без деталей) ; Полнофункциональное устройство, для которого требуется всего пара компонентов (не совсем «без деталей», но довольно близко к этому).Проблема в том, что он использовал параллельный порт ПК (R.I.P) и требовал внешнего источника питания. И это касается практически любой «классической» схемы программирования DIY PIC; все они либо требуют дополнительного оборудования, либо больше не могут использоваться на существующих компьютерах.

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

Но я знаю, что некоторые PIC поддерживают LVP (программирование низкого напряжения), что означает, что они могут быть запрограммированы с использованием только ~ 5 В; значительно упрощая необходимое оборудование. Имея это в виду, я подумал, что будет легко сделать дешевый и «не состоящий из деталей» (в том смысле, что не требуется никаких внешних компонентов или сборки) программатор PIC LVP , используя что-то вроде Arduino .

Использование Arduino также имеет много преимуществ; Совместимые платы (особенно варианты «nano» и «Pro mini») не только широко доступны, но также довольно дешевы и более чем способны обрабатывать все квитирование и логику 5 В, необходимую для программирования PIC, без каких-либо дополнительных компонентов. . Они также довольно популярны, так что есть вероятность, что у любого человека, заинтересованного в этом проекте, он уже есть. Они также подключаются к компьютеру через USB (ну, «коммуникационный» порт, управляемый микросхемой USB-Serial, но все же в счет), поэтому он должен работать для всех, у кого есть компьютер, произведенный после 1996 года.

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

Отлично, правда?

Что ж, дело в том, что… если вы начнете искать «программиста Arduino PIC» в Интернете, вас встретит ряд заброшенных проектов, решений, созданных для семейства устройств PIC, которые НЕ совместимы с тем, которое я хочу использовать, альтернативы, требующие ненужных дополнительных схем (например, специальный щиток Arduino или внешние адаптеры питания … потому что HVP … да), или проекты, которые немного связаны с платформами, настолько дорогими, что даже не имеет смысла рассматривать их в качестве альтернативы для что мне нужно (да, я говорю о том одном проекте, который использует RaspberryPi).

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

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

Результат

Перенесемся вперед через пару выходных, несколько месяцев работая над этим (извините, помешали другие проекты), мне удалось сделать прошивку для плат Arduino, которая может программировать несколько LVP-совместимых PIC, используя только Плата Arduino и утилита CLI (интерфейс командной строки), которая взаимодействует с ней.Интерфейс командной строки был написан на Java для обеспечения переносимости, поэтому он должен работать в Windows, Linux, OSX и т. Д.

Программирование PIC 16F628A только с помощью Arduino nano и ПК.

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

  • 16F87, 16F88
  • 16F627A, 16F628A, 16F648A
  • 16F873A, 16F874A, 16F876A, 16F877A.

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

Вы можете найти как прошивку, так и интерфейс командной строки в моем репозитории GitHub.

Использование

Всю информацию для запуска этого проекта можно найти в репозитории GitHub. И вы всегда можете запустить утилиту командной строки без аргументов, чтобы получить список доступных параметров, но чтобы дополнительно проиллюстрировать, насколько действительно «без внешних частей» этот программатор, вот как вы должны подключить Arduino Uno с ZEPPP к 16F628A:

16F628A, подключенный к Arduino с помощью ZEPPP

Я бы сказал, что это один из «самых простых» программистов PIC.

Как создать свой собственный программатор 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

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

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

Компоненты

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

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

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

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


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

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

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

Для простого аппаратного обеспечения, которое адресовано только подмножеству PIC, см. Мой программатор LProg. Это было оптимизировано для низкой стоимости при стандартном использовании общего интерфейса ПК. Он работает только с теми PIC, которым не требуется высокое напряжение на MCLR для входа в режим программирования, и все его сигналы имеют фиксированные значения 0–3.3 В. Эти два ограничения позволили сделать оборудование простым и, следовательно, снизить его стоимость. Схема доступна внизу этой страницы.

На другом конце находятся программаторы USBProg и USBProg2. Опять же, схемы доступны внизу этих страниц. Они имеют полностью регулируемое Vpp до 15 В и цифровые сигналы до 6 В. Они также имеют большую защиту. Например, цифровые выходы могут быть замкнуты на любое напряжение 0-6 В на неопределенное время без ущерба для программатора.Конечно, вся эта сложность связана с более высокими затратами на детали и производство.

Выбор программного обеспечения и микропрограмм в основном зависит от сложности микропрограмм и их скорости. Теоретически вы можете создать программиста, у которого есть возможности только для программного обеспечения хоста, чтобы устанавливать линии на определенные уровни. Протокол программирования PIC является синхронным, поэтому все тактирование может выполняться программно. Это упростит написание прошивки, но в результате будет очень медленным программистом. Реализация деталей всех различных алгоритмов программирования, о которых Microchip мечтала на протяжении многих лет, потребовала бы больше программной памяти, чем доступно в большинстве разумных управляющих PIC.Инженеры отдела запутывания программирования Microchip были очень заняты. Как сказал Воутер, могут быть различия в алгоритмах программирования между PIC, которые в остальном кажутся очень похожими. Вы должны внимательно прочитать спецификации программирования для каждого PIC, который вы собираетесь поддерживать. Нет ни одного алгоритма программирования, даже близко.

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

Сделать собственный программатор PIC как одноразовый для конкретного PIC не так уж и сложно. Пытаться создать PIC-программатора общего назначения труднее, возможно, намного труднее, чем думает большинство людей.Если вы в конечном итоге создадите свой собственный, я предлагаю вам поддержать мой протокол хоста. Если вы внимательно посмотрите на протокол, вы увидите, что большая его часть является необязательной. Если ваш программист использует мой хост-протокол, то у вас есть мой существующий хост-код, доступный для тестирования и, возможно, даже для регулярной работы. Большая часть моего исходного кода доступна по адресу http://www.embedinc.com/picprg/sw.htm.

Как использовать PICKit3 для загрузки программы в микроконтроллер pic

Как использовать PICKit3: Это руководство посвящено тому, как использовать записывающее устройство для программирования микроконтроллеров pic.Я уже публиковал статью о том, как использовать MikroC for pic для программирования микроконтроллеров pic на c. Программатор — это система отладчика, используемая для разработки программного и аппаратного обеспечения микроконтроллеров Microchip PIC. Система отладчика выполняет код как реальное устройство, потому что вместо использования специального чипа отладчика для эмуляции она использует устройство со встроенной схемой эмуляции. Все доступные функции данного устройства доступны в интерактивном режиме и могут быть установлены и изменены с помощью интерфейса MPLAB IDE.Я рекомендую вам проверить этот список руководств по микроконтроллеру pic . Вы также можете проверить полный список проектов микроконтроллеров pic.

Видео-лекция о том, как загрузить код в микроконтроллер pic

Pickit3 поставляется со следующими компонентами.

  1. Соединительный шнур
  2. Подключение к порту USB
  3. Маркер контакта 1
  4. Разъем для программирования
  5. Светодиоды состояния
  6. Кнопка

Соединительный шнур:

На программаторе предусмотрено удобное крепление шнурка.

Подключение к USB-порту:

Порт подключения представляет собой разъем USB mini-B. Он используется для подключения PICKit3 к ПК через USB-кабель.

Маркер контакта 1:

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

Разъем для программирования:

Это шестиконтактный разъем, который используется для подключения целевого устройства к PICKit3. Он состоит из следующих штифтов с штифтом 1, начиная с маркера.

  1. Vpp / MCLR (мощность)
  2. V DD Target (Power on Target)
  3. V SS (земля)
  4. ICSPDAT / PGD (стандартные данные COM)
  5. ICSPCLK / PGC (стандартные часы COM)
  6. LVP (Программирование низкого напряжения)

Светодиод состояния:

На PICKit3 предусмотрено три светодиода. Разные цвета указывают на разный статус PICKit3, а именно:

  1. Power (зеленый)

Питание на PICKit3 подается через порт USB.

  1. Активный (синий)

Канал связи активен, и PICKit3 подключен к ПК через USB-кабель.

  1. Статус

Занят (желтый)

Выполняется какая-то функция, и PICKit3 занят ею, как программирование

Ошибка (красный)

Ошибка PICKit3.

Соединение с микроконтроллером PIC:

Для соединения PICKit3 с микроконтроллерами PIC используются следующие соединения

  1. Контакт 1 горелки с контактом 4 микроконтроллера PIC
  2. Контакт 2 горелки с контактом 14 микроконтроллера PIC
  3. Контакт 3 горелки с контактом 5 микроконтроллера PIC
  4. Контакт 4 горелки с контактом 13 микроконтроллера PIC
  5. Контакт 5 горелки с контактом 12 микроконтроллера PIC
  6. Контакт 6 не подключен для нормального использования.

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

Полезность PICKit 3 Программист:

  • Отлаживайте приложение на собственном оборудовании в реальном времени
  • Отладка с аппаратными точками останова
  • Установить точки останова на основе внутренних событий
  • Контроль внутренних файловых регистров
  • Эмуляция на полной скорости
  • Запрограммируйте свое устройство

Вывод платы программатора ВЫХОД:

Плата программатора

имеет 6 выходных контактов с одной стороны для подключения к PICKit3.Ниже приведены булавки.

  1. Vpp / MCLR (мощность)
  2. V DD Target (Power on Target)
  3. V SS (земля)
  4. ICSPDAT / PGD (стандартные данные COM)
  5. ICSPCLK / PGC (стандартные часы COM)
  6. LVP (Программирование низкого напряжения)

Подключение платы программатора с PICKit3:

Поместите контроллер на плату программатора и затем подключите его к PICKit3 следующим образом. Подсчет кеглей Pickit3 начинается с маркера стрелки.

  1. Контакт 1 PICKit3 с MCLR платы программатора
  2. Контакт 2 PICKit3 с VCC платы программатора
  3. Контакт 3 PICKit3 с GND платы программатора
  4. Контакт 4 PICKit3 с PGD платы программатора
  5. Контакт 5 PICKit3 с PGC платы программатора

Контакт 6 не подключен для нормального использования.

Подключение микроконтроллера к плате программатора

Следующие соединения используются на плате программатора и PIC18F46K22

  1. MCLR платы программатора с контактом 1 PIC18F46K22
  2. VCC платы программатора с выводом 11 PIC18F46K22
  3. GND платы программатора с контактом 12 PIC18F46K22
  4. PGD платы программатора с контактом 40 PIC18F46K22
  5. PGC платы программатора с выводом 39 PIC18F46K22

Контакт 6 не подключен для нормального использования

Эти соединения предназначены только для PIC18F46K22.Для других микроконтроллеров обратитесь к паспорту соответствующего микроконтроллера.

Схема для проекта:

Подключите следующую цепь. Нет необходимости подключать кварцевый генератор и конденсатор. Просто подключите светодиоды, питание и резисторы. Вы обеспечите подключение платы программатора к светодиодам.

Программная часть:

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

Предлагает лучший дизайн — это простой программатор для микроконтроллеров PIC с питанием

от USB-порта вашего компьютера, не требующий внешнего источника питания

описаны пошаговые инструкции по сборке и отладке программатора.Там же будет подробно описан

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

и IC-Prog Pony Prog

При изучении микроконтроллера PIC мне понадобился программист. Толчком для

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

стоит довольно дорого, а массовые схемы, которые можно найти в Интернете, и печатные СМИ

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

в своей структуре несколько микросхем)

программатор для микроконтроллеров PIC:
НОМЕР СОЕДИНЕНИЯ CORP GND + 5V
VCC
VPP CLASSIC
8 8 1 4 6 7
14 14 1 4 12 13 907 4 12 13
28 8 20 1 27 28

Как я уже сказал, конструкция программы получилась очень компактной, что поместит все
в небольшой корпус.В качестве ответных USB-разъемов использовалась неисправная микросхема флеш-памяти.

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

Еще одна картина программирования:

IC-PROG — универсальная программа, с помощью которой можно прошивать кучу различных микросхем памяти микроконтроллера и т.д.
Мы заинтересованы в использовании Программа PIC применительно к микроконтроллерам.Что и будет рассмотрено на этой странице.
Чтобы начать загрузку программы, это можно сделать здесь на официальном сайте http: // www.ic-prog.com Итак запускаем программу выпадающий список выбираем тип ее микроконтроллеров

находятся в пути: Настройки Программатор

В появившемся окошке ставим галки следующим образом, кроме
использовать Com порты конечно.

JDM обязательно !!

Полная русская версия — COUNTER4STOP

страница переведена интерпретатором Google. (с) В. Курц 2010


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

Введение

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

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

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


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


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

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

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

Интерфейс к MIDI

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

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

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

MIDI-выход

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

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

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

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

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

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

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

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

Метод POT

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

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

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

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

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

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

У

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

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

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

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

Ссылки PIC и Basic Stamp MIDI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Питер М.

Оставить комментарий

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