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

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

Для Windows95, 98, ME

Для Windows NT, 2000, XP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MAX232E

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

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

10 кОм

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

470 Ом

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

4.7 кОм

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

2 кОм

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

1 кОм

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

240 Ом

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

MAX232E

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программатор pic-контроллеров Extra-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 мм. Печатная плата выполняется методом ЛУТ, файл к статье прилагается. Отзеркаливать изображение перед печатью не нужно.

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

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


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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Материалы


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

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

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


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

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

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

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


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


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


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

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

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

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


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


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

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

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

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


RCD-программатор микроконтроллеров PIC — radiohlam.ru

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

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

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

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

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

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

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

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

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

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

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

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

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

Программу IC-prog 1.05D, для прошивки контроллеров, можно скачать в разделе софт. При прошивке выбрать тип программатора JDM. Включить контроль Vcc для JDM. При использовании совместно с операционными системами Windows 2000/NT/XP — выбрать интерфейс Windows API и включить галочку "Enable NT/2000/XP driver", в остальных случаях используйте интерфейс Direct I/O.

Еще одно. Господа, сохраняйте пожалуйста при прошивке калибровочные биты или потом не жалуйтесь, что на внутреннем генераторе нестабильно работает/не работает!!!

Скачать печатную плату (AutoCAD2000i)

Скачать печатную плату от Mixer (DipTrace 2.0)

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

Если лень или некогда собирать — Вы можете заказать недорогой универсальный программатор прямо у нас на сайте

Arduino программатор PIC-ов. | AlexGyver Community

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

Вот тут Вы сильно ошибаетесь

Жаль не грузится файлик, размер большой.
In-Circuit Serial Programming Guide DS30277
DS41227
DS41226
DS30228 и т.д.

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

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

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

Хотя в свободном доступе есть схемы PicKIT2 и PicKIT3. И прошивки на них в свободном доступе.
А они позволяют осуществлять внутрисхемную отладку.
Так что ардуину можно использовать один раз для программирования PicKIT.

Они его придумали?
По этимологии что оно значит? Как-то задавался таким вопросом, но инфы не нашёл.

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

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

Да называйте как хотите. Просто знайте, когда будете разговаривать с человеком, который проработал всю жизнь с PIC микроконтроллерами и ничего не знает об Atmel, Вас никогда не поймёт, если вы будете дуть ему в уши про "фьюзы"и "Скетчи" (Скетч) — короткая одноактная пьеса комедийного содержания с небольшим числом действующих лиц (как правило двумя, реже — тремя). Это выше понимания как прошивка может называться "Одноактной пьесой"

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

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

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

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

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

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

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

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

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

PIC ICSP In Circuit Serial Programming

PIC ICSP дает вам удобный способ программирование PIC Micros без снятия чипа с разработки или производственная доска. Фактически, это единственный способ запрограммировать микроконтроллеры PIC, чтобы вы найдете интерфейс ICSP на всех устройствах.

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

Это просто определенный последовательный интерфейс. Один сигнал (VPP) удерживается на высоком уровне (на высокое напряжение 8-13 В), чтобы сигнализировать о начале программирования. Данные и линии синхронизации переключаются для передачи данных программирования в устройство, а высокий напряжение позволяет программировать внутреннюю вспышку.

ICSP означает I n Последовательное программирование цепей. Если вы будете осторожны, вы можете запрограммировать микроконтроллер, не снимая его с целевой платы, т.е. в цепи.

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

Примечание: [Расширенная тема] Я сказал выше, что это единственный способ программирование микросхемы PIC (с использованием ICSP). Это актуально для всех устройств с первого раза что они запрограммированы. Однако большинство микросхем PIC, в любом случае более крупных, являются возможность самостоятельного программирования без использования программиста, и если вы запрограммируете чип с загрузчиком то вы можете выгружать данные через любой последовательный интерфейс и перепрограммируйте остальную часть чипа.Это используемый метод в Arduino, а также может использоваться с микросхемами PIC.

Программатор управляется с ПК с помощью IDE и PicKit2 / 3 это будет MPLAB X IDE. Эта программа загружает ваш шестнадцатеричный файл (который вы хотите записать в устройство PIC) и отправляет команды программисту для выполнения этой работы через сигналы ICSP, которые вы подключаете к своему устройству PIC (см. ниже).

Примечание : старые программисты, помеченные как Serial или Параллельно оба отправляют последовательные данные на микроконтроллер PIC через PIC ICSP схема.Описание "Последовательный" или "Параллельный" относится только к интерфейсу. используется от ПК к схеме PIC ICSP. Современные программисты, такие как PicKit2 / 3 использует порт USB. Опять же, USB-программист просто имеет в виду ПК. интерфейс и выход на разъеме ICSP точно такой же, как и у всех другие.

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

Контакт входа программирования Vpp используется как вход сброса. Примечание в новее Микросхемы PIC, вы можете запрограммировать MCLR как входной контакт с действием сброса заботятся изнутри (16F877A требует внешнего управления сбросом).

Примечание: Это для 16F877 и других 40-контактных микросхем, которые имеют такая же распиновка для разъема ICSP, например 18F2550 (или хотя бы MCLR вверху слева и PGD и PGC вверху справа).

Обратите внимание, что заголовки ниже также показывают распиновку PICkit3 .

Принципиальная схема PIC ICSP, показывающая подключение схемы ICSP 16F877A. В Разъем ICSP - это HDR2 на первом изображении и HDR1 на втором изображении.

Здесь PIC ICSP и схема полного сброса:

Примечания к приведенной выше схеме:

Схема сброса PIC ICSP представляет собой сверхзащищенную схему, которая вы бы использовали, если бы вы были очень осторожны или производили развитую печатную плату дизайн.Он предотвращает возврат высокого напряжения к линии питания 5 В (D2), имеет быстрое выключение, когда 5V выключено (D1) - позволяет быстро отдыхать от выключения питания и имеет определенное время нарастания для отложенного пуска сброса.

Как вы можете видеть, контакт 6 на разъеме ICSP - соединение PGM - не связаны. PGM - это специализированный вывод управления программированием, полезный только в производственной среде, и используется для программирования низкого напряжения (см. раздел ниже на PGM). Микросхемы PIC поставляются с включенным интерфейсом PGM, поэтому микросхема PIC может может быть вставлен в производственную плату и может быть запрограммирован другим устройством на напряжение системного уровня.Таким образом, может возникнуть ситуация, когда несколько PIC устройства подключены к главному устройству и могут быть перепрограммированы в устройстве возможно через Интернет и т. д.

Важным моментом является то, что программатор высокого напряжения, такой как PICKit2 / 3 всегда может переопределить интерфейс PGM и запрограммировать чип независимо от является ли вход PGM высоким или низким, и для использования одной платы вы устанавливаете PGM управление неактивно - это настройка в программном обеспечении, например MPLAB X и т. Д. Если режим LVP не выключен, контакт не может использоваться в качестве нормальный ввод / вывод может использоваться только для сигнала PGM.

