Site Loader

Содержание

Самый простой программатор для 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МикросхемаCh440G1В блокнот
IC2МикросхемаК1533ЛА31В блокнот
VR1Линейный регулятор

LM7812

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

LM7805

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

КТ502Е

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

КТ3102Е

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

1N4148

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

1 кОм

3

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

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

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

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

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

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

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

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

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

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

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

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

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

LM7812

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

LM7805

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

КТ502Е

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

КТ3102Е

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

1N4148

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

1 кОм

3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

«Прошивка» микроконтроллера PIC18F2550.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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


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

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

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

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

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

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

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

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

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

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

“0xxxxxxxxxxxxxx 0”.

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

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

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

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


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

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


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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

За основу предлагаемого программатора взята публикация из журнала «Радио» №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». Вероятно, он либо принимает какие-то данные, не подавая напряжение программирования, либо делает это слишком быстро, таким образом что фильтрующий конденсатор еще не успевает зарядиться.

Микроконтроллеры 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 микроконтроллеры или Простой 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МикросхемаCh440G1В блокнот
IC2МикросхемаК1533ЛА31В блокнот
VR1Линейный регулятор

LM7812

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

LM7805

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

КТ502Е

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

КТ3102Е

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

1N4148

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

1 кОм

3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MAX232E

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

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

10 кОм

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

470 Ом

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

4.7 кОм

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

2 кОм

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

1 кОм

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

240 Ом

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

MAX232E

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

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

Программатор pickit2 lite своими руками

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

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

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

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

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

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

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

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

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

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

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

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

По нему передаются данные, поэтому на схеме панели программирования он помечен словом «Data». При программировании микроконтроллеров вывод AUX обычно не используется, хотя он и нужен при программировании МК в режиме LVP.

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

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

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

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

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

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

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

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

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

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

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

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

В качестве дросселя L1 на 680 мкГн лучше применить готовый (например, типов EC24 или CECL). Но если готовое изделие найти не удастся, то дроссель можно изготовить самостоятельно.

Для этого нужно намотать 250 – 300 витков провода ПЭЛ-0,1 на сердечник из феррита от дросселя типа CW68.

Стоит учесть, что благодаря наличию ШИМ с обратной связью, заботиться о точности номинала индуктивности не стоит.

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

Чтобы защитить элементы схемы от обратного напряжения с линий программирования в случае использования USB-программатора в режиме внутрисхемного программирования ICSP (In-Circuit Serial Programming) применён диод VD2.

VD2 – это диод Шоттки. Его стоит подобрать с падением напряжения на P-N переходе не более 0,45 вольт.

Также диод VD2 защищает элементы от обратного напряжения, когда программатор применяется в режиме USB-UART преобразования и логического анализатора.

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

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

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

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

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

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

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

Готовый рисунок печатной платы со всеми изменениями вы найдёте по ссылке в конце статьи. Открыв файл в программе Sprint Layout 5.

0 можно с помощью режима «Печать» не только распечатать слой с рисунком печатных проводников, но и просмотреть позиционирование элементов на печатной плате.

Обратите внимание на изолированную перемычку, которая связывает 6 вывод DD1 и 21 вывод ZIF-панели. Печатать рисунок платы необходимо в зеркальном отображении.

  1. Изготовить печатную плату можно методом ЛУТ, а также маркером для печатных плат, с помощью цапонлака (так делал я) или «карандашным» методом.
  2. Вот рисунок позиционирования элементов на печатной плате (кликабельно).

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

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

Ссылка на файл PK2V023200.hex, запакованный в архив rar, дана в конце статьи.

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

Также стоит знать, что «прошивка» микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы.

Примерный путь расположения файла PK2V023200.hex  — «C:Program Files (x86)MicrochipPICkit 2 v2PK2V023200.hex».

У тех, у кого на ПК установлена 32-битная версия Windows, путь расположения будет другим: «C:Program FilesMicrochipPICkit 2 v2PK2V023200.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, я рассказал в отдельной статье. Следующий шаг.

  1. Необходимые файлы:
  2. Главная » Микроконтроллеры » Текущая страница
  3. Также Вам будет интересно узнать:

Источник: https://go-radio.ru/usb-programmator-pic-svoimi-rukami.html

Клон PICkit 2

PICkit 2 — недорогой программатор/отладчик предназначенный для отладки и прошивки Flash микроконтроллеров фирмы Microchip. Подключение к компьютеру осуществляется через USB-интерфейс.

Поддерживается практически все семейство PIC-микроконтроллеров: PIC18, 8-бит, 16-бит и 32-бит микроконтроллеры. С помощью среды MPLAB IDE поддерживается внутрисхемная отладка кода.

В данной статье представлен проект по изготовлению клона PICkit 2, с полным сохранением функционала оригинального программатора.

Характеристики программатора:
1. Данный программатор работает точно также, как и оригинальный PICkit 2
2. Работа как с 5В, так и с 3.3В микроконтроллерами
3. В схеме не используются мосфеты, только преобразователь на м/с LM358

  • 4. Возможность прошивки МК без компьютера

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

Печатная плата программатора (вид со стороны радиоэлементов, вид с обратной стороны платы и схема расположения элементов):

После того, как печатная плата изготовлена и на нее припаяны все необходимые элементы, нужно прошить микроконтроллер PIC 18F2550. Для этого, нужно воспользоваться другим программатором, либо прошить PIC программатором по последовательному протоколу (см. например здесь)

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

Для прошивки контроллеров и отладки можно использовать оригинальное ПО от PICkit 2 и среду MPLAB IDE. Скачать все ПО можно с официального сайта Microchip отсюда.

Для программирования какого-либо микроконтроллера, предварительно необходимо заглянуть в его даташит и проверить конфигурацию выводов PGC (clock), PGD(data), Vpp(/MCLR) и выводы питания Vss и Vdd. См. схемы ниже.

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

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнотIC1IC2AIC3, IC4T1, T2, T4, T5Q2, Q3Q4-Q7D1LED1LED2LED3Q1C1, C4, C6, C7, C9, C10, C12C2, C3C5C8C11R1, R4, R8, R30R2, R6, R7, R13R3, R27, R29R5, R9, R11, R34R10R12, R21, R22, R23R14, R16, R18, R33R15R17, R25R19, R24, R26R28R31, R32R36S1X1ICSP
МК PIC 8-битPIC18F2550128DIPПоиск в UtsourceВ блокнот
Операционный усилительLM358N1Поиск в UtsourceВ блокнот
Последовательная память EEPROMAT24CP2Поиск в UtsourceВ блокнот
Биполярный транзистор2N39044Поиск в UtsourceВ блокнот
Биполярный транзисторBD1402Поиск в UtsourceВ блокнот
Биполярный транзистор2N39064Поиск в UtsourceВ блокнот
Выпрямительный диод1N41481Поиск в UtsourceВ блокнот
СветодиодRED1RED (красный)Поиск в UtsourceВ блокнот
СветодиодGREEN1GREEN (зеленый)Поиск в UtsourceВ блокнот
СветодиодYELLOW1YELLOW (желтый)Поиск в UtsourceВ блокнот
Кварцевый резонатор20 МГц1Поиск в UtsourceВ блокнот
Конденсатор0.1 мкФ7Поиск в UtsourceВ блокнот
Конденсатор22 пФ2Поиск в UtsourceВ блокнот
Конденсатор0.22 мкФ10.47 мкФПоиск в UtsourceВ блокнот
Электролитический конденсатор10 мкФ1Поиск в UtsourceВ блокнот
Электролитический конденсатор47 мкФ1Поиск в UtsourceВ блокнот
Резистор33 Ом4Поиск в UtsourceВ блокнот
Резистор10 Ом4Поиск в UtsourceВ блокнот
Резистор470 Ом3Поиск в UtsourceВ блокнот
Резистор4.7 кОм4Поиск в UtsourceВ блокнот
Резистор8.2 кОм1Поиск в UtsourceВ блокнот
Резистор100 кОм4Поиск в UtsourceВ блокнот
Резистор10 кОм4Поиск в UtsourceВ блокнот
Резистор100 Ом1Поиск в UtsourceВ блокнот
Резистор1 кОм2Поиск в UtsourceВ блокнот
Резистор330 Ом3Поиск в UtsourceВ блокнот
Резистор820 Ом1Поиск в UtsourceВ блокнот
Резистор2.7 кОм2Поиск в UtsourceВ блокнот
Резистор240 Ом1Поиск в UtsourceВ блокнот
Катушка индуктивности680 мкГн1Поиск в UtsourceВ блокнот
Кнопка1Поиск в UtsourceВ блокнот
РазъемRN61729-S1USBПоиск в UtsourceВ блокнот
Разъем1Поиск в UtsourceВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Колтыков А.В. Опубликована: 2011 г. 2 Вознаградить Я собрал 0 0

x

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография

Источник: https://cxem.net/mc/mc82.php

Внутрисхемный USB-программатор-отладчик PICkit2

28 ноября 2007

Для начала освоения и практического применения микроконтроллеров разработчику необходим доступный инструментарий. Компания Microchip Technology Inc. выпускает недорогой программатор начального уровня PICkit2, схема и программное обеспечение в исходных кодах которого выложены на сайте www.microchip.com/pickit2. Рассмотрим особенности и возможности этого USB-программатора.

Программатор PICkit2 соединяется с компьютером по широко распространенному интерфейсу USB (программатор построен на базе контроллера PIC18F2550 USB 2.0). Через USB-порт так же осуществляется обновление прошивки программатора, т.е.

при необходимости PICkit2 может обновить свое программное обеспечение без применения дополнительных программаторов. Использование интерфейса USB позволило программатору отказаться от дополнительного источника питания и получать питание непосредственно от USB-порта компьютера.