Использование питания платы с MPLAB X

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

На панели управления (в нижнем левом углу среды IDE)

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

В окне свойств выберите категорию PICkit3

Теперь на правой панели выберите раскрывающийся список с надписью power и UN-щелкните отметка:

Целевая цепь питания от PICki3:

Теперь программист будет ожидать 5 В от вашей целевой платы.Он будет жаловаться если власти нет.

Самый простой способ запрограммировать устройство - использовать MPLAB X IDE

После того, как вы скомпилировали программу с использованием одного из компиляторов XC8, XC16 или XC32 и т. д., затем нажмите кнопку программирования, чтобы загрузить программу в Микросхема PIC через программатор ICSP PICkit3.

Кнопка программирования выглядит так:

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

Сигналы PIC ICSP

PIC ICSP обеспечивает 6 соединений от программатора pic ICSP к Ваша плата выглядит следующим образом:

1.VPP (или MCLRn) Программируемое напряжение (обычно 13 В).
2. Vcc Питание (обычно 5В).
3. GND Земля (ноль вольт).
4. PGD - Data Обычный порт и соединение RB7.
5. PGC - Часы Обычный порт и соединение RB6.
6. PGM - LVP включить обычный порт и соединение RB3 / RB4.

Выше показаны распиновки PICkit3.

Примечание: с подключениями, выполненными в этом порядке на разъеме не имеет значения, если разъем размещен неправильно, так как GND и Затем VCC применяются к часам и данным. Если бы VCC и GND были на противоположных концы разъема, тогда возникнет проблема.

Примечание. Указанные выше сигналы ICSP имеют порядок выводов в
так же, как и в стандартном PicKit2 / 3 = хорошо!

VPP Signal (Сигнал программирования действия)

Vpp подключается к входу сброса микроконтроллера pic помечены MCLR.Во время программирования или проверки этот сигнал повышается до напряжение программирования (13,5 В) - или VCC + 3,5 В. Это сигнализирует микроконтроллеру что программирование / проверка вот-вот начнется, и для старых деталей, расходных материалов Текущий.

Примечание: старые микросхемы pic использовали эту линию для непосредственного питания схема программирования, обновляющая флэш-память. Итак, эта связь должна была подать ток. С новыми деталями, которые позволяют LVP (программирование низкого напряжения) напряжение программирования генерируется внутри, поэтому сигнал Vpp с рис. ICSP используется только как индикатор i.е. он не должен подавать ток.

Сигнал VDD / VCC (питание)

Это соединение может обеспечивать питание вашей платы - обычно через регулятор 5V (вероятно, 7805). Это нормально для некоторого использования, так как вы можете разработать макет платы без необходимости в каком-либо другом источнике питания (просто блок питания, который подключается к схеме программатора pic).

Единственная проблема в том, что схема программатора не разработан для вашей схемы (есть ли у него радиатор), а также может вводить шум в вашей цепи.Если программист использует 78L05, вы получите только Максимальный выходной ток 100 мА.

GND Signal

Заземление - 0В.

Сигналы PGC и PGD (часы и данные)

Это сигналы, которые выполняют работу. Данные (PGD) и часы (PGC) передает данные на pic micro. Первые данные отправляются либо с высоким, либо с низким уровнем напряжение (0/1). По прошествии подходящего времени часы перейдут от низкого к высокому - вверх. синхронизация по краю данных в микроконтроллер.

PGD - это также линия, управляемая микроконтроллером pic во время проверки i.е. он двунаправленный.

PGM сигнал (сигнал программирования низкого напряжения)

Вам не нужно беспокоиться об этом контакте - он предназначен для низкого напряжения Программирование (см. Ниже).

Назначение этого вывода (на соединении ICSP) - удерживать PGM. низкий, поэтому микроконтроллер не переходит в режим LVP. Обычно это делается используя понижающий резистор, например 10к.

Примечание: Если вы программируете микроконтроллер с выключенным режимом LVP, то этот сигнал не будет иметь никакого эффекта.

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

Примечания к выводу LVP (PGM)

Он есть, если вы используете устройство, которое поддерживает LVP - низкое напряжение программирование. В основном, когда вы используете новое устройство, которое никогда не программировалось. до Программирование LVP включено по умолчанию (p58, p148 - 16F88 datasheet DS30487C), поэтому резистор отключает режим LVP (низкий уровень). Это подразумевается в других таблицах данных и конкретно не указано, например для 18F2550.

Однако в MPLABX Если вы программируете микросхему с использованием файла проекта (начиная с site projects) он все равно отключен, потому что я отключил его в MPLABX настройки проекта. После того, как вы запрограммировали выключение, он никогда не включается снова, если вы измените его в настройках проекта компилятора.

О PGM можно забыть, особенно если вы запрограммировали чип для 1-й раз с использованием высоковольтного программатора (например, pickit3). Помни, ты всегда можешь запрограммировать устройство независимо от настройки LVP с помощью высоковольтного программатора я.е. LVP - это дополнительная функция. Если режим LVP не выключен, то контакт не может использоваться как обычный ввод / вывод, он может использоваться только для сигнала PGM, который вот почему вы действительно хотите его выключить.

Для чего нужен LVP?

Назначение LVP - обеспечить полное программирование с использованием только Vcc, т.е. 5V и никакого более высокого напряжения, а это означает, что вам не нужно иметь выделенную мощность напряжение питания например 12 В для программирования устройства. то есть вы можете запрограммировать несколько устройства на плате от одного центрального микроконтроллера с использованием LVP.

Фактическое управление LVP находится в регистре CONFIG1 (p130 16F88 datasheet). DS30487C - вероятно, отличается для других устройств), поэтому он либо установлен в IDE (MPLABX и т. Д.) Или с помощью директивы #pragma (см. Ваш компилятор документация).

Примечание. Вы можете запрограммировать отключение LVP только с помощью высоковольтного программатора.

Примечание. Есть и другие способы программирования. встроенные чипы, например с помощью загрузчика. См. Обсуждение загрузчика - вкратце вы используете высоковольтный программатор для загрузки небольшой программы, которая слушает порт ненадолго - если код получен, то он переходит в режим программирования прослушивание полученных данных и программирование их в программной области устройства, портом может быть любой интерфейс связи e.грамм. USB, Ethernet, SPI, I2C, но есть чаще RS232. Этот метод используется для многих систем, обычно популярных в Arduino и PICAxe.

Использование LVP означает, что вам не нужен загрузчик, поэтому ценная программная память сохранено - но для этого вам нужно расположить оборудование.

Какая схема вам нужна на целевой плате?

Изоляция сигналов ICSP PIC

Обратите внимание на диаграмму из примечания к приложению ICSP DS33023A. специально делает все возможное, чтобы не создавать его для вас, говоря RB6 и RB7 должен быть изолирован, но это зависит от вашей схемы! Это не очень полезно поэтому я включил схему, которую использую на моей плате разработки (см. схему показано ранее):

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

Например, если вы поместите светодиод на RB6 (PGD), который потребляет 20 мА, когда на. Выходное напряжение (когда выход включен) будет настолько низким, что pic Программист ICSP не сможет считывать желаемое напряжение, т.е. выдаст ошибку проверки.

Этот метод полезен для устройств с большими распиновками, но если вы используете устройство меньшего размера, возможно, вы захотите использовать программные штифты для управления светодиодами i.е. большой токовый выход, и это также загрузит программные пины PGD и PCK много. Например, при использовании 12F675 с 8 контактами лучше переместить устройство на беспаечном макете (если эти штыри загружены). Вот пример схемы этого решения (см. Калибровочную схему 12F675 - вы подключаете небольшую плату для пайки. с этим макетом) ..

Щелкните PIC ICSP Setup для получения дополнительных сведений о как настроить систему ICSP.

Click PIC Программатор параллельного порта для схемы проекта программиста PIC ICSP для параллельного порта (устаревшего).

Политика конфиденциальности | Контакт | Обо мне

Карта сайта | Условия использования

сообщить об этом объявлении

Pic Programmer Types

Есть 4 типа программистов PIC; Последовательный, параллельный, USB и загрузчик.

Здесь вы можете найти необходимую информацию для выбора или создание собственной схемы программирования pic.

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

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

Предлагаемые программисты - pickit2 или pickit3.

Программатор pic - это схема, которая связывает ПК с микроконтроллер через параллельный, последовательный или USB-порт ПК.Он может записывать данные к микроконтроллеру и прочтите его для проверки.

Программатор pic переводит цифровые логические уровни с ПК до подходящих логических уровней для микроконтроллера - большинство уровней в порядке, поскольку они есть, но для "нормального" (или высокого напряжения) программирования микроконтроллера pic на выводе MCLR необходимо следующее напряжение:

Источник: Примечание по применению PIC ICSP (DS30277)

Примечание: максимальное входное напряжение для вывод (MCLR) 14 В, но на некоторых новых микросхемах PIC он снижен до 13 В, так что будьте будьте осторожны с этой спецификацией.

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

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

Примечание: для программирования устройств pic вам понадобится программатор высокого напряжения (но см. загрузку).

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


Боковая панель

Программатор последовательного порта типа JDM Детали.

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

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

Проблема с этими программаторами что они связывают землю программатора с отрицательным выходным напряжением последовательного порта. Таким образом, заземление программиста (к микросхеме PIC) составляет -8 В (или что-то еще. отрицательное напряжение, генерируемое последовательным портом). Это делается для получения напряжения колебание> 13 В, которое можно регулировать стабилитроном примерно до 13 В.

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

Я рекомендую вам использовать программатор pic которому нужен силовой блок.


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

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

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

LVP

Для более новые устройства PIC - поскольку это говорит о том, что вам не нужно более высокое напряжение.В Недостатком является то, что вы теряете один штифт , что может подойти для более крупных 40 штифтов. устройства, но, вероятно, не для 18-контактных устройств. Это будет зависеть от вашей схемы требования. См. Обсуждение LVP, для больше информации.

Примечание: только можно изменить с LVP на HVP (высокое напряжение Программирование - обычный программатор ICSP), если у вас есть программатор HVP. Части которые поддерживают LVP, поставляются на заводе с включенным LVP. Так что всегда тяни Линия PGM низкая с 10k (прибл.) при первом программировании (с HVP).

Есть еще один способ программирование устройства pic, и для этого используется часть программного обеспечения, называемая загрузчик. Этот метод можно использовать только на новых устройствах, которые могут перепрограммировать части их собственной FLASH-памяти - в наши дни их очень много, и это теперь чаще ожидать этого самопрограммируемого действия, чем думать о это как необычно, например 18F2550.

Это небольшая программа, которая обычно отслеживает прием USART. линия данных (RX) и активируется, если в этой строке есть какие-либо действия в течение установленного периода времени после сброса e.грамм. одна секунда с момента включения.

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

При активации принимает данные от линии Rx, используя ее для запрограммировать остальную часть FLASH-памяти, т.е. она не перезаписывает себя. Когда все данные были загружены и запрограммированы он запускает новую программу или загружается (запускается) и загружается; Отсюда и метка: Загрузчик.

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

Ответ заключается в том, что вы используете простую программу для загрузки более сложный. Затем эта простая программа передает управление новому программа.На ПК это код начальной загрузки BIOS. Для PIC micro вы программируете код загрузчика с помощью стандартного (высоковольтного) программатора pic.

Зачем нужен загрузчик?

Так как вам нужен нормальный программатор pic (или High Volt программист), чтобы в первую очередь загрузить загрузчик в микроконтроллер зачем возиться с этим? ...

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

Ответ 2: Вы можете загрузить код в полностью построенную систему без используя ICSP, поэтому вам не нужно думать о выводах или Vpp, PGD или PGC - и программатор высокого напряжения не нужен.Все, что вам нужно, это последовательный интерфейс.

Загрузчик позволяет использовать любой интерфейс (в зависимости от того, как вы запрограммируйте микроконтроллер) для загрузки кода. Его основное применение - в готовом оборудовании, где устанавливаются обновления программного обеспечения. необходимо (не открывая коробку и не вставляя программатор ПОС). Оборудование который обычно использует порт RS232, может быть загружен через этот порт. Все вы потребуется последовательный кабель и гипертерминал (доступен в Windows). Примечание могут использоваться другие интерфейсы, например I2C, SPI, Ethernet, Wi-Fi и т. Д.

Примечание: загрузка не ограничивается никакими конкретный интерфейс - вы можете загружать через сетевой интерфейс или инфракрасный порт. Интерфейс IRDA.

Преимущество загрузчика

  • Отсутствие аппаратного обеспечения для программирования - простое программирование.

Недостаток загрузчика

  • Использует некоторые ресурсы - меньше флэш-памяти доступно для основной программа.
  • Вы должны использовать микроконтроллер, который может перепрограммировать собственную вспышку память
  • Устройство должно иметь встроенный последовательный модуль.

Это список некоторых программаторов, доступных в виде схем, которые вы можете поиск в сети.

  • Программатор JDM (Ludipipo)
  • Программатор Conquest
  • Программатор TAFE
  • Программатор TAIT 'Classic'
  • Программатор параллельного TAIT
  • Программатор Fun-card
  • Программатор SCHAER
  • ProPic Программатор
  • Программатор WILLEPRO
  • Программатор Fluffy2
  • Программатор DL2TM
  • Программатор ER1400

В приведенном выше списке показаны типы программаторов, поддерживаемые
ICPROG [открывает новое окно]

Есть еще много схем! но - все они более или менее тоже самое!

Что вам действительно нужно в ПОС программиста.

У программиста есть несколько элементов, но самые важно соединение ICSP .

Возможные особенности программатора ...

  • Подключение ICSP.
  • Автономный программатор - гнездо DIL.
  • Программатор автономный - розетка ZIF.
  • Последовательный порт с питанием.
  • USB-порт с питанием.
  • Кирпич силовой с питанием.

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