PICkit2 имеет простую схемотехнику, что позволяет уместить его в небольшом брелке (см. рис. 1).

Рис. 1. Внешний вид программатора PICkit2

Программатор PICkit2 служит для внутрисхемного программирования большинства Flash микроконтроллеров Microchip и с появлением новых микроконтроллеров список поддерживаемых устройств постоянно расширяется. Типовая схема подключения приведена на рис. 2.

Вывод
Назначение
1Vpp/MCLR -напряжение программирования, сигнал сброса
2Vdd — напряжение питания для программируемой схемы
3Vss — «земляной» вывод
4ICSPDAT/PGD — сигнал данных
5ICSPCLK/PGC — сигнал тактирования
6AUX — вспомогательный вывод, как правило не используется

Рис. 2. Типовая схема внутрисхемного программирования

Программатор PICkit2 работает под управлением своей собственной оболочки или под управлением среды разработки MPLAB IDE. При работе программатора под управлением оболочки «PICkit2 Programmer» (рис.

3) PICkit2 позволяет выполнять все стандартные операции: стирать, программировать и проверять память программ и EEPROM, устанавливать защиту кода, редактировать содержимое Flash и EEPROM.

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

Рис. 3. Программа «RICkit2 Programmer»

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

Для устройств с внешним питанием PICkit2 может формировать напряжение питания в диапазоне напряжений от 2,5 до 5 В с шагом 0,1 В. Это полезная особенность, т.к.

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

Внимание! USB-порт компьютера может выдавать ток до 100 мА. Если подключенное к PICkit2 устройство потребляет больший ток, то USB-порт автоматически выключится. Если вам нужно получить ток больше 100 мА, то используйте внешний источник питания.

Как правило, напряжение шины USB составляет 5 В. Однако для некоторых компьютеров и ноутбуков напряжение может отличаться. Для приложений требующих высокую точность, программатор PICkit2 имеет возможность калибровать напряжение, выдаваемое во внешнюю схему.

Для устройств с внешним сбросом оболочка программатора позволяет управлять сигналом сброса микроконтроллера.

В меню «Tools» появилась возможность включить опцию «Use VPP First Program Entry», это может понадобиться для контроллеров, конфигурация которых и настройка портов не позволяет войти в режим программирования (например, для контроллеров PIC12F675 с включенным внутренним сбросом и портами, подключенными к PGD и PGC, настроенными на выход). Попробуйте включить эту опцию, если программатор выдает ошибку проверки конфигурации («Verification of configuration failed»).

Некоторые микроконтроллеры PIC12F и PIC16F имеют внутренний RC-генератор, калибровочная константа для которого определена на заводе-изготовителе и хранится по последнему адресу в памяти программ микроконтроллера.

Как правило, «правильные» программаторы при программировании таких микроконтроллеров сначала считывают калибровочную константу, затем стирают микроконтроллер, а затем программируют его пользовательской программой с запомненной константой.

Если по каким-либо причинам константа утеряна, то PICkit2 (версии ПО 1.хх) поможет восстановить калибровку генератора.

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

Рис. 4. Окно «UART Communication Tool» программы «PICkit 2 Programmer»

Если ваше устройство должно общаться с другими устройствами по UART, то вы можете использовать PICkit2 как средство отладки последовательных протоколов. UART Communication Tool (см. рис. 4) позволяет задавать скорость до 38400 бод, и так же позволяет:

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

Для того чтобы использовать UART Communication Tool, нужно соединить выводы микроконтроллера UART и программатора PICkit2 согласно табл. 1. 

Таблица 1. Соединение выводов UART-микроконтроллера и программатора PICkit2  

Выводы программатора PICkit2
Выводы микроконтроллера UART  
(1) VPP
(2) VddНапряжение питания
(3) GNDGND
(4) PGDTX UART — логический уровень
(5) PGCRX UART — логический уровень
(6) AUX

В версии оболочки 2.40 появилась возможность программирования микросхем последовательной памяти с интерфейсом I2C и SPI (24LCxxх, 25LCхxx и 93LCхxx) и ключей KeeLOQ.

Работа под средой разработки MPLAB IDE.

Обычно разработчики, работающие с PIC-контроллерами, используют в качестве среды разработки MPLAB IDE, так как MPLAB IDE — это мощный бесплатный инструментарий разработки и отладки программ для PIC-микроконтроллеров.