Некоторые также используют только выходы +/- 5 В в качестве этот уровень все еще находится в пределах стандарта RS232 (хотя он не будет работать более большие расстояния). Минимальное высокое и низкое напряжение для приема RS232 +/- 3 В (обычно передатчик генерирует +/- 12 В). Производители уходят при этом RS232 чаще всего используется на небольших расстояниях на столе. Для программист это означает, что может не хватить напряжения для создания 13 В для Сигнал Vpp!

Примечание. Если вы хотите программировать микросхемы, удаляя их из На целевой плате вам понадобится отдельный программист.Чтобы сэкономить деньги, вы могли купите один с разъемом DIL - просто убедитесь, что вы удалили чип с помощью чипа экстрактор, а не пальцы и большой палец, иначе вы можете большой палец как довольно симпатичная подушечка для булавок - поверьте, больно. Возможно, ZIF (Zero Insertion Force) - лучший выбор!

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

Единственная самая важная функция , которая вам нужна на картинке Программатор - подключение pic ICSP .

ICSP - в цепи последовательного порта Программист.

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

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

Вы ​​также можете подключить провода ICSP к беспаечной штекерной колодке. макетная плата, так что это тоже довольно простой способ разработать схему , но осторожно, где размещен провод Vpp (13 В) - не все контакты выдерживают это напряжение, поэтому убедитесь, что оно находится на выводе MCLR.

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

Стандартные соединения для ICSP:

  • VPP - Программируемое напряжение (обычно 13 В).
  • VDD - ПИТАНИЕ (обычно 5В).
  • VSS - ЗЕМЛЯ.
  • PGD - DATA обычный порт и соединение RB7.
  • PGC - Обычный порт ЧАСОВ и соединение RB6.
  • PGM - LVP ВКЛЮЧИТЬ обычный порт и соединение RB3.

Для получения дополнительной информации о ICSP щелкните здесь.

Вы можете создать свой собственный программатор, если у вас есть старый компьютер с последовательный порт или параллельный порт. Я полагаю, вы также можете прикрепить серийный номер программатор - с помощью RS232 - к преобразователю USB в последовательный порт. Я не пробовал это вообще, однако я построил ИК-контроллер, который использует выходы DTE и RING для питания схемы, показывающей, что метод, который программист JDM (сам powering) по-прежнему жизнеспособен даже с современным адаптером USB-RS232.

Вы также можете найти информацию о ICSP, LVP и загрузке.

Ваш программист не работает или показывает случайные данные при проверке?

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

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

Вот пример параллельного программист порта.

Я использую программатор ICPROG, бесплатное программное обеспечение, работающее на моем запасном устройстве. компьютер (т.е. действительно старый компьютер - под управлением Windows95). Это на самом деле довольно полезно и спасает от взрыва ноутбука!

Вы ​​можете найти ICPROG здесь [открывается в новом окне].

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

Последовательный или параллельный программатор описывают используемый интерфейс ПК не метод программирования - все микроконтроллеры pic программируются последовательно. Последовательные программисты подключаются к последовательному порту, а параллельные программисты подключаются к параллельному порту.

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

Фактически скорость программирования определяется рис. алгоритм программирования и намного медленнее, чем любой из интерфейсов ПК. В общее программирование устройства Flash pic довольно медленное (16F877A 30 секунд).

Примечание: это также зависит от скорости ПК. и возможности оборудования - я пробовал использовать машину 1ГГц и программу цикл был намного быстрее, но вам нужно иметь оборудование, которое позволяет вам быстро.

Программирование кажется медленным, когда вы вносите незначительные изменения в код и хотите быстро увидеть результат, но сравните его со старыми СППЗУ - вы использовали снять микросхему с платы и поставить под УФ-свет на 30 минут!

В университете ластик сломался, поэтому мы поместили СППЗУ в копировальный аппарат и некоторое время копировали стереть!

Создайте свою собственную параллель программист порта.

Если честно, мне надоело количество доступных схем так как их так много, и я также хотел что-то, что собиралось Работа.Решил последовать тому, что рекомендуют сами микрочипы. Это следует за приложением AN589 и дает вам программатор с выходом ICSP связь.

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

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

ПОС Программатор

Вы должны использовать USB-программатор либо PicKit2, либо PicKit3, так как это самый простой способ начать. Эти программаторы USB PIC запрограммированы с использованием программное обеспечение MPLAB X IDE (бесплатно).



Политика конфиденциальности | Контакт | Обо мне

Карта сайта | Условия использования

сообщить об этом объявлении Описание программирования микроконтроллера

PIC | Arrow.com

Линия микроконтроллеров PIC® компании

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

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

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

Есть также важные вопросы, выходящие за рамки простого электронного проектирования, которые должны решаться MCU: Где будет использоваться устройство системного уровня (условия окружающей среды и географическое положение)? Каким отраслевым стандартам он должен соответствовать и другим продуктам, с которыми он должен взаимодействовать? Какие отраслевые и правительственные постановления в отношении требований по охране труда, здоровья и окружающей среды должны соблюдаться?

На рисунке 1 показана блок-схема PIC16F84 Microchip Technology с вводом / выводом и некоторыми периферийными устройствами.Представленный в начале 1990-х, он выполняет основные функции. Современные 8-битные микроконтроллеры обычно объединяют несколько периферийных устройств, что усложняет программное обеспечение для разработчика приложений.

Рис. 1. PIC16F84 - один из первых микроконтроллеров с последовательным алгоритмом программирования и памятью EEPROM. Источник: Microchip Technology Inc.

Основы оборудования PIC

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

Базовая архитектура памяти многих PIC - это гарвардская архитектура, которая впервые была широко развернута в микроконтроллере Intel 8051. Эта архитектура имеет одно пространство памяти для хранения программных команд и выделяет другое пространство для данных. Наличие отдельных пространств памяти, которыми может быть встроенная флэш-память, ПЗУ, ОЗУ или внешний чип, обычно приводит к более быстрому выполнению программы.(Термин «Гарвардская архитектура» часто используется в широком смысле. Многие микроконтроллеры, называемые «Гарвардским», были модифицированы путем смешения архитектур памяти Гарварда и фон Неймана.)

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

Microchip предлагает несколько 8-битных семейств PIC.PIC10F и PIC12F являются наименее дорогими, но имеют меньший объем памяти, меньшее количество выводов и меньшее количество периферийных устройств. Выбор самого дешевого чипа рискует обнаружить на полпути проектирования, что MCU не полностью удовлетворяет потребности приложения. Серия PIC18F находится на другом конце спектра производительности 8-битных продуктов Microchip. Это более сложное семейство, предлагающее узкоспециализированные периферийные устройства на кристалле, а также самое дорогое семейство. Для первого дизайна серия PIC18F, вероятно, была бы излишней.

Дизайн с микроконтроллерами PIC

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

Этот кладезь ресурсов бесценен. В частности, имеется огромное количество кода и схем для PIC16F877, которые использовались во многих «начальных» проектах онлайн-учителями и учителями, а также множеством профессиональных дизайнеров.Однако это старый микроконтроллер, и Microchip не рекомендует его для новых проектов. К счастью, почти вся поддержка дизайна PIC16F877 по-прежнему может использоваться с PIC16F887, который имеет почти такие же варианты расположения выводов и периферийных устройств.

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

PIC16F887 имеет 256 байт памяти данных EEPROM и набор периферийных устройств, которые делают его пригодным для аналогово-цифровых приложений в автомобильной, промышленной, бытовой и бытовой технике.Его техническое описание можно найти по адресу http://ww1.microchip.com/downloads/en/DeviceDoc/41291D.pdf

Как программировать микроконтроллер

Для программирования PIC (или любого MCU) обычно требуются следующие программные инструменты:

- IDE (интегрированная среда разработки), которая преобразует символическую логику, написанную для приложения, в программные команды

- Компилятор, преобразующий программу в язык ассемблера MCU, широко известный инженерам-проектировщикам как файлы HEX.

- IPE (интегрированная среда программирования), которая в конечном итоге использовалась для передачи шестнадцатеричного файла в PIC после некоторой настройки программы

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

Инструменты разработки программного обеспечения

Microchip высоко ценятся за их производительность и простоту использования.MPLAB®X IDE, компиляторы MPLAB®XC и MPLAB® IPE компании избавляют разработчиков от необходимости сравнивать и покупать сторонние инструменты. Основные инструменты Microchip предоставляются бесплатно. Обзор всех инструментов разработки Microchip можно найти по адресу http://www.microchip.com/development-tools

На рисунке 2 показаны продукты Microchip, доступные в пяти категориях компании MPLABX Integrated Development Environment (IDE).

Рисунок 2.MPLAB X IDE охватывает широкий спектр вспомогательных функций программирования MCU. Источник: Microchip Technology Inc,

.

Для тех, кто впервые использует 8-битные PIC, Microchip упростила начало работы, запустив MPLAB® Xpress, облачную среду IDE, которая избавляет от утомительной загрузки, установки, настройки и периодического обновления инструментов. MPLAB Xpress включает конфигуратор кода MPLAB, который позволяет пользователям автоматически генерировать код инициализации и приложения C для 8-битных (и 16-битных) микроконтроллеров PIC, используя графический интерфейс и схему контактов.

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

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

Интегрированная среда программирования (IPE) используется для множества функций, включая перенос программы, созданной на вашем ПК или рабочей станции, в MCU. Как упоминалось ранее, среды Microchip объединяют эти функции, но тремя важными концепциями являются моделирование, отладка и программирование PIC. Полное описание программных инструментов и способов их использования выходит за рамки данной статьи.

Внутрисхемный отладчик / программатор PICkit ™ 3 заслуживает упоминания, однако, потому что это дополнительное оборудование и, следовательно, концептуально выходит за рамки программной конфигурации других инструментов.Он используется после передачи прикладной программы в MCU. PICkit 3 управляется ПК, на котором запущено программное обеспечение MPLABX IDE, и является неотъемлемой частью набора инструментов.

Легенда на Рисунке 3 показывает основные соединения между программируемым или отлаживаемым MCU и ПК, на котором работает MPLABX IDE от Microchip Technology.

Рис. 3. PICkit 3 от Microchip предоставляет оборудование для отладки и / или программирования широкого диапазона микроконтроллеров. Источник: Microchip Technology

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

Начало работы с PIC MCU требует глубокого понимания приложения, базовой аппаратной архитектуры PIC, которая будет использоваться, и цепочки программных инструментов.Microchip сделал сам процесс проектирования очень доступным для инженеров, знакомых с другими микроконтроллерами, а также для настоящих начинающих дизайнеров. Бесплатные программные инструменты делают стоимость установки разумной, и в сети есть множество кода и советов, как внутри экосистемы проектирования Microchip, так и в Интернете в целом. Все, что требуется от потенциального разработчика ПОС, - это желание приступить к работе и настойчивость, чтобы довести проект до конца.

Тайльё.Информация - Программирование микроконтроллера PIC

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

Сегодня мы сожжем микроконтроллер PIC от Microchip - в данном случае Microchip - это имя собственное, относящееся к этой компании.«PIC» - это мозг множества проектов - например, этот USB-индикатор с изменением цвета или аналоговые датчики.

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


Получить все файлы этого проекта в архиве проекта.

Базовые соединения

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

Vdd / Vss (питание и земля)
Vdd и Vss - это метки, которые Microchip использует для обозначения плюсового источника питания и заземления. Vdd - это обычно положительный источник питания 5 В. Другие названия для Vdd включают: Vcc, питание, питание, «+», неровная сторона батареи и красный провод. Vss - это «земля», почти всегда 0 вольт. Вы также увидите заземление, обозначенное как: отрицательный, заземление, «-», заземление, плоская сторона батареи и черный провод. Большинство печатных плат используют заземляющую пластину, это означает, что все контакты заземления подключаются к медным участкам, которые остаются после проложения других проводов.Плоскости заземления экономичны и экологичны - медь должна быть химически вытравлена ​​с любых незаполненных участков на печатной плате, это требует большего количества кислотных травителей и создает больший поток медных отходов. Обратите внимание на печатную плату преобразователя цвета RGB справа, большая синяя область - это земля.

Не забудьте подключить любые контакты с маркировкой Avdd и Avss. Эти контакты позволяют обеспечить чистое питание аналоговых частей микросхемы. Узнайте больше о маршрутизации этих соединений [pdf!], Если вы разрабатываете устройство, которое выполняет сверхточные измерения с помощью аналого-цифрового преобразователя.

Каждая пара контактов Vdd / Vss или Avdd / Avss оснащена конденсатором 0,1 мкФ (C1 на схеме ниже). Они называются «развязывающими» конденсаторами, потому что они изолируют (развязывают) микросхему от шума в источнике питания. Этот шум вызовет сильные колебания в цепи, если его не остановить. Конденсаторы 0,1 мкФ должны быть очень дешевыми, купите 100+ в Интернете, чтобы сэкономить связку. На практике конденсатор следует устанавливать на каждый вывод питания (Vdd). Если контакты питания и заземления не расположены рядом друг с другом, что раздражает, что случается слишком часто, подключите одну сторону конденсатора как можно ближе к контакту питания, а вторую - к общей заземляющей пластине.



VPP / MCLR / master очистить и сбросить

Пики в источнике питания могут привести к зависанию PIC или вызвать неустойчивое поведение. Большинство PIC имеют функцию MCLR, которая в этом случае вызывает полный сброс. Чтобы использовать эту функцию, установите резистор 10 кОм (R1) между источником питания и выводом MCLR.

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