MPLAB IDE включает в себя редактор, программный симулятор, позволяет подключать Си-компиляторы различных производителей, работает совместно с программаторами и эмуляторами Microchip. Среда разработки MPLAB IDE (см. рис.

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

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

Рис. 5. Окно среды разработки MPLAB IDE, использование программатора PICkit 2 в качестве внутрисхемного отладчика

Для внутрисхемной отладки используются те же самые выводы микроконтроллера, что и для программирования, поэтому никаких переделок в схеме не нужно*. Для включения режима отладки нужно в меню Debugger ® Select Tool выбрать PICkit2.

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

Рис. 6. Окно среды разработки MPLAB IDE, отслеживание изменения переменных

Варианты поставок PICkit2

Компания Microchip Technology Inc. поставляет программатор PICkit2 в разных комплектациях (см. табл. 2).

Таблица 2. Комплектация PICkit2

Код заказа
Описание
PG164120программатор PICkit2
DV164120программатор PICkit2 + демонстрационная плата с PIC16F690
DV164121 PICkit2 Debug Express (программатор PICkit2 + демонстрационная плата с PIC16F887)

Комплект DV164120, помимо программатора, содержит демонстрационную плату с установленным контроллером PIC16F690 и, за счет совместимости по выводам, позволяет работать с любыми PIC-контроллерами в корпусах DIP-8, DIP-14 и DIP-20 (см. рис. 7).

Рис. 7. Совместимость по выводам контроллеров в 8-, 14- и 20-выводных корпусах

Программатор-отладчик PICkit2 является весьма мощным и универсальным отладочным средством для микроконтроллеров Microchip, но в то же время имеет доступную цену и даже, при желании, может быть легко повторен по документации, предоставляемой Microchip.

Программатор PICkit2 активно поддерживается двумя платформами: оболочкой PICkit2 и средой разработки MPLAB IDE, причем с каждым апгрейдом добавляются все новые и новые функции, а способность программатора обновлять свое ПО дает возможность произвести обновление меньше чем за минуту. Помимо функций программирования микроконтроллеров и микросхем памяти, PICkit2 может использоваться как отладочное средство, а именно — как внутрисхемный отладчик или как отладчик протоколов UART, и, надеемся, в следующих обновлениях Microchip порадует нас новыми функциями!

* —   Для внутрисхемной отладки желательно иметь новую версию PICkit2 с красной кнопкой. Если у вас предыдущая версия PICkit2, то для обновления нужно слегка модифицировать схему, или добавить подтягивающие резисторы к GND на линии PGD и PGC в схеме, так как PICkit2 изначально планировался только как программатор. Инструкцию по обновлению PICkit2 можно скачать с сайта www.gamma.spb.ru. 

Получение технической информации, заказ образцов, поставка —
e-mail: [email protected]

•••

Источник: https://www.compel.ru/lib/54859

Программатор PICkit2 lite (мини версия с печатной платой)

Задачу поставил чрезвычайно простую: повторить с минимумом отверстий, так как свёрла уже надоели ????

Небольшая загвоздка была в том, что нужно было подобрать полупроводники в SMD корпусе, выбор у нас в магазине оказался небольшой, в итоге близкими по параметрам стали: BC847B вместо кт3102, BC856B вместо кт361, 1N4148WS вместо КД522, 10BQ040 вместо 1N5817 и ещё небольшое отклонение от номиналов — это дроссель в 1000 мкГн вместо 680 мкГн (опять же в силу малого ассортимента), гнездо USB-BF заменил на mini USB, конденсатор 100мкф на 47 мкф (ради того, чтобы не торчал), остальные детали согласно номиналам. Перемычку ХТ1 не ставил, так как обновлять ПО не собираюсь.

  • Прошивка
  • При первом включении программатор отказался работать, причина: непромытый флюс под микроконтроллером, вывод: тщательнее промывайте платы перед испытаниями!
  • Размеры платы 55х27,5 (можно ещё немного урезать сбоку ???? )
  • Вид спереди и сзади:
  • Тестировал в WIN7 x64, сразу после подключения система ищет драйвер:

В MPLAB v8.87 программатор определился, но при выборе  pic16f84a выдал сообщение, что данный девайс не поддерживается, на этом я и успокоился и перешёл к PICkit2 v2.61.

В среде PICkit2 v2.61 попробовал прошить pic16f84a, всё успешно.

  1. Также попробовал рассчитать калибровочную константу для PIC12f675, была 3458, новая 345C.
  2. Тестирование напряжения Vpp показало 11,9 В.
  3. Микроконтроллер PIC18F2550 для повторения схемы прошивал EXTRA-PICом, через программу WINPIC800 Печатная плата тут,  а вот прошивка.

Источник: http://cxema.my1.ru

Возможно, вам это будет интересно:

Источник: http://meandr.org/archives/8580

Microchip PicKit2. Клон программатор

   PICkit2 это недорогой Программатор / отладчик для микроконтроллеров Microchip PIC.Фирменная программа от Microchip, которая работает с этим программатором, поддерживает все базовые 8-разрядные, а также 16 и 32 разрядные микроконтроллеры, а также целый рад чипов памяти Serial EEPROM. Программатор поддерживается напрямую мощной средой разработки  MPLAB IDE, что позволяет с его помощью отлаживать большинство проектов, основанных на чипах Microchip PIC. Отладка производится путем задействования точек остановки программы, запуска и остановки однократной операции. При этом можно проверить и изменить содержимое памяти и  регистров микроконтроллера.

   Предлагаемый клон PICkit2 имеет следующие особенности:

-Устройство работает точно также, как и оригинальный  PICkit

2-Совместимость с любыми микроконтроллерами с питанием как от 5 так и от 3.3В.

-Не применяются

MOSFET  

Шесть простых шагов изготовления этого программатора.

Шаг1. Скачиваем прошивку, схему и чертежи печатной платы.

  • Скачиваем прхив по этой ссылке.  
  •     В архиве вы найдёте файлы прошивки для контроллера PIC18F2550, принципиальную схему и печатную плату в формате PDF и PNG.

Если вы не планируете использовать программатор без соединения с компьютером, то можете исключить микросхемы  IC3 и IC4 (это чипы памяти, у которых хранится программа в случае программирования без компьютера).   

Шаг 2. Печатная плата и пайка компонентов. .

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

   

Вид со стороны компонентов

Перемычки

Нижний слой

После того как плата изготовлены и все детали распаяны на свои места, пришло время для…

ШАГ 4. Подготовка микроконтроллера PIC18F2550 к работе в должности программатора.

Здесь может возникнуть проблема, обусловленная тем, что для того, чтобы запрограммировать микроконтроллер для программатора вам потребуется… программатор.  Возьмите программатор где-то на прокат или попросите человека, у которого он уже есть, прошить микроконтроллер для вас.

Прошивка микроконтроллера находится в ZIP архиве, который вы скачали в шаге 1.  

ШАГ 5

. Установка драйвера и программы — оболочки. Драйвер для нашего новорожденного программатора устанавливается вместе с фирменной утилитой от Microchip. Сперва необходимо скачать и установить программу Microchip PicKit2 V2.61, а после установки подключить наш программатор к USB порту компьютера. Не используйте для подключения программатора USB хаб. Windows установит драйвер для нового устройства.     ШАГ 6. Используем программатор — программирование других микроконтроллеров. . Здесь можно использовать 2 способа. Поскольку программатор PicKit2 поддерживается также системой разработки MPLABIDE, то программирование можно осуществлять непосредственно из ее среды. Другой способ — использование небольшой утилиты-оболочки, которую мы с вами установили в шаге 5. Я долгое время использую второй способ, так как программа MPLABIDE у меня не установлена — я использую компиляторы сторонних производителей.          Подключаем программируемый контроллер. Существует 2 способа программирования контроллеров. Первый способ — прошивка контроллера PIC непосредственно установленного в схеме устройства, которое собрано на этом контроллере. Таком метод называется «внутрисхемным программированием» — ICSP -ICSP —  In-Circuit Serial Programming (внутрисхемное последовательное программирование). На самом деле данный программатор изначально разрабатывался фирмой Microchip именно для такого варианта работы, поскольку он умеет не только программировать контроллеры, но и отлаживать устройства, на этих контроллерах собранные. Но ничто не мешает нам сделать для этого программатора простейший адаптер с ZIF панельной нулевого усилия и прошивать отдельные микроконтроллеры, устанавливая их в эту панельку. Схема такого адаптера с панелькой будет опубликована в отдельной статье на нашем сайте.   

Так или иначе, для подключения программируемого чиппа используются 5 проводов. Это Vdd или питание (+5 или 3.

3 вольта, в зависимости от модели контроллера) , Vss или земля, MCLR — сброс и провод подачи напряжения программирования,ICSP DAT — данные программирования и ICSP CLK — Тактирование программирования.    

    Пример распиновки выводов программирования для микроконтроллеров PIC16F84 и PIC16F628   

Распиновка стандартного разъема ICSP оригинального программатора PicKit2. Во всех разрабатываемых вами устройствах рекомендуется придерживаться этой распиновки. Вывод с номером 6 не используется (зарезервирован).

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

Источник: https://musbench.com/e_digital/pickit2_clone_02.html

PICKIT2 облегченная версия

21 марта 2012.

Широкому распространению микроконтроллеров фирмы Microchip способствует свободное распространение документации не только на сами микросхемы, но и на отладочные средства для них.

Например, в руководстве пользователя программатора-отладчика PICkit 2 дается полная принципиальная схема этого программатора с интерфейсом USB. Такой программатор, однако, слишком сложен для повторения «один к одному». Автор разработал его упрощенную версию.

От оригинального PICkit 2 он унаследовал следующие функции: программирование микроконтроллеров с напряжением питания 5 В, преобразователь интерфейса USB-UART, часть функций логического анализатора, автоматическое восстановление калибровочной константы встроенного RC-генератора микроконтроллеров, где такая константа используется, обновление операционной системы программатора с помощью стартового загрузчика. После несложной доработки появляется возможность программировать микроконтроллеры и с напряжением питания менее 5 В.

Схема программатора показана на рис. 1.

Установленный в нем микроконтроллер PIC18F2550 (DD1) имеет встроенный контроллер USB, информационные линии которого D- и D подключены к соответствующим контактам розетки XS1, предназначенной для соединения программатора с компьютером. Согласно спецификации USB, разъем ведомого устройства (программатора) типа В, а ведущего (компьютера) типа А. Это гарантирует их правильное соединение стандартным USB-кабелем.

Рисунок 1

Светодиод HL1 включен, когда на программатор с шины USB поступает напряжение питания 5 В. Светодиод HL2 сигнализирует, что между программатором и компьютером идет обмен информацией. Тактовая частота микроконтроллера (20 МГц) задана кварцевым резонатором ZQ1.

Перемычку S1 устанавливают, когда необходимо перевести программатор в режим обновления программы микроконтроллера DD1 по интерфейсу USB. При ее наличии после включения питания в микроконтроллере начинает работать хранящаяся в его памяти программа начальной загрузки (bootloader). При обычной работе программатора bootloader не используется и перемычка должна быть снята.

Напряжение программирования Vпр, которое может лежать в интервале 8,5 ..14 В, формирует импульсный преобразователь напряжения, основные элементы которого — транзистор VT1, накопительный дроссель L1, диод VD1 и сглаживающий конденсатор С4.

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

Напряжение обратной связи стабилизатора поступает с резистивного делителя R7R9 на вывод 2 микроконтроллера — один из входов встроенного в него АЦП.

Транзисторы VT2—VT4 по командам микроконтроллера DD1 коммутируют цепи Vрр и Vcc, по которым на программируемый микроконтроллер в нужном порядке поступают напряжения соответственно 12 В и 5 В Информацию о том, что питание на программируемый микроконтроллер подано, микроконтроллер DD1 получает через резистор R12.

Диод Шотки VD2 предотвращает попадание в программатор напряжения с выводов питания программируемого микроконтроллера, если для него предусмотрен собственный источник питания.

Падение напряжения на этом диоде не должно превышать 0,45 В.

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

Для программируемых микроконтроллеров в корпусах DIP предусмотрена панель XS2 — это так называемая ZIF-панель, в которую можно свободно вставлять (ZIF расшифровывается как Zero Insertion Force — нулевое усилие вставления) микросхемы с числом выводов до 40 и с разным расстоянием между их рядами.

Для правильного программирования микроконтроллеры в корпусах с разным числом выводов и перепрограммируемые микросхемы памяти (EEPROM) вставлять в панель так, как показано на рис. 1.

Рекомендуется также убедиться по представляемым изготовителем микросхемы справочным данным (Datasheet, Programming specification), что при установке ее в панель XS2 сигналы программирования и питание будут поданы правильно.

Чтобы запрограммировать микроконтроллер, который по какой-либо причине установить в панель XS2 невозможно, придется изготовить для него отдельный адаптер, подключив его к разъему ХР1.

Этот же разъем можно использовать и для внутрисхемного программирования. На рис. 2 показано, как подключить микроконтроллер PIC24FJ16GA002 с номинальным напряжением питания 3,3 В.

Цепь Vcc программатора в этом случае не используется.

Рисунок 2

На рис. 3 изображена односторонняя печатная плата программатора. Она выполнена таким образом, что может быть легко разрезана на две (собственно программатор и адаптер с панелью XS2), соединяемые лишь пятью перемычками. Для предварительно запрограммированного с помощью другого программатора (например, Extra-PIC) микроконтроллера DD1 на плате предусмотрена панель.

Рисунок 3

Дроссель L1 — ЕС24-681К, CECL-681K или CW68-681K. Его можно изготовить самостоятельно, намотав 250—300 витков провода ПЭЛ диаметром 0,1 мм на стержневой или гантелеобразный ферритовый магнитопровод. Поскольку преобразователь напряжения охвачен обратной связью, особенно точно подбирать индуктивность дросселя не требуется.

Транзисторы КТ3102А и КТ361Б можно заменять другими маломощными кремниевыми соответствующей структуры, а диод КД522Б — импортным аналогом 1N4148.

Рассматриваемый программатор, как и оригинальный PICkit 2, работает под управлением оболочки «PICkit 2 Programmer» или в среде разработки программ MPLAB IDE.

Оба приложения бесплатно распространяются фирмой Microchip и периодически обновляются. Для работы «PICkit 2 Programmer» требуется пакет «Net Framework», который интегрирован в дистрибутив PICkit 2 V2.

61 Install with .NET Framework (30.3 Мб).

Программа для микроконтроллера DD1 имеется в обоих указанных выше дистрибутивах. После их установки на компьютере путь к НЕХ-файлу для загрузки в этот микроконтроллер ..PICkit 2 v2PK2V023200.hex или ..MPLAB IDEPICkit 2PK2V023200.hex. Поскольку программа постоянно совершенствуется, ее версия (число после буквы V в имени файла) может быть и другой.

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

При первом подключении программатора с правильно запрограммированным микроконтроллером DD1 к компьютеру в списке диспетчера устройств появится новое USB HID-совместимое устройство. Для таких устройств в операционных системах семейства Windows имеются встроенные драйверы. Они будут установлены автоматически, что, несомненно, удобно.

Оболочка «PICkit 2 Programmer» и среда MPLAB IDE позволяют программировать практически все микроконтроллеры семейства РIC. Их перечень постоянно пополняется.

Для начала работы с «PICkit 2 Programmer» следует запустить ее и установив программируемый микроконтроллер в панель XS2, нажать на экранную кнопку Read.

В окне программы должен отобразиться тип подключенного микроконтроллера. Одновременно будет прочитано содержимое его памяти, которое можно увидеть в окнах Program Memory и EEPROM Data.

С помощью пункта меню File Export Hex предоставляется возможность записать прочитанную информацию в НЕХ-файл.

Чтобы загрузить в микроконтроллер коды из НЕХ-файла, нужно, прежде всего, выбрать нужный файл, открыв пункт меню File Import Hex. Окно Program Memory (или EEPROM Data) будет заполнено его содержимым. Нажатием на экранную кнопку Write запускают процесс программирования.

Просмотр и изменение слова конфигурации микроконтроллера начинают со щелчка мышью по надписи «Configuration:» в верхней части главного окна программы, открывающего окно Configuration Word Editor. Внесенные в разряды слова изменения отображаются красным цветом. Чтобы записать их в микроконтроллер, необходимо нажать на экранную кнопку Save.

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

В оболочке «PICkit 2 Programmer» предусмотрена процедура ее восстановления. Ее запускают, выбирая пункт меню Tools OSCCAL Auto Regenerate. Программа предупреждает, что все содержимое памяти будет стерто. Чтобы начать выполнение процедуры, с этим следует согласиться, нажав на экранную кнопку ОК.

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

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

Однако в дальнейшем, с появлением новых версий этой программы, ее можно обновлять в уже действующем программаторе, подключенном к компьютеру по интерфейсу USB Для этого необходимо, не включая программатор, установить в нем перемычку S1 и лишь затем соединить его с компьютером и запустить программу «PICkit 2 Programmer» Через меню Tools Download PICkit 2 Operating System открыть НЕХ-файл с новой версией программы, после чего произойдет ее загрузка в микроконтроллер.

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

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

Для этого необходимо соединить контакт 3 (Clock) разъема ХР1 с входом RX UART а контакт 4 (Data) — с выходом ТХ Соединяют также контакт 5 (GND) с общим проводом отлаживаемого устройства, а на контакт 2 (Vcc) подают от него напряжение 2,5…5 В.

Выбрав в программе «PICkit 2 Programmer» пункт меню Tools→UART Tool, откройте интерфейсное окно обмена, установите необходимую скорость обмена и нажмите на экранную кнопку Connect.

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

Программатор может работать и в режиме логического анализатора, для чего достаточно выбрать пункт меню Tools→Logic Tool и задать в открывшемся окне режимы работы Logic I/O и Analyzer.

Следует учитывать, что в этом окне показана нумерация контактов разъема фирменного программатора PICkit 2, которая не совпадает с нумерацией контактов разъема ХР1 на рис. 1.

Pin 5 соответствует контакту 3 этого разъема (линия Clock), a Pin 4 — его контакту 4 (линия Data) Эти контакты могут служить входами (компьютер регистрирует логические уровни поданных на них сигналов) или выходами (компьютер устанавливает на них заданные логические уровни).

Программатор может работать и под управлением среды разработки MPLAB IDE. Его подключение к компьютеру не отличается от описанного выше.

В MPLAB IDE необходимо задать тип микроконтроллера (Configure→Select Device) и программатор PICkit 2 (Programmer Select Programmer).

После этого автоматически происходит проверка связи с программатором и соответствие типа установленного в панель XS2 микроконтроллера заданному.

НЕХ-файл для программирования загружают в буферную память среды разработки, открыв пункт меню File→Import, и переписывают из буфера в программную память микроконтроллера командой Programmer→Program.

Для чтения содержимого памяти микроконтроллера в буфер выполняют команду Programmer→Read. Чтобы записать прочитанное в НЕХ-файл, нужно выбрать пункт меню File→Export.

На закладке Memory Areas открывшегося окна следует указать области памяти микроконтроллера, содержимое которых должно быть записано в файл, а на закладке File Format — формат создаваемого НЕХ-файла (обычно выбирают INHX32).

Собственно операцию записи выполняют нажатием на экранную кнопку ОК.

Содержимое буфера памяти программ, прочитанное из НЕХ-файла или из микроконтроллера, можно просмотреть, выбрав пункт меню View→Program Memory, причем как в виде шестнадцатеричных машинных кодов, так и в дизассемблированном виде.

В MPLAB IDE для программатора PICkit 2 имеется дополнительная панель с «быстрыми» кнопками, дублирующими нужные для работы с ним пункты меню. При наведении курсора на эти кнопки появляются подсказки, поясняющие выполняемые функции.

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

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

Еще одно преимущество — более удобное, чем при работе с оболочкой «PICkit 2 Programmer» — представление разрядов слова конфигурации в соответствующем окне.

Автор Т. НОСОВ

Источник: https://radioparty.ru/prog-pic/368-pickit-lite

ПРОГРАММАТОР EXTRA PIC

 

   Для программирования микроконтроллеров серии pic, есть немало различных радиосхем. А недавно нашёл схему ещё одного программатора EXTRAPIC и сразу же им заинтересовался. В ней всё очень просто и грамотно. На входе стоит MAX 232 преобразующая сигналыпоследовательного порта RS-232 в сигналы, пригодные для использования в цифровыхсхемах с уровнями ТТЛ или КМОП ,не перегружает по току COM-порт компьютера, так как использует стандартэксплуатации не представляет опасности для COM-порта. Этот девайс работает с любыми COM-портами, как стандартными (+/-12v; +/-10v) так и снестандартными COM-портами некоторых моделей современных ноутбуков, имеющихпониженные напряжения сигнальных линий, вплоть до +/-5v!Поддерживается распространёнными программами IC-PROG, PonyProg , WinPic 800

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

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



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

 

Расположениевыводов ICSP у PIC-контроллеров


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

   Микроконтроллеры с 14-контактным корпусом вставляется частью ножек всоответствующую 8-контактную панель.

 

Рисунок печатной платы:



Работа с программатором

   Сперва устанавливаем программу IC—prog. Скачайте и распакуйте программу вотдельный каталог. В образовавшемся каталое должны находиться три файла: 

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

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


   Установили,теперь надо ее настроить.  Дляэтого: 

  • (Только для 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«.
  • «Настройки» >> «Опции» >> выберите вкладку «Программирование» >> снимите «галочку» с пункта: «Проверка после программирования» и установите «галочку» на пункте «Проверка при программировании«. Нажмите «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 (обычно красного цвета).
  4. Если переключатель режимов поставить в положение 1 то будет светится светодиод HL3

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


Тестированиеканала данных программатора EXTRAPIC:
  1. 13 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.
  2. 12 вывод микросхемы Da1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
  3. 6 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
  4. 1 и 2 вывод микросхемы DD1: напряжение 0 вольт. При установке «галочки»: +5 вольт.
  5. 3 вывод микросхемы DD1: напряжение +5 вольт. При установке «галочки»: 0 вольт.
  6. 14 вывод микросхемы DA1: напряжение от -5 до -12 вольт. При установке «галочки»: от +5 до +12 вольт.

   Если все тестирование прошло успешно, топрограмматор готов к эксплуатации. 


Детали для сборки EXTRA-PIC

DRB9F, разъём COM-порта («female»,»мама»), (1шт).
Разъём питания, диаметр внутр. штыря 2,1мм. (1шт).
SCL-40, панель DIP40. (1 шт).
SCS-28, панель DIP28, узкая. (1шт).
SCS-18, панель DIP18. (1шт).
SCS-08, панель DIP8. (1шт).
78L05, стабилизатор +5v, корпус ТО-92. (2шт).
78L12, стабилизатор +12v, корпус TO-92. (1шт).
MAX232, ST232, SP232, ADM232, или аналог. (1шт).
КР1533ЛА3,КР15xxЛА3, 74xx00, или аналог. (1шт).
1N4007, диод. (1шт).
1N4148, диод. (2шт).
АЛ307 или GNL-5013, светодиод зелёного цвета. (1шт).
АЛ307 или GNL-5013, светодиод красного цвета. (1шт).
КТ502Е, транзистор p-n-p, корпус TO-92. (1шт).
КТ3102, транзистор n-p-n, корпус TO-92. (1шт).
220,0x25v, электролитический / Оксидный конденсатор. (1шт).
10,0x16v, электролитический / Оксидный конденсатор. (4шт).
0,1 мкФ, керамический дисковый конденсатор. (2шт).
1k0, Резистор. (Цвета: «коричн.,чёрн.,красн.,золот.»). (6шт).
4k7, Резистор. (Цвета: «жёлт.,фиол.,красн.,золот.»). (2шт).

 

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

Originally posted 2019-01-20 19:11:45. Republished by Blog Post Promoter

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 и дополнительные материалы автора программатора. 

Введение в PIC16F628a — Инженерные проекты

Привет, ребята! Я вернулся, чтобы дать вам ежедневную дозу ценной информации, чтобы вы продолжали возвращаться к тому, что мы можем предложить. Сегодня я подробно расскажу о Introduction to PIC16F628a. Он определяется как автономный 18-контактный микроконтроллер PIC, который поставляется с памятью, процессором, периферийными устройствами и в основном используется для встроенных систем и приложений. Микроконтроллеры всегда остаются главным приоритетом для экспертов, где автоматизация является основной проблемой.До изобретения микроконтроллеров микропроцессоры широко использовались для выполнения различных функций, связанных с промышленной автоматизацией и приложениями обработки. Оба они так или иначе работают идентично, однако есть некоторые исключения, например, микропроцессоры не поставляются с ПЗУ, ОЗУ и другими периферийными устройствами, нам нужно добавить их извне, чтобы они работали как микроконтроллер, однако микроконтроллер поставляется со всеми периферийными устройствами на одном кристалле, нам не нужно добавлять их извне; именно это делает его компактным по сравнению с громоздким микропроцессором.В этом руководстве я расскажу обо всем, что связано с PIC16F628a, его основными функциями, распиновкой, работой и приложениями. Давайте сразу же приступим к делу и закрепим все, что вам нужно знать.

Введение в PIC16F628a

  • PIC16F628a — это крошечный 18-контактный чип, который содержит процессор, память, контакты ввода-вывода, другие периферийные устройства и в основном используется для встроенной системы, а также в приложениях, которые имеют удаленное или прямое соединение с системой автоматизации. .
  • Это недорогой, высокопроизводительный 8-разрядный микроконтроллер на базе CMOS Flash, который в равной степени совместим с устройствами PIC16F628, PIC16C5X, PIC16C62XA и PIC12CXXX.
  • PIC16F628a поставляется с 128 байтами памяти данных EEPROM, внутренним генератором 4 МГц, двумя 8-битными и одним 16-битным таймером, USART, PWM, двумя компараторами и программируемым опорным сигналом низкого напряжения, что делает его пригодным для бытовой техники, автомобильной, промышленной и бытовой техники. Приложения.
  • Процессор PIC основан на усовершенствованной архитектуре RISC и поставляется с набором из 35 инструкций, которые просты в использовании и легко настраиваются.
  • Как и некоторые контроллеры в сообществе PIC, PIC16F628a имеет рабочий диапазон от 2 до 5.5 В в диапазоне температур от -40 до 125 ° C.
  • Размер программируемой памяти составляет 3,5 КБ, а SRAM — 224 байта.
  • Эта модель PIC способна хранить 2048 слов программной памяти, поэтому максимальная длина программы не может превышать 2048 инструкций, где каждое слово определяет одну инструкцию.
  • Четыре тактовых цикла необходимы для выполнения каждой инструкции, за исключением инструкций перехода и условных инструкций, которые могут потребовать 8 тактовых циклов.

Распиновка PIC16F628a

На следующем рисунке показана распиновка PIC16F628a.
  • Глядя на схему расположения выводов контроллера выше, можно ясно предположить, что большинство выводов на левой стороне могут использоваться для различных целей, однако указание любого вывода для конкретной функции исключает использование этого вывода для других целей.
  • В этой модели есть два порта, известные как порт A и порт B.
  • Все эти выводы являются двунаправленными выводами ввода / вывода, за исключением вывода 14 и Вывод № 5 , которые являются выводами напряжения питания и заземления соответственно.
  • Контакт № 7 и Контакт № 8 используются для последовательной связи, где Rx — это вывод приема USART, используемый для приема последовательных данных, а Tx — вывод передачи USART, используемый для отправки последовательных данных. .
  • Контакт # 4 можно использовать тремя способами. E. MCLR (Master Clear) , который требует постоянного напряжения 5 В и не должен превышать Vdd. При настройке как MCLR этот вывод ведет себя как активный сброс низкого уровня для устройства.Он также используется как входной порт и вход напряжения программирования.
  • Pin # 15 и 16 известны как OSC2 (Oscillator 2) и OSC1 (Oscillator 1), , где мы можем подключить внешний генератор с частотой около 20 МГц. Вывод 16 является входом для кварцевого генератора, а вывод 15 действует как выход для генератора.
  • И , контакт 2, и , контакт № , 3 — это выводы аналогового компаратора, где вывод № 3 также используется как вход синхронизации для Timer0.
  • Вывод № 6 — это двунаправленный вывод ввода / вывода, который можно использовать для внешнего прерывания.
  • Контакт № 9 используется для захвата, сравнения и ШИМ и может быть запрограммирован программно.
  • Контакт № 10 — это входной вывод программирования низкого напряжения, который также может использоваться для изменения вывода прерывания. Важно отметить, что при настройке программирования низкого напряжения отключаются как «слабые подтягивающие резисторы, так и переключение контактов прерывания».
  • Если вы новичок в микроконтроллерах и испытываете трудности с поиском правильного подхода к практическому опыту работы с контроллером, вы можете взглянуть на Введение в микроконтроллеры, где я изложил все, что вам нужно знать, и с небольшими усилиями вы можете научитесь хорошо разбираться в контроллерах и оптимизируйте проекты в реальном времени в соответствии с вашими потребностями и требованиями.
Схема памяти
  • Схема памяти немного отличается, где каждая ячейка памяти рассматривается как регистр, к которому можно получить доступ по ее адресу.
  • Важно отметить, что не все регистры доступны все время, а память разбита на четыре банка, которые имеют 128 регистров, и только один задний может быть доступен в данный момент.
  • Первые 32 регистра в каждом банке известны как регистры специального назначения, которые могут использоваться для управления процессором и выводами ввода / вывода.Последние 16 регистров, доступных в каждом банке, используются всеми банками, значения которых могут быть доступны в любое время, независимо от конкретного используемого банка.
  • Существует единственный рабочий регистр, известный как «W», который в основном используется для хранения измененных значений различных функций, используемых в контроллере.
  • Объем памяти этой модели немного меньше, чем у других контроллеров, доступных на рынке, однако вы можете скомпилировать функцию, которая требует минимальных инструкций и скорости обработки.Если вы собираетесь работать с высокой скоростью обработки и большим объемом памяти, вам необходимо рассмотреть возможность работы с PIC16F877a.
Основные характеристики Эта модель контроллера PIC очень полезна для встраиваемых проектов и имеет некоторые ценные функции, которые ставят этот совет выше многих контроллеров в сообществе PIC. Особые характеристики микроконтроллера

  • Программирование низкого напряжения, при котором микросхема программируется с использованием рабочего напряжения устройства
  • Низкоскоростной тактовый режим
  • Программируемый сброс аварийного отключения (BOR)
  • Сброс при включении
  • Сторожевой таймер с независимым генератором для надежной работы
  • Выбираемые опции осциллятора
  • Программируемая кодовая защита
  • Multiplexed Master Clear / Входной контакт
  • Промышленный диапазон температур

Входы / выходы и блоки

  • 15 контактов ввода / вывода с индивидуальным управлением направлением
  • 18-контактный корпус DIP и SMD
Высокопроизводительный RISC-процессор
  • Всего 35 однословных инструкций для изучения
  • Все инструкции представляют собой один цикл (1 мкс), за исключением программных ветвей
  • Работает на частоте 20 МГц с внешним генератором
  • Внутренний генератор 4 МГц, который выдает часы на определенной частоте с использованием постоянного напряжения.Его можно заставить работать на частоте 48 кГц для целей энергосбережения и отладки
  • 2 КБ флэш-памяти программ
  • ОЗУ 224 байта
  • 128 байт EEPROM
  • Внутрисхемное последовательное программирование
  • 1000000 запись EEPROM, стойкость
  • 100000 операций записи Flash Endurance
  • Генератор запуска и таймер включения
  • Широкий диапазон рабочего напряжения от 2 до 5,5 В
Периферийные функции
  • Универсальный синхронный / асинхронный приемник / передатчик (USART)
  • Один 16-битный таймер / счетчик
  • Два 8-битных таймера / счетчика (TMR0, TMR2)
  • Модуль захвата / сравнения PWM (CCP)
  • Сильноточный источник / сток для прямого привода светодиодов
  • Два аналоговых компаратора
  • Программируемые слабые подтягивания на PORTB

Технология CMOS

  • Технология высокоскоростной CMOS FLASH
  • Полностью статическая конструкция
  • Энергосберегающий спящий режим
  • Хранение данных в течение 40 лет
  • Высокопрочная флеш-ячейка
  • Программируемый VREF

Компилятор PIC16F628a

  • Компилятор MPLAB C18 — стандартный компилятор, используемый для микроконтроллеров PIC.Вы можете получить этот компилятор онлайн с официального сайта Microchip.
  • Сторонние приложения также доступны для компиляции программы, в которой MikroC Pro для PIC опережает другие компиляторы, доступные на рынке.
  • Вы должны проверить этот список из трех лучших компиляторов PIC C, где вы можете выбрать любой компилятор в соответствии со своими потребностями и требованиями.
  • Код написан в PIC Compiler, который компилирует код и генерирует шестнадцатеричный файл, который загружается в микроконтроллер PIC.

Приложения

  • В основном используется во встроенной системе
  • Приложения для промышленной автоматизации и обработки
  • Системы домашней автоматизации и безопасности
  • Блоки обработки данных
  • Робототехника
На сегодня это все, надеюсь, я предоставил вам все, что вам нужно знать об этом контроллере. Если вы не уверены или у вас есть какие-либо вопросы, вы можете задать мне их в разделе комментариев ниже. Я хотел бы помочь вам чем могу.Не стесняйтесь держать нас в курсе ваших ценных предложений, они помогут нам предоставить вам качественную работу. Спасибо, что прочитали статью.

USB PIC Programmer — Electronics-Lab.com

Эта страница предназначена для всех, кто хочет запрограммировать устройство PIC (Microchip) через порт USB. Поискав в Интернете готовых проектов, я нашел хороший под названием Open Programmer, в котором есть несколько схем, плат и открытый исходный код. Исходная ссылка — http: // openprog.altervista.org/OP_ita.html

Меня беспокоила необходимость установить на материнскую плату определенную плату с разъемами в зависимости от модели программируемого PIC. Более того, предложенный макет не соответствовал моим личным представлениям о «компактности». Итак, я предлагаю здесь небольшую версию этой схемы, использующую один интеллектуальный встроенный разъем ZIF. Эта версия жертвует многими моделями микроконтроллеров без PIC. Я буду благодарен всем, кто предлагает реализацию более широкого диапазона, подходящую для программирования Atmel и других устройств.В любом случае, если ваша цель — программировать устройства PIC, вы попали на хороший сайт.

Коробочка, разъем USB, розетка ЗИФ, два светодиода. Это все в моем компактном предложении.

Описание

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

Схема

Сборка

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

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

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

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

Коробка

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

Здесь и далее окончательный результат:

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

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

Скачать программное обеспечение для ПК можно по ссылке ниже — OpenProg.rar

Скачать файл PIC .hex можно по ссылке ниже — OProg.hex

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

Подключите программатор к ПК с помощью USB-кабеля типа «папа-папа». Устройство рассматривается как универсальное.Зеленый светодиод сначала быстро мигает, указывая на то, что соединение установлено. Затем медленно, показывая, что этап подключения завершен. Программное обеспечение для ПК позволяет боту записывать и читать EEPROM любой PIC, установленной на ZIF socked. Функции тестирования позволяют измерять высокое напряжение Vpp, генерируемое повышающим преобразователем, присутствующим в главной цепи. Это напряжение в любом случае уже проверено самой прошивкой.

Программируемый PIC должен быть размещен в гнезде ZIF, как показано на следующем рисунке.Версия этого изображения в высоком разрешении доступна ЗДЕСЬ для печати и прикрепления к задней части самого программатора.

PIC16F628A 8-разрядный микроконтроллер PIC — схема расположения выводов, характеристики, приложения, техническое описание, работа, обзор

PIC16F628A — это 8-разрядный микроконтроллер среднего уровня на базе CMOS FLASH, который поставляется с 18-контактным корпусом, из которого 16 контактов могут использоваться в качестве контактов ввода-вывода. Этот микроконтроллер имеет 4 МГц внутреннего генератора с 128 байтами памяти данных EEPROM, упакованных с помощью одного Capture / Compare / PWM, и модуля USART с 2 компараторами.Этот микроконтроллер поддерживает программирование низкого напряжения.

PIC16F628A Конфигурация контактов

Номер контакта

Имя контакта

Описание

1

RA2 / AN2 / VREF

Двунаправленный вывод ввода / вывода порта A, бит 2 или аналоговый компаратор, входной канал 2, или аналоговый выход опорного напряжения

2

RA3 / AN3 / CMP1

Двунаправленный порт ввода / вывода или вход аналогового компаратора или выход компаратора 1.

3

RA4 / T0CKI / CMP2

Двунаправленный контакт ввода / вывода порта A: бит 4, вход тактового сигнала таймера 0 или выход канала 2 компаратора.

4

RA5 / MCLR / VPP

Входной порт или главный сброс или вход напряжения программирования.При настройке как MCLR этот вывод является сбросом с активным низким уровнем для устройства, в основном используется для программирования или вывода 5-го бита порта A.

5

VSS

Контакт заземления питания.

6

RB0 / INT

Вывод двунаправленного ввода-вывода порта B, бит 0 или вывод внешнего прерывания.

7

РБ1 / RX / DT

Вывод двунаправленного ввода-вывода порта B, бит 1 или вывод USART, или вывод синхронных данных.

8

РБ2 / TX / СК

Вывод двунаправленного ввода-вывода порта B, бит 2 или вывод USART для передачи или ввод-вывод синхронных часов.

9

RB3 / CCP1

Контакт двунаправленного ввода-вывода порта B, бит 3 или ввод-вывод с ШИМ-схемой сравнения Capture.

10

RB4 / PGM

Двунаправленный вывод ввода / вывода порта B, бит 4 или вывод программирования низкого напряжения.

11

РБ5

Двунаправленный контакт ввода / вывода порта B, бит 5.

12

RB6 / T1OSC / T1CKI / PGC

Двунаправленный вывод ввода-вывода порта B, бит 6, или выход генератора Timer1, или вход тактового сигнала Timer1, или тактовый сигнал ICSP, используемый в основном для программирования.

13

RB7 / T1OSI / PGD

Двунаправленный вывод ввода / вывода порта B, бит 7 или вход генератора Timer1, или данные программирования ICSP, в основном используемые для целей программирования.

14

VDD

Контакт положительного питания.

15

RA6 / OSC2 / CLKOUT

Двунаправленный контакт ввода / вывода порта A, бит 6 или выход кварцевого генератора или выход синхронизации в RC / INTOSC

16

RA7 / OSC1 / CLKIN

Двунаправленный контакт ввода / вывода порта A, бит 7 или вход кварцевого генератора или вход внешнего тактового сигнала

17

RA0 / AN0

Двунаправленный вывод ввода / вывода порта A, бит 0 или вход аналогового компаратора, канал 0.

18

RA1 / AN1

Двунаправленный контакт ввода / вывода порта A, бит 1 или аналоговый компаратор, входной канал 1

Характеристики и спецификации микроконтроллера PIC16F628A

PIC16F628A — Упрощенные функции и спецификации

CPU

Средний 8-битный

Количество выводов

18

Рабочее напряжение (В)

2 — 5.5 В

Количество контактов ввода / вывода

16

Модуль АЦП

Нет

Модуль таймера

3

Компараторы

2

Модуль ЦАП

Нет

Периферийные устройства для связи

UART (1)

Внешний осциллятор

Есть

Внутренний осциллятор

4 МГц

Программная память (КБ)

3.5 КБ

Скорость процессора (MIPS)

5

байта RAM

224 байта

Данные EEPROM

128 байт

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

Альтернатива для PIC16F628A

Альтернативные продукты для микроконтроллера PIC16F628A перечислены ниже-

  1. PIC12F629
  2. PIC12F683
  3. PIC16F505
  4. PIC12F508
  5. PIC16F676
  6. PIC16F72
  7. PIC16F873A
  8. PIC16F876A
  9. PIC16F886
  10. PIC16F252

Введение в PIC16F628A

PIC16F628A — это 8-разрядный микроконтроллер среднего уровня на базе CMOS FLASH, который поставляется с 18-контактным корпусом, из которого 16 контактов могут использоваться в качестве контактов ввода-вывода.Этот микроконтроллер имеет 4 МГц внутреннего генератора с 128 байтами памяти данных EEPROM, упакованных с помощью одного Capture / Compare / PWM, и модуля USART с 2 компараторами. Этот микроконтроллер поддерживает программирование низкого напряжения.

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

PIC16F628A также имеет два 8-битных и один 16-битный таймер, подходящий для приложений среднего уровня, связанных с синхронизацией, где требуются разные таймеры.

PIC16F628A работает от 2 В до 5,5 В, поэтому подходит для 3.Приложения логического уровня 3 В и 5,0 В. Сброс просмотра, сброс при включении, сторожевой таймер с независимым генератором, энергосберегающие спящие режимы также поддерживаются микроконтроллером PIC16F628A. Схема контактов PIC16F628A показана ниже —

Подробные характеристики PIC16F628A

PIC16F628A — Подробные характеристики

CPU

Средний диапазон 8 — бит

Архитектура

8 — бит

Размер программной памяти (Кбайт)

3.5 КБ

RAM (байты)

224 байта

EEPROM / HEF

128 байт

Счетчик выводов

18

Макс. Частота процессора (МГц)

20 МГц

Выбор периферийных контактов (PPS)

Внутренний осциллятор

4 МГц

№Компараторов

2

№ операционного усилителя

Нет

Кол-во каналов АЦП

Нет

Максимальное разрешение АЦП (бит)

АЦП с вычислением

Количество преобразователей ЦАП

Нет

Максимальное разрешение ЦАП

Внутреннее опорное напряжение

2 — 5.5В

Обнаружение нулевого пересечения

Количество 8-битных таймеров

2

Количество 16-битных таймеров

1

Таймер измерения сигнала

Аппаратный таймер ограничения

№ШИМ выходов

1

Максимальное разрешение ШИМ

1024

Угловой таймер

Математический ускоритель

№Модуля UART

1

№ модуля SPI

Нет

№ модуля I2C

Нет

№ USB-модуля

Нет

Оконный сторожевой таймер (WWDT)

CRC / сканирование

Генератор с числовым программным управлением

Кап.Сенсорные каналы

Нет

Сегментный ЖК-дисплей

Нет

Минимальная рабочая температура (* C)

-40 ° С

Максимальная рабочая температура (* C)

125 ° С

Минимальное рабочее напряжение (В)

2 В

Максимальное рабочее напряжение (В)

5.5В

Высокое напряжение

Программирование микроконтроллера PIC Микроконтроллеры

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

Для программирования микроконтроллера PIC нам понадобится IDE (интегрированная среда разработки), в которой происходит программирование. Компилятор, в котором наша программа преобразуется в читаемую форму MCU, называемую HEX-файлами. IPE (интегрированная среда программирования), которая используется для выгрузки нашего шестнадцатеричного файла в наши микроконтроллеры PIC.

IDE: MPLABX v3.35

IPE: MPLAB IPE v3.35

Компилятор: XC8

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

Чтобы вывести или загрузить наш код в PIC, нам понадобится устройство под названием PICkit 3. Программатор / отладчик PICkit 3 — это простой и недорогой внутрисхемный отладчик, управляемый ПК, на котором работает MPLAB IDE ( v8.20 или выше) на платформе Windows.Программатор / отладчик PICkit 3 является неотъемлемой частью набора инструментов разработчика. Базовая схема программирования для PIC16F628 показана ниже.

В дополнение к этому нам также понадобится другое оборудование, такое как плата Perf или макет, паяльная станция, микросхемы PIC, кварцевые генераторы, конденсаторы и т. Д.

Компоненты, связанные с PIC

PICkit3, Плата для разработки PIC, кварцевые генераторы, конденсаторы, адаптер 12 В, регулятор напряжения 7805.

Применение PIC16F628A

Это базовый 8-разрядный микроконтроллер среднего уровня, который может использоваться в следующих приложениях:

1. Операции ввода вывода

2. Управляющие приложения

3. Обработка аналоговых данных

4. Интеграция датчиков и регистрация данных

5. Мелкомасштабное, дешевое производство на базе встроенных приложений

2D Модель

Размеры PIC16F628A показаны ниже —

Последовательный порт Профессиональный PIC16F628A Программатор микрочипов PIC16 и PIC18

Модель: FD-SPP

ПОС Программист является существенный инструмент, если ты хочешь учить или построить проекты с участием Микрочип ПИК Микро Процессоры.

Это программист для те, кто не есть Параллельный Порт на их ПК. Программист может быть используется с Бесплатная Windows Программное обеспечение например «PIC ПРОГРАММИСТ Профессиональный Серийный » из Ошософт и может работать хорошо с прочими серийный программирование программное обеспечение.

Программист Печатная плата двойной двусторонний PTH доска измерение 6 см х 8 см. Поскольку мой идея была делать это программист маленький в размер с ICP способность с ICP заголовок имея PICKIT2 совместимый штырь связи, у меня есть использовал отдельный Программирование Доска содержащий Гнезда IC на 20 (Включает 8,14 и 20-контактный ПОС), 18, 28 и 40 контактов ПОС.

Прошивка в PIC 16F628A органы управления TXD, RXD, Vdd & Линии Vpp программировать цель Чип. А настоящий RS232 интерфейс IC используется соединить программист к ПК com порт.

Кому использовать это Программист, ты потребуется 14-20 В постоянного тока или AC Мощность адаптер, А Программирование Плата адаптера и серийный кабель.Программирование Адаптер Совет включены с этим программист.

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

Печатная плата с предварительно запрограммированной прошивка в PIC 16F628A есть также имеется в наличии для тех кто не есть программист.

Если желаю чтобы построить это программист с использованием PIC16F628A, 627, г. 627A или 628, вы май запрос для подходящее прошивка с 8, 10, 12, 16 или 20 МГц кристалл частота.

Бесплатно прошивка для PIC16F628 и 628A уже поставлен здесь для кристалл частоты из 8, 10, 12, 16 & 20 МГц.

Бесплатно Серийный Порт Проф Программирование Программное обеспечение является подходящее для программирование, оба PIC16F & PIC18F чипсы используя это программист.

Сайт Kitsrus.com

16 октября 2007 г.

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

DIYpack25ep.молния


2 марта 2007 г.

Набор для программирования 128 изображений

Комплект 149E Программатор Pic

Комплект 150 программатор изображений

Набор 182 Программатор изображений


7 апреля 2005 г.

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

Текущая документация поставляется с наборами 128, 149, 150 и 182.
Комплект 128
Комплект 149 обновлен 17 апреля 2005 г.
Комплект 150
Комплект 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 марта выпущен новый пакет программного обеспечения для комплекта 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 дюйма, если у вас есть собственное 40-контактное гнездо ZIF. В основном компоненты для поверхностного монтажа. Используется удлинительный кабель USB типа A, A-A.

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

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

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


Комплект 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

K122 собран и испытан. Таким образом мы продаем собранный и протестированный Комплект 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 контактов предназначены для 24xxx; нижние 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 также может быть вставлен задом наперед или неисправен.

Введение PIC12F683 Учебное пособие по схемам программирования


Рис. 1 Испытательная установка Mircochip PIC PIC12F683.

by Lewis Loflin

В управлении мощностью с широтно-импульсной модуляцией для микроконтроллеров мы исследовали использование PIC12F683 для управления выходной мощностью 12-вольтовой светодиодной лампы.Здесь мы рассмотрим сам PIC12F683 и некоторые советы по программированию.

Видео на YouTube: My Home Built PIC Dev. Доска

Для видеодемонстрации этой страницы см. Микроконтроллер PIC12F683 и схемы на YouTube.

В этой испытательной схеме (рис. 1) используется микросхема PIC PIC12F683 компании Mircochip с его аналого-цифровым преобразователем (АЦП), принимающим аналоговое значение потенциометра, преобразующим показания 0-5 В в 10-битное значение из 0-1023. Это 10-битное значение отправляется в модуль широтно-импульсной модуляции на выводе GP2.

Это значение устанавливает рабочий цикл (по времени в зависимости от периода) прямоугольной волны 250 Гц, генерируемой внутренним таймером. Период = 1 / F = 1/250 = 4 мсек.


K150 PIC Programmer

Загрузки — гарантия не распространяется, использование на свой страх и риск:
Драйвер для программатора K150 PIC: pl1303dtiver.exe
ПО для программирования K150: K150.rar

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


Рис. 2 Характеристики и выводы PIC12F683.

На рис. 2 показаны лишь некоторые особенности PIC12F683, который включает в себя 6 программируемых выводов ввода / вывода, 4-канальные аналого-цифровые преобразователи и по одному модулю ШИМ и компаратора. Он имеет гораздо больше функций, чем PIC16F84A, и имеет АЦП, которых не хватает в PIC16F628.Он имеет 2048 байт флэш-памяти, что более чем достаточно для большинства приложений.

В качестве бонуса его программируемые внутренние «часы» не требуют никаких внешних компонентов, только источник питания на 3-5 вольт. (См. Рис. 1). Я разработал это с тактовой частотой 4 МГц (по умолчанию, затем внутренне разделенной на 4), которая обеспечивает время тактового цикла 1 мксек — 35 инструкций в основном составляют 1 цикл, за исключением таких ветвей, как GOTO.


Рис. 3 Банки регистров PIC12F683.

Новый октябрь 2016 г .:

Доступ к регистрам

PIC12F683 осуществляется в двух банках.Они контролируют оборудование и другие функции. Контакты ввода / вывода помечены как GP0 — GP5. их можно запрограммировать, как показано на рис. 2 путем установки и очистки битов в соответствующем регистре. Файл p12f683.inc определяет имена на основе меток регистров / банков. Посмотрите на этот код, который установит внутренние часы в шаблоне. Обратите внимание, что я использую компилятор MPLAB v8.92, который меняет метки и кодирует один тип в машинный код (файл HEX), запрограммированный в PIC.

 
BANKSEL OSCCON; Переключитесь на банк 1.MOVLW b'01100001 '; 4 МГц Clk, IntOsc, SysClk через IntOsc
MOVWF OSCCON
  

Примечание 1: все, что находится после «;» является комментарием и игнорируется. Делайте много комментариев, чтобы делать заметки про себя!

Примечание 2: такие команды, как MOVLW, MOVWF и BANKSEL, НЕ чувствительны к регистру. Можно сказать «movlw» или «MOVlw» и т. Д. Будьте последовательны!

Примечание 3: серия PIC использует в основном 8-битные регистры, которые могут содержать десятичные числа от 0 до 255. Компилятору все равно, какая числовая база используется, поэтому 255 может быть d255 ‘или.255 для десятичного числа; b’11111111 ‘или 0b11111111 для двоичного, или 0xff или 0xFF для шестнадцатеричного. Я не знаю насчет OCTAL — компилятор, похоже, не заботится, когда я пробовал 0777.

Примечание 4: включаемый файл в шаблоне определяет имена для числа. Посмотрите на таблицу банков на рисунке 3 и обратите внимание, что «OSCON» (или регистр управления генератором) находится в ячейке банка 1 Ox8F. В противном случае пришлось бы определять метку самостоятельно (OSCON EQU 0x8F) или просто использовать «MOVWF 0x8F».

Примечание 5: имена, определенные во включаемом файле, чувствительны к регистру! Итак, используя «oscon» и т. Д.вызовет ошибку компилятора.

Примечание 6: для изменения данных регистра, битов и т. Д. Необходимо находиться в правильном банке. Регистр STATUS (0x03 и 0x83) используется ОБОИМИ Bank0 и Bank1 соответственно. Бит 5 (обозначенный RP0) — это бит выбора банка. Очистка бита (0) помещает единицу в банк 0, а установка бита (1) помещает единицу в банк 1:

 
СТАТУС ЧФ, RP0; выбирает банк 1, устанавливая бит 5 - Rp0 определяется как 5
; или же
СТАТУС BCF, RP0; выберите банк 0
  

BSF — это «битовый файл», а BCF — «битовый файл».Для получения дополнительной информации о регистре STATUS см. P11 в техническом паспорте — убедитесь, что у вас есть этот технический паспорт!

Итак, чтобы изменить данные в регистре OSCON (P19 в таблице данных), я должен быть в банке 1. BANKSEL избавляет от многих проблем, потому что компилятор знает, что в каком банке, и выполняет всю работу за вас. Поэтому, если мне нужно немного изменить и т. Д., Скажем, в TMRO (банк 0 0x01), используйте «BANKSEL TMRO» и забудьте об этом RP0.

Примечание 7: W или рабочий регистр. Думайте о регистре W как о поле, которое может содержать любую комбинацию из 8 нулей и единиц.Я загружаю число от 0 до 255 в ящик, помещаю его в правильный регистр (например, OSCON) и помещаю его туда. Большинство инструкций, которые программист должен указать, будет ли результат сохранен в регистре W или в файле: Пример. DECFSZ filename, 0 (или W) сохраняет результат в W; DECFSZ filename, 1 (или F) сохраняет результат в регистре файла.

Итак, что сделали мои три строчки кода в 3uSec. делать? Я выбрал банк 0, переместил буквальное число в двоичном формате в регистр W, затем регистр PIC W переместил этот байт в регистр OSCON из регистра W.

Теперь я уверен, что некоторые трясутся в ботинках — я должен делать все это ??? Вот почему я здесь, чтобы помочь другим избежать кошмаров, через которые я прошел, когда учился сборке PIC. Основные компиляторы ДОРОГИЕ, а компилятор MPLAB C имеет некоторые проблемы с авторским правом и лицензированием. Нет смысла использовать что-либо кроме сборки для этих маленьких контроллеров — да побольше.

Как только вы изучаете сборку на одном PIC, он работает на других. Смотрите мой раздел PIC16F628A в сборке.


Рис. 4 Испытательная установка с использованием микросхемы Microchip 12F683 для демонстрации широтно-импульсной модуляции.

Программирование PIC12F683 и других

Работа оборудования и широтно-импульсная модуляция описаны в разделе «Управление мощностью с широтно-импульсной модуляцией для микроконтроллеров». Как показано на рисунке 1, переключатели подключены к GP3 и GP4, запрограммированным как цифровые входы. Контакты подтянуты к + 5V (HIGH) через два резистора 10K. Когда переключатель нажат, входы переходят на 0 В (НИЗКИЙ).

К GP2 подключен оптрон, запрограммированный как выход с широтно-импульсной модуляцией.Выход «переключается» в положение ВКЛ / ВЫКЛ всякий раз, когда нажимается SW1 и / или SW2. GP1 и GP5 также «переключаются» в положение ВКЛ / ВЫКЛ соответственно. Это использовалось для управления двигателем H-моста. Оптопара изолирует 12-вольтовую цепь от 5-вольтовой PIC.

Потенциометр подключен к GP0, запрограммированному как аналоговый вход с помощью 10-битного модуля АЦП. Это 10-битное значение считывается и используется для установки рабочего цикла для 10-битного модуля ШИМ на GP2.

Думайте о PIC12F683 или любой другой PIC как о совокупности программируемых электронных модулей вместе с микроконтроллером.PIC, такие как ATMEGA168 и т. Д., Используемые Arduino, известны как процессоры RISC — компьютер с сокращенным набором команд . В этом случае всего 35 инструкций.

Давайте углубимся в программирование. Обратитесь к template.asm и изучите спецификацию.

 
CBLOCK 0x20; Назначьте каждый рег. из области RAM банка 0.
count1
count2
count3
count4
темп
РЕЗУЛЬТАТ
РЕЗУЛЬТАТ
ENDC; Завершите назначение RAM банка 0.
  

Ссылаясь на рисунок 3, я использую статические положения плунжера, начиная с 0x20 для переменных.Я всегда объявляю несколько на случай, если они мне понадобятся. Функция CBLOCK избавляет от необходимости объявлять каждую переменную индивидуально с помощью EQU или с использованием самого шестнадцатеричного числа.

 
ORG 0x000; вектор сброса процессора
GOTO setup; перейти к началу программы

ORG 0x004; расположение вектора прерывания
; Код isr может находиться здесь или быть расположен как подпрограмма вызова в другом месте
RETRIE; вернуться из прерывания
  

Когда контроллер сбрасывает счетчик адресов, начинается с 0x000.Ярлык «setup» указывает на расположение флэш-памяти для процедуры настройки, определяющей в основном функции оборудования. Это местоположение определяется компилятором.

ORG 0x004 — это вектор прерывания, указывающий на то, что известно как ISR или процедура обслуживания прерывания. PIC12F683 имеет ряд программируемых аппаратных прерываний. Как только происходит прерывание, PIC прекращает свои действия, сохраняет текущий адрес подсчета местоположения в STACK, а затем обслуживает ISR.

Здесь можно вызвать другую подпрограмму или выполнить функцию.Необходимо иметь RETIE, который извлекает исходный адрес из СТЕКА и позволяет PIC вернуться к тому, что он делал.

 
настраивать

BANKSEL OSCCON; Переключитесь на банк 1.
MOVLW b'01100001 '; 4 МГц Clk, IntOsc, SysClk через IntOsc
MOVWF OSCCON

BANKSEL CMCON0; Переключитесь на банк 0.
MOVLW b'00000111 '; Выключите компаратор.
MOVWF CMCON0
 
БАНСЕЛЬСКИЙ АНСЕЛЬ; Переключитесь на банк 1.
CLRF ANSEL; Установите контакты ввода / вывода на цифровой.

; Определите входы и выходы.CLRF TRISIO; весь вывод
BSF TRISIO, GP3; Вход GP3
BSF TRISIO, GP4

BANKSEL GPIO; Переключитесь на банк 0.
CLRF GPIO

; Этот блок кода настраивает АЦП для опроса,
; Опорное напряжение Vdd, часы Frc и вход GP0.

БАНКСЕЛЬ ТРИЗИО;
BSF TRISIO, 0; Установите GP0 для входа АЦП
; ANSEL; 0x9F P32
MOVLW 0b01110001; АЦП Frc часы,
IORWF ANSEL; и GP0 как аналог
BANKSEL ADCON0; 0x1F
MOVLW 0b00000001; Выровнять по левому краю,
MOVWF ADCON0; Vdd Vref, An0, Вкл.
CALL delay_1ms; Задержка получения

; настроить ШИМ
; CCP1CON в банке 0, биты 4-5 являются младшими битами 10-битного ШИМ.

MOVLW b'00000111 '
MOVWF T2CON; включить предварительную шкалу TMR2 16 - частота
MOVLW d'127 '; рабочий цикл = TMR2 = CCPR1L: CCP1CON 5: 4
MOVWF CCPR1L
MOVLW b'00001100 '
MOVWF CCP1CON; включить ШИМ

GOTO loop; перейти к "циклу" основной программы
  

Вышеуказанное делает то же самое, что и setup () в Arduino, и выполняется только один раз, если не вызывается.Я определил тактовую частоту 4 МГц, выключил модуль компаратора, установил все входы / выходы на цифровые. С TRISIO в банке 1 я определил GP3 и GP4 (установил соответствующие биты) как входы, все остальные контакты как выходы. Я очищаю регистры, такие как GPIO (банк 0) и ANSEL (аналоговый выбор банка 1), чтобы убедиться, что они находятся в известном состоянии. Неспособность сделать это может создать всевозможные проблемы.

Примечание: GP3 можно запрограммировать только как вход!

Затем я настраиваю GP0 как вход АЦП, затем модуль ШИМ настраивается на 250 Гц через таймер 2 (T2CON), в то время как 10-битное значение для управления рабочим циклом находится в регистрах CCPR1L и CCP1CON в банке 0.

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


Рис. 5 Часть микросхемы банка 0 12F683.
 
петля
; сделай что-нибудь
GOTO loop
  

Вышеупомянутое — это то же самое, что и петля Arduino в C. Давайте попробуем что-нибудь простое, например, замигать светодиодом, подключенным к контакту GP1, подключенному через резистор к земле. Чтобы программа заработала, нам нужно сохранить HIGH в регистре GPIO в GP1 или бите 1.Мы ждем while, затем сохраняем 0 в бит 1 или GP1 и снова ждем. В конце последовательности «GOTO loop» возвращает нас к началу. Обратите внимание на конфигурацию регистров для части банка 0.

Мы должны быть в банке 0 и, если не уверены, используем «BANKSEL GPIO». Когда мы используем такие команды, как BSF и BCF, мы НЕПОСРЕДСТВЕННО переходим к регистру, в данном случае GPIO или 0x05. Обратите внимание на рисунок 5.

 
петля

BSF GPIO, GP1; то же, что и BSF 0x05, 1 - бит 1 горит светодиод HIGH.
; ждать
BCF GPIO, GP1; то же, что и BCF 0x05, 1 - бит 1 LOW LED не горит
; ждать

GOTO loop
  

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

 
; Расчет задержки 1 мсек. 4 МГц делится на 4 внутри, чтобы
; 1,000,000. Возьмем обратное разделение 1 мсек на 1 мкСек = 1000.
; GOTO использует 2 цикла, DECFSZ - 1 цикл.

delay_1ms
; Кристалл 4 мГц
movlw D'2 '
movwf count1
aa movlw D'167 '
decfsz count2, F; внутренний цикл
goto $ -1; два цикла
decfsz count1, F;
goto aa
возвращаться
  

У нас есть подпрограмма delay_1ms, использующая так называемый программный цикл.У нас есть два цикла: один с count1 = 2, а другой count2 = 167. (Оба в десятичном формате). Это статические местоположения RAM, которые мы объявили ранее с CBOCK 0x20.

Что делает DECFSZ, так это уменьшает count1 или count2 и проверяет флаг Z в регистре STATUS_REG (0x03), бит 2, и если установлено (1), то результат последнего декремента равен нулю и следующая инструкция будет пропущена goto $ -1 и выйдите из цикла.

Для счетчика DECFSZ F — F означает сохранение результата в регистре «счетчик», в то время как W сохраняет результат во внутреннем рабочем регистре W.Многие инструкции делают это.

Каждый DECFSZ и GOTO занимает 3uSec. 167 раз примерно по 500 мс. общее. Внешний цикл (count = 2) проходит цикл 500uSec дважды с задержкой около 1 мсек — отсюда и название delay_1ms. (Используйте понятные имена.)

 
delay_250ms
movlw d'250 '
movwf count1
aa call delay_1ms
decfsz count1, F
goto aa; aa можно не указывать, используйте "goto $ -2"
возвращаться
  

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

 
петля

BSF GPIO, GP1; то же, что и BSF 0x05, 1 - бит 1 горит светодиод HIGH.
Задержка звонка_250 мс
BCF GPIO, GP1; то же, что и BCF 0x05, 1 - бит 1 LOW LED не горит
Задержка вызова_250 мс

GOTO loop
  

Надеюсь, этот пример был вам полезен. Чтобы увидеть всю программу, показанную на видео, см. Analog.asm для получения дополнительных примеров кода.

Посмотрите, как я попал в электронику


Программатор 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.

alexxlab

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

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