Программирование соединений
PIC в голой цепи - это здорово, но нам нужно добавить в нее какое-то программное обеспечение, прежде чем она станет полезной.Я всегда добавляю к печатной плате простое 5-контактное соединение, чтобы можно было программировать микросхему, не удаляя ее из схемы. Это экономит массу времени при использовании микросхем с гнездами, но абсолютно необходимо для микросхем поверхностного монтажа, которые нельзя удалить с печатной платы. Этот метод программирования называется внутрисхемным последовательным программированием (ICSP). Даже если вы планируете использовать программатор сокетов, прочтите, чтобы понять, какие соединения программист устанавливает с PIC, когда вы вставляете его в сокет.

Vdd / Vss
Об этих подключениях мы позаботились раньше.Программист ДОЛЖЕН использовать соединение заземления с печатной платой, также как правило, используется соединение с напряжением питания.

MCLR / VPP
Вывод сброса MCLR также используется для перевода PIC в режим программирования. Когда программист прикладывает «напряжение программирования» (Vpp) к этому выводу, микросхема готовится к копированию новой прошивки.

Vpp варьируется в зависимости от модели PIC, но может достигать 13 В. Если мы направим этот вывод к заголовку и подключим программатор, напряжение программирования пройдет через резистор MCLR (R1) и поступит на остальную часть схемы.Все на печатной плате может быть испорчено 13 вольт - нужен односторонний клапан, чтобы поддерживать высокое напряжение Vpp на своем месте. Малосигнальный диод (D1) делает именно это. Обычно для этой цели я использую обычный 1n4148.

Часы и данные
Код поступает в PIC на выводах часов (PGC) и данных (PGD). Обычно они находятся на контактах 6 и 7 порта PORTB микроконтроллеров PIC.

Вы, наверное, уже знаете, что на компьютере все сводится к нулю и единице.Файлы кода для PIC, обычно с расширением .hex, представлены на диске цифрами 0 и 1. Вывод данных PIC переключается между питанием (1) и землей (0) для представления этих битов. Линия часов поднимается до высокого уровня, а затем снова опускается до минимума, когда правильное значение находится на выводе данных. Тактовый импульс запускает PIC для копирования значения на выводе данных (0 или 1) в память.

Соедините это вместе с VPP, чтобы очень просто увидеть, как программируется PIC. Сначала повышается напряжение программирования (VPP), чтобы перевести PIC в режим программирования.Затем строка данных изменяется, чтобы отразить значение 0 или 1. Тактовый импульс применяется для копирования значения вывода данных в PIC. Когда все данные скопированы, VPP удаляется.

Примеры соединений ICSP
В этой галерее показаны соединения ICSP для нескольких микроконтроллеров PIC.

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

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

Некоторыми примерами вигглеров выводов являются NOPPP и знаменитый JDM2.Этих программистов поддерживают несколько приложений. Мне нравится WinPIC800, потому что он обновлен для последних чипов PIC 18F. Вы также можете проверить старые WinPIC и ICPROG.

Интеллектуальные программисты
Интеллектуальные программисты дороже, чем вигглеры. У этих программистов есть собственный микроконтроллер, который фактически программирует целевой чип. Собственные USB-программаторы Microchip (или Olimexclones) являются примером такого типа программистов. Наборы для экспериментов с микроконтроллерами из магазинов электроники часто поставляются с этим типом программатора - обычно программатор программирует только очень узкий диапазон PIC.

Эти программаторы предназначены для работы с определенным программным обеспечением и обычно не поддерживаются общими программами, такими как WINPIC800. Упомянутые ранее программисты работают с приложением для разработки freeMPLAB. MikroElektronika выпускает нестандартных программистов, которые работают со своими собственными компиляторами C, Pascal и Basic.

Отладчики
Отладчики программы, но они также добавляют в программный код функции воспроизведения и паузы. Это помогает авторам программного обеспечения выявлять досадные проблемы во время разработки прошивки.Как и умные программисты, отладчики работают с конкретными приложениями. ICD2 от Microchip и точная копия в Olimex работают со средой разработки Microchip MPLAB и компиляторами. Есть несколько USB и последовательных ICD2-аналогов, которые вы можете собрать самостоятельно. Это не клоны, потому что им не хватает некоторых функций оригинала, таких как регулируемый уровень напряжения.

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

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

Ограничения
Конструкция JDM2 имеет несколько ограничений:

  • Он использует отрицательное напряжение заземления, чтобы получить полное разделение +13 В между землей и VPP.Убедитесь, что вы отключили любой источник питания от схемы перед программированием с помощью JDM2.
  • Он не будет работать с большинством ноутбуков, потому что напряжение последовательного порта слишком низкое.
  • По той же причине он, вероятно, не будет работать с переходником USB-последовательный порт.
  • Линия PIC 16F требует 13 вольт на Vpp, более новые PIC 18F используют 12,5 вольт, а новейшие PIC (24F / 32F) используют 6 вольт или меньше. Если вы хотите запрограммировать новый PIC 18F с JDM2, вы должны использовать диод (D1), как показано на схеме.Этот диод снизит напряжение программирования примерно на 0,6 вольт, оставив почти идеальные 12,4 вольт.



Детали


Список деталей

Резисторы
R1 - резистор 10 кОм
R2 - резистор 1,5 кОм
Подойдут простые резисторы на 1/4 или 1/8 ватт.

Диоды
D1 - стабилитрон 8,2 В (должен иметь мощность не менее 0,5 Вт)
D2 - стабилитрон 5,1 В (мощность не менее 0,5 Вт)
D3,4,5,6 - диод 1n4148 (или 1n4448)

Конденсаторы
C1 - 100 мкФ / 25 В электролитические
C2 - 22 мкФ / 16 В танталовые или 47 мкФ / 6.3 В Тантал
Это быстродействующий конденсатор, он должен быть танталового типа.

Транзисторы
Q1,2 - BC547B
Эти маленькие транзисторы действительно распространены. Убедитесь, что ваш транзистор имеет конфигурацию контактов, показанную на схеме ниже. Дважды проверьте первую страницу таблицы данных производителя, чтобы быть уверенным - неправильная ориентация является наиболее распространенной проблемой для новых программаторов JDM2.


Заглушка последовательного порта
Это обычная розетка, под прямым углом, разъем DB9 для монтажа на печатную плату.

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

  1. Сначала припаиваем две перемычки.
  2. Затем добавьте резистор 1,5 кОм и резистор 10 кОм. Ориентация резистора не имеет значения.
  3. Теперь добавьте диоды 1n4148. Черные полосы должны быть ориентированы, как показано на рисунке.
  4. Добавьте стабилитроны 5,1 В и 8,2 В. Черная полоса должна быть обращена к заглушке последовательного порта.
  5. Добавьте транзисторы. Убедитесь, что транзисторы ориентированы, как показано на рисунках и схемах. Плохое размещение транзисторов является причиной большинства проблем с новыми программаторами JDM2.
  6. Добавьте танталовый конденсатор и электролитический конденсатор. Ориентация имеет значение. Убедитесь, что черная полоса электролитического конденсатора обращена к краю платы, а короткая ножка соединяется с большой площадью медного заполнения (плоскостью заземления). Точно так же короткая ножка танталового конденсатора должна подключаться к заземляющей пластине.
  7. Добавьте заглушку последовательного порта.
  8. Добавьте заголовок по вашему выбору (разъем штыревой / гнездовой, провод и т. Д.).

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

Установите Winpic800 и протестируйте JDM2
Для тестирования нашего программатора мы будем использовать Winpic800. Загрузите его здесь и установите. Вероятно, при первом запуске он будет на испанском, выберите Idioma-> English (или что вам подходит).

Запустите Winpic800.

  1. Перейдите в Настройки-> Оборудование .
  2. Установите Winpic800 для программатора JDM2: щелкните «Программатор JDM2» в списке и убедитесь, что COM-порт установлен правильно. Большинство ПК имеют единственный последовательный порт, назначенный COM1.
  3. Нажмите Применить изменения .
  4. Подключите программатор JDM2 к последовательному порту.
  5. Перейдите к Device-> Hardware Test. Если ваш программатор работает, вы получите сообщение «Оборудование в норме».

Запись прошивки на PIC

  1. Подключите PIC к программатору, как описано ранее.
  2. Подключите программатор к последовательному порту (ненужного) ПК.
  3. Запустите Winpic800.
  4. Перейдите к устройству -> Проверить устройство (CTRL + D).
  5. Winpic800 обнаружит подключенный PIC, нажмите «Принять».
  6. Перейдите к File-> Open и выберите файл прошивки, который вы хотите скопировать на PIC.Обычно это файл .hex.
  7. Наконец, выберите Device-> Program All , чтобы запрограммировать PIC. Winpic800 программирует PIC и проверяет содержимое.

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

Программатор USB PIC
Отладчик последовательного порта
USB-отладчик
Несколько копий USB-отладчика ICD2
«Настоящая сделка» ICD2
Программист Olimex и клоны отладчика

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

Печатные платы с фоторезистом
Печатные платы для переноса тонера
Заказать профессиональные печатные платы, онлайн

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

Компиляторы Mikro-Basic, C и Pascal для серий PIC 16 и 18.MPLAB
Microchip с бесплатным компоновщиком сборки для всех PIC.
PIC C18 demo Компилятор C для серии PIC 18.

Другие замечательные ресурсы PIC:
Microchip PIC Forum
Список рассылки и архив MIT PIC-list

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Статус

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

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

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

Ошибка PICKit3.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программирование цепей - обзор

1.5 Загрузка и тестирование

Существует два основных типа аппаратного обеспечения для программирования.Предварительное программирование (до того, как микросхема будет вставлена ​​в схему приложения) показано на рисунке 1.8 (a), где главный компьютер подключен к блоку программирования через последовательный канал. Целевая микросхема вставляется в блок программирования, подключенный к COM-порту ПК (RS232). Программа пишется и собирается на ПК, а затем загружается с помощью MPLAB или прикладного программного модуля, поставляемого с блоком программатора. Протокол RS232, простейший формат последовательных данных, будет описан позже как стандартный порт в самой PIC 16F877A.Чип программируется через контакты RB6 (часы) и RB7 (данные). В настоящее время этот метод в основном используется для производственного программирования нескольких микросхем через USB-порт ПК.

Рисунок 1.8. Системы разработки ПОС: (а) блок программирования и (б) система ICD.

Базовым блоком программирования этого типа, поставляемым Microchip, является PICSTART Plus. Он имеет сокет с нулевым усилием вставки (ZIF), в который помещается целевая микросхема, и содержит внутри другой PIC для обработки программирования. Поскольку COM-порт больше не входит в стандартную комплектацию большинства ПК, эта система программирования в значительной степени устарела для обучения и разработки.Однако модуль массового программирования PM3, который может работать в автономном режиме после загрузки кода приложения, все еще является текущим продуктом для поддержки коммерческих проектов.

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

Более универсальный метод загрузки программы обеспечивает внутрисхемное программирование и отладку (рисунок 2.1 (b)). Микросхема PIC остается в целевой плате после сборки и программируется в схеме. Затем пользовательская программа также (иногда) может быть отлажена в схеме, работающей с реальным оборудованием.Это обеспечивает последний этап поиска неисправностей и тестирование оборудования. Соединения внутрисхемного программирования и отладки (ICPD) показаны на рисунке 1.9. Они включены в схему оборудования, показанную на рисунке 3.1.

Рисунок 1.9. Внутрисхемное программирование и отладка соединений.

Как правило, модули ICPD полностью интегрированы в систему MPLAB и после подключения выбираются для использования из меню. Когда прикладная программа была успешно протестирована в моделировании, программатор подключается к USB-порту хоста и целевому оборудованию.В MPLAB8 тип программатора выбирается из меню Programmer, и соответствующая панель инструментов активируется, если установлена ​​успешная связь с программистом. Когда прикладная программа загружена, то же устройство необходимо выбрать в меню отладчика, чтобы включить внутрисхемное тестирование. В MPLABX аппаратный инструмент нужно выбрать только один раз в диалоговом окне свойств проекта в меню «Файл».

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

Для этого микроконтроллер должен иметь встроенные специальные функции отладки, чтобы при необходимости можно было прерывать выполнение программы и сообщать о состоянии процессора. Блок отладочного кода будет загружен в зарезервированную область памяти, и пользователь должен поместить NOP (No Operation) в ячейку программы 0000, чтобы разрешить вызов отладочного кода до того, как программа начнет выполняться.Определенные SFR также должны быть зарезервированы для использования ICD (см. Таблицу 1.3).

1.5.2 Аппаратное обеспечение ICPD

Microchip предоставляет множество модулей для программирования и внутрисхемных испытаний, и на момент написания статьи доступны три основных продукта, мощность и стоимость которых возрастают. PICkit3 - это устройство начального уровня (рисунок I.1), которое, тем не менее, предоставляет инструмент отладки, более чем подходящий для новичков. ICD3 (рис. 1.10 (a)) - это немного более продвинутая версия базового программатора / отладчика.Это быстрее и имеет дополнительные функции отладки. Аппаратное обеспечение ICDx обычно использует модульный разъем типа телефонного разъема для взаимодействия с целью, а не линейный разъем, связанный с PICkitX. Настоящий ICE (рисунок 1.10 (b)) предназначен для больших объемов или коммерческих работ; он предлагает мониторинг целевой аппаратной системы с использованием дополнительных логических датчиков и более мощные режимы трассировки, захвата и отображения данных для полной отладки системы.

Рисунок 1.10. Модули программатора / отладчика микрочипов: (a) ICD3 и (b) Real ICE.

(любезно предоставлено Microchip Inc.)

Обратите внимание, что внутрисхемное программирование и отладка не обязательно встроены в некоторые более мелкие микросхемы PIC с низким числом выводов, поскольку требуемые аппаратные ресурсы ICPD (т.е. дополнительные выводы и внутренние схемы) будут представляют собой значительные дополнительные расходы. В этом случае используется модуль заголовка, который передает версию микросхемы, которая имеет эти внутренние ресурсы. Он используется для отладки целевой платы в качестве совместимой по выводам замены разъема ICPD и предварительно запрограммированного чипа, установленного после тестирования.Эти заголовки ICPD обычно совместимы с модулями ICDx. PIC 16F690, установленный на демонстрационной плате с малым числом выводов, требует такой поддержки ICD. 16F877A был одним из первых чипов PIC, поддерживающих внутреннюю ICPD.

1.5.3 Тестирование программы LED1

LED1 на самом деле не предназначен для аппаратной реализации, он предназначен только для ознакомления с принципами MCU. Однако при необходимости LED1 можно загрузить и протестировать с помощью программатора PICkit2 или 3. На рисунке 1.11 показан простой прототип, который использовался для проверки этих функций с помощью PICkit2.

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

Когда программист выбирается из меню, появляется панель инструментов программирования с кнопками для загрузки и запуска. MCU настроен на работу, установив MCLR. Для целевой системы может потребоваться внешний источник питания, поскольку программатор может подавать только ограниченный ток. Программный LED1 может быть аппаратно одношаговым, с тестовым светодиодом, подключенным к RB0. Выходной сигнал с тактовой частотой 40 кГц слишком быстр, чтобы быть видимым, но его можно просмотреть на логическом анализаторе или многоканальном осциллографе как набор из 8 импульсных сигналов с убывающей частотой.

Когда приложение завершено, микросхема перепрограммируется с отключенным ICPD. MCLR должен быть увеличен до В DD для запуска микросхемы, при необходимости с помощью кнопки ручного сброса. Схема приложения описана на рисунке 3.1 (LED2), которая включает в себя программные соединения. Программа имеет ту же функцию вывода, но включает в себя процедуру задержки для визуализации выходных импульсов и входов для запуска и сброса счетчика.

1.5.4 Этапы разработки

Процедуру разработки приложения можно резюмировать следующим образом:

Проектирование и создание аппаратного обеспечения приложения

Проектирование встроенного ПО приложения

9110

Редактировать исходный код (MPLAB)

Соберите (или скомпилируйте) исходный код (MPASM)

Протестируйте его в режиме моделирования (MPS0003) 3 91 •

Загрузите и протестируйте целевое оборудование (ICPD)

При необходимости измените и повторите указанные выше этапы

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

2

03 В главе 2 рассматривается разработка и реализация программы, а в главе 3 описывается использование P roteus VSM для проектирования схем, схематических изображений и интерактивного моделирования.Поэтому рекомендуется отложить любые работы по построению схем и тестирование оборудования до тех пор, пока эти главы не будут изучены. При желании можно попробовать прототип оборудования для LED2. Дополнительную информацию по прототипированию и другим вопросам реализации можно найти в «Микроконтроллерах PIC» автора.

Что такое микроконтроллер PIC? Что это может делать?

ФАЙЛ PDF - НАЖМИТЕ ЗДЕСЬ ДЛЯ ПЕЧАТИ РАБОЧЕГО ЛИСТА
Видео на YouTube - Введение в микроконтроллеры PIC
ПИК микроконтроллеры (программируемые контроллеры интерфейса), электронные схемы, которые можно запрограммировать для выполнения широкого круга задач.Они можно запрограммировать на таймеры или на управление производственной линией и многое другое. более. Они присутствуют в большинстве электронных устройств, таких как системы сигнализации, компьютерные системы управления, телефоны, практически любое электронное устройство. Существует много типов микроконтроллеров PIC, хотя, вероятно, лучшие из них входит в линейку программируемых микроконтроллеров GENIE. Эти запрограммирован и смоделирован программным обеспечением Circuit Wizard.
ПОС Микроконтроллеры относительно дешевы и могут быть куплены в готовом виде. схем или в виде комплектов, которые могут быть собраны пользователем.
Вам понадобится компьютер для запуска программного обеспечения, такого как Circuit Wizard, позволяющего программировать PIC схема микроконтроллера. Достаточно дешевый компьютер с низкими характеристиками должен легко запускать программное обеспечение. Компьютеру потребуется последовательный порт или USB. порт. Он используется для подключения компьютера к схеме микроконтроллера.
Программное обеспечение, такое как Genie Студию дизайна можно скачать бесплатно.Его можно использовать для программирования схемы микроконтроллера. Это позволяет программисту моделировать перед загрузкой в ​​ИС микроконтроллера PIC (интегрированный Схема).
Моделирование программы на экране позволяет программисту исправлять неисправности и изменять программу.
Программное обеспечение довольно легко узнать, как это основано на блок-схеме. У каждого «квадрата» блок-схемы есть цель. и заменяет многочисленные строки текстового программного кода.Это означает, что программа может быть написана довольно быстро, с меньшим количеством ошибок.
USB-кабель для подключения компьютер в программируемую схему, позволяющую передавать программу к микросхеме микроконтроллера PIC.
Когда программа была смоделирована и работает, загружается в схему микроконтроллера ПОС.USB-кабель может быть отключен, и можно использовать схему микроконтроллера независимо. На диаграмме ниже показано, что Совет проекта GENIE программируется программным обеспечением Circuit Wizard (рекомендуемое программное обеспечение для программирование схем микроконтроллера).
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ CIRCUIT WIZARD
Программа Circuit Wizard имеет основные преимущества перед бесплатными загрузками.Это «простая в использовании» электроника. пакет программного обеспечения. Схемы от простых до сложных, могут быть построены на экране и смоделировано. Это означает, что цепи можно тестировать до того, как они будут изготовлено.

Circuit Wizard также позволяет использовать ряд GENIE Схемы микроконтроллеров / проектные платы, которые нужно «перетащить» на экран, из меню. Входы и выходы могут быть добавлены с помощью дополнительных меню. Потом, схему микроконтроллера GENIE / плату проекта можно запрограммировать, используя Меню блок-схемы Circuit Wizard.Его можно полностью протестировать / смоделировать на экран и неисправности устранены или внесены изменения. Это программное обеспечение сильно рекомендуется при разработке и производстве программируемых микроконтроллеров. схемы.

ЦЕПЬ МИКРОКОНТРОЛЛЕРА GENIE
(ВВЕРХУ) ПРОГРАММИРОВАНИЕ ИСПОЛЬЗУЕТСЯ С ПОМОЩЬЮ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
CIRCUIT WIZARD
ПРОСТОЙ ДЖЕНЬ ЦЕПЬ МИКРОКОНТРОЛЛЕРА
, СОЗДАННАЯ НА ЭКРАНЕ С ИСПОЛЬЗОВАНИЕМ МАСТЕРА ЦЕПИ
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
НАЖМИТЕ ЗДЕСЬ, ЧТОБЫ ВЫБРАТЬ УКАЗАТЕЛЬ PIC-MICROCONTROLLER, СТРАНИЦА
.

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

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