Site Loader

Содержание

USB программатор своими руками на ATmega8

Предлагаем Вам схему USB программатора на микроконтроллере ATmega8. Этот USB программатор Вы можете собрать своими руками за несколько минут на макетной плате Breadboard Half (BREADBOARD — 456 HOLES) размером 82х59 мм. На этой плате хватит места и для программируемых микроконтроллеров в корпусах до DIP-28.

Этим USB программатором можно программировать микроконтроллеры AVR ATmega и ATtiny (другие программировать не пробовал). Этот программатор заметит Вам плату Arduino, он более удобен для экспериментов с различными микроконтроллерами и микропрограммами для них (скетчами). USB программатор работает под управлением микропрограммы ArduinoISP.

Минимальный набор деталей для программатора

  1. Микроконтроллер ATmega8 (ATmega8A-PU, ATmega8L-PU) 1шт
  2. Макетая плата Breadboard Half (BREADBOARD — 456 HOLES) размером 82х59 мм 1шт
  3. Интерфейс USB-UART (подойдет USB-DATA кабель от старого сотового телефона) 1шт

Остальные детали, которые вы увидите на схеме для работы универсального, самодельного, простого программатора не существенны.

О подключении пробников, бузер можно подключить на линию MISO и слушать как общаются между собой микроконтроллеры. Светодиод можно подключить к 15 ножке микроконтроллера ATmega8, если схема собрана правильно и в Atmega8 залит скетч ArduinoISP, светодиод будет плавно менять яркость свечения.

Прежде чем воспользоваться самодельным программатором, необходимо загрузить в микроконтроллер программатора микропрограмму ArduinoISP из примеров к программе Arduino IDE. А еще раньше, необходимо настроить микроконтроллер ATmega8 на работу на частоте 8 МГц без внешнего кварцевого резонатора.

Мы здесь, приведем последовательность действий по прошивке микроконтроллера ATmega8 с помощью платы Arduino UNO и программы Arduino IDE. Возможно, так же, воспользоваться каким нибудь другим методом.

 1. Добавьте в программе Arduino в список поддерживаемых устройств микроконтроллер ATmega8 без bootloader с тактовой частотой 8МГц. Внесите изменения в файл sketchbook/hardware/boards. txt, добавив в него следующую секцию:

##############################################################

a8noboot_8MHz.name=ATmega8 (no boot 8 MHz int)
a8noboot_8MHz.upload.maximum_size=8192
a8noboot_8MHz.bootloader.low_fuses=0xa4
a8noboot_8MHz.bootloader.high_fuses=0xdc
a8noboot_8MHz.build.mcu=atmega8
a8noboot_8MHz.build.f_cpu=8000000L
a8noboot_8MHz.build.core=arduino
a8noboot_8MHz.build.variant=standard

##############################################################

Уточнить размещение папки sketchbook можно в программе Arduino в меню / . Если в папке sketchbook нет папки hardware, создайте ее и создайте файл boards.txt

2. Подключите микроконтроллер ATmega8 к плате Arduino UNO как описано в Программатор для ATmega8A на Arduino с ArduinoISP.

3. В программе Arduino выберите / /  и / . Далее загрузите в микроконтроллер ATmega8 программу ArduinoISP / / и .

4. Соберите программатор.

Для программатора Вам понадобится интерфейс USB-UART. Вы можете воспользоваться кабелем от старого сотового телефона, как описано в этой статье Подбор USB-DATA кабеля вместо USB-UART модуля для самодельного Arduino. Что на мой взгляд, очень удобно. Но вместо этого кабеля Ваш программатор можно подключить к компьютеру с помощью платы преобразователя USB-UART.

На фотографии программируется микроконтроллер ATtiny84.

USB программатор PIC своими руками.

Собираем программатор для микроконтроллеров PIC и микросхем EEPROM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ядром устройства является микроконтроллер

PIC18F2550-I/SP.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Также стоит знать, что «прошивка» микроконтроллера PIC18F2550-I/SP (файл PK2V023200.hex) записывается при установке программы PICkit 2 Programmer в папку вместе с файлами самой программы. Примерный путь расположения файла PK2V023200.hex  — «C:\Program Files (x86)\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, я рассказал в отдельной статье. Следующий шаг.

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

Главная &raquo Микроконтроллеры &raquo Текущая страница

Также Вам будет интересно узнать:

 

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

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

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

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

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

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

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

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

Драйвера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

LM7812

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

LM7805

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

КТ502Е

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

КТ3102Е

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

1N4148

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

1 кОм

3

Делаем простой USB программатор USBTinyISP / Блог им. Ghost_D / RoboCraft. Роботы? Это просто!

Очень многие люди, начиная свое знакомство с микроконтроллерами, испытывают трудности с инструментом для их программирования. И это реально может охладить творческий пыл. Да что там говорить, я и сам после сборки своего первого Arduino долго пытался «вдохнуть» жизнь в «железяку». Здесь очень хорошо описаны мучения. Конечно, самый простой вариант «5 проводков» — это здорово! Но, в моем окружении (как я понимаю, и у многих) дома, на работе в компах и ноутбуках напрочь отсутствует LPT-порт! Да и COM-порт становиться достаточно редкой «экзотикой». Что же делать? Естественно, на сцене появляется вездесущий USB.

Да, готовый программатор для AVR легко можно купить. Но цена на них неадекватно завышена (у нас в г. Минске, на радиорынке что-то около 30..50 у.е.). Как говорил Киса Воробьянинов — «ОДНАКО!!!». Хорошо, что есть братья-китайцы, с нормальными ценами. Только придется прилично подождать. Да и судя по последним тенденциям, ОГРОМНЫЙ поток посылок из Китая ОЧЕНЬ заинтересовал государственные органы… И боюсь, что в скором времени превратится в жалкий ручеек 🙁
Да и к тому же, как говорит мой хороший друг: «Это не наш метод. Мы сделаем сами, пусть по выходу окажется и в два раза дороже!».

Спешу обрадовать, что затраты на изготовление — мизерные. Самые дорогие компоненты — это Attiny2313 (примерно 2$) и разъем USB.

Итак, приступим. Нам нужен программатор который максимально прост и относительно дешев, подключается по USB, и при этом, поддерживается всеми современными ОС (LINUX, WINDOWS, MAC OSX) через программу avrdude. Изначально я рассматривал для повторения самый «примитивный» вариант. Дальнейшие поиски меня привели к — USBTinyISP!!! Стремясь к компактности, я выбрал для «клонирования» версию 1 (без буферной микросхемы). Ниже схема программатора.

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

(Номиналы деталей можно увидеть в SprintLayout при наведении курсора на нужный элемент)

Нам понадобится:

— кусок текстолита 63х33 мм
— МК Attiny2312 с колодкой под нее
— Разъем USB (тип B)
— Разъем 10х2 (как он правильно называется ???? Не знаю..)
— 4 резисторa 1.5 кОм (smd, маркировка 152)
— 1 резистор 1.5кОм (выводной 0.125Вт)
— 2 резисторa 33 Ом (smd, маркировка 330)
— 1 резистор 10к (smd, маркировка 103)
— 2 стабилитрона на 3.6В
— 2 конденсатора 22 pF (smd)
— 1 конденсатор 0.1 мF (smd)
— 2 светодиода (зеленый и красный)
— кварц на 12Mhz
— электролитический конденсатор 100x16V
— самовосстанавл. предохранитель (я выпаял из старой мат. платы). Если нету, можно поставить перемычку (на www.ladyada.net/ так и сделали).
— два штырька для перемычки

Естественно, ЛУТ.

После ЛУТа

После травления:

Мой любимый сплав Розе

Паяем SMD элементы

Теперь перемычки и оставшиеся элементы

Готово!

Небольшое лирическое отступление. Давным давно, в 2000-х годах у меня один приятель жаловался со сложностями в поиске НОРМАЛЬНОЙ работы (он работал водителем). Дело в том, что у него был на тот момент очень маленький стаж вождения :). Чувствуете подвох? На нормальную работу без стажа не берут. Стажа нет, потому что на работу не берут… И так замкнутый круг.

Так и в нашем случае, для изготовления программатора нужно запрограммировать контроллер… т.е. нужен программатор. Слава богу, это нужно проделать всего один раз. Выходов несколько:
— берем пиво и навещаем приятеля с программатором 🙂
— ищем компьютер с LPT-портом и паяем «5-проводков»
— нету LPT, но есть COM? Прекрасно, делаем программатор Громова!
— есть люди, предлагающие свои услуги по прошивке МК за небольшую «денюжку»
— другие варианты

У меня ситуация более, чем шикарная — у меня уже был программатор AVR910. Так, что вся процедура заняла не более минуты. «Прошиваем» МК с помощью AVRDUDE. (Все необходимое для этого сложено в архив и находиться в каталоге Firmware).

avrdude.exe -p t2313 -c avr910 -P COM12 -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Кому менее повезло и пришлось прибегнуть к «5 проводкам» (кстати, официально он называется DAPA):

avrdude.exe -p t2313 -c dapa -U flash:w:usbtinyisp_(v.1).hex  -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

вот, вариант когда программатор USBTinyISP используется для прошивки себе подобного, а-ля «овечка Долли»:
avrdude.exe -p t2313 -c usbtiny -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Почему вариант с AVRDUDE более предпочтителен для начинающих? При выполнении вышеприведенных команд сразу же прошиваются и нужные фьюзы, т.е. ухера.. «убить» микроконтроллер достаточно сложно.

Итак, устанавливаем на плату свежепрошитый микроконтроллер. Еще раз советую проверить изготовленную плату на качество пайки, отсутствие «коротышей» и тому подобных неприятностей. И только если ВЫ на 100% уверены, подключаем наш программатор к разьему USB. После сообщения об обнаружении нового оборудования (речь идет о Windows), ставим как обычно драйвера. Они сложены в архиве в папке usbtinyisp w32 driver v1.12.

Проверяем, что все хорошо, заглянув в список оборудования:

Если Вам удалось увидеть такую же картинку, то поздравляю! Все готово. У Вас теперь есть USB программатор для AVR!!!
Не знаю как Вы, но мне ОЧЕНЬ захотелось сразу же опробовать изделие в действии. А давайте прошьем бутлодер в Ардуино.

Запускаем Arduino IDE, [Сервис]->[Программатор]->[USBTinyISP]

Жмем [Сервис]->[Записать загрузчик]

Буквально проходит 7 секунд, мерцание красного светодиода на программаторе… и ОПА!!! Все готово. Получите, распишитесь 🙂


А теперь небольшой БОНУС, расширяющий область применения нашего программатора. А именно, маленький адаптер для DIP корпусов наиболее распространеных AVR контроллеров. Мне приходилось иметь дело с ATTiny13/45 — 8 ножек, Attiny 2313 (тут смайлик)- 20 ножек, Atmega 8/48/168 — 28 ножек. За основу берем схему соединения колодок (схема откуда-то из инета):

Для простоты я не использовал сигналы тактирования XT1. (Для всяких неприятных случаев, у меня есть собранный FUSE Doctor :)) И еще, я не ставил на адаптер колодку под Atmega16 (DIP-40). Пока у меня не возникало необходимости в программировании таких контроллеров.

Ну, если осилили изготовление программатора, то сделать такой адаптер — вообще плевое дело!

Кстати, некоторые неиспользуемые контакты я просто-напросто удалил, во избежание ненужного контакта 🙂

Приклеиваем (для удобства) соответствующие надписи:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Материалы


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

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

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


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

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

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

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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

LM7812

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

LM7805

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

КТ502Е

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

КТ3102Е

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

1N4148

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

1 кОм

3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MAX232E

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

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

10 кОм

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

470 Ом

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

4.7 кОм

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

2 кОм

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

1 кОм

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

240 Ом

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

MAX232E

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

2N3904

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

DB157

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

1N4148

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

L7805AB

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

KA78R12C

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

Топ-10 лучших программаторов и дебаггеров с Алиэкспресс

В жизни любого радиолюбителя наступает момент, когда собранный своими руками программатор хочется заменить на что-то купленное и с бОльшими возможностями. Или расширить номенклатуру совместимых кристаллов. На Алиэкспресс можно найти огромный ассортимент универсальных программаторов и готовые адаптеры для установки микросхем памяти и контроллеров. В подборке будут интересные модели для AVR (ATMega/ATTiny), для PIC, STM8/STM32, для EEPROM, для Zigbee контроллеров и адаптеры.

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

Внутрисхемный отладчик CC Debugger за $7.65

 Все больше становится доступного программного обеспечения, с помощью которого можно настраивать по себя различные модули и устройства. А конкретно, CC-Debugger может использоваться для программирования и отладки систем на базе 8051, например, модулей CC2531, на базе которых производятся гаджеты для умного дома и «интернета вещей». Работает с программным обеспечением IAR и SmartRF Studio.

 

Недорогой USB Zigbee трансмитер-снифер СС2531

Хороший пример использования предыдущего отладчика CC-Debugger — это заливка адаптированной прошивки в компактный USB донгл для сети Zigbee. С помощью модифицированного Zigbee трансмиттера можно привязывать устройства в свою сеть, создавать собственные Zigbee-мосты, анализировать протоколы датчиков и так далее.

 Универсальный программатор AVR USBASP

 Один из лучших программаторов для AVR — это классический  USBASP, компактный и универсальный программатор, для загрузки программного обеспечения через интерфейс ISP. В комплекте есть кабель для загрузки через ISP на 10 контактов. Подходит не только для семейства ATMEGA8, но и для новых ATMEGA128. Работает в Win7.

 Дешевый ПРОГРАММАТОР AVR USBASP

А это еще один вариант USB ISP программатора для AVR (семейства ATMega и ATTiny). В отличие от предыдущего имеет выбор питания кристалла (5V или 3.3V джампером), а также в два раза меньшую стоимость. Интерфейс для программирования ISP, но есть смысл воспользоваться отдельным адаптером с ISP10 на ISP6 для удобства работы с компактными отладочными платами Arduino.

 

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

Устройство представляет собой полноценный uart-мост и эмулятор последовательного порта. Предназначен для прошивки микросхем памяти (24 EEPROM и 25 SPI flash 8pin/16pin) и микроконтроллеров по spi (AVR, PIC, Singlechip STC). Подходит для восстановления флэш-памяти BIOS USB. Для работы с контроллерами Атмел используется программное обеспечение AVR Ch441A или AVRDUDE

Программатор-отладчик ST-LINK

Для работы с устройствами от STMicroelectronics рекомендую использовать программатор ST LINK. По ссылке версия ST-Link V2, который подходит для чипов семейств STM8 и STM32. Удобен для загрузки встроенного программного обеспечения на контроллер прямо в составе схемы, а также для отладки работы и поиска ошибок. В комплекте есть 4-pin кабель. Цена смешная — полтора бакса.

 

 

Программатор и SWD адаптер J-Link

А вот если нужен адаптер посерьезнее, то есть смысл посмотреть недорогой программатор SWD, который совместим со всеми функциями J-Link. В данной модели интерфейс упрощен до четырех линий: VCC, SWDIO, SWCLK, GND. Но, по сравнению с обычными, этот вариант быстрый и эффективный. Подключается через MicroUSB, корпуса, увы, не предусмотрено. Цена всего 2 бакса. 

 

Программаторы  PICKIT версий 2/3/3.5

Один из лучших  USB программаторов для PICmicro контроллеров и ключей KeeLOQ производства компании Microchip Technology. В лоте на выбор есть модели: PICKIT3, PICKIT2 или PICKIT 3,5. Лучше брать последние версии устройства. В комплекте идет плата расширения с ZIF-сокетом (PIC ICD2). Полный схемотехнический аналог фирменного программатора PICKIT 3 компании Microchip.

 

 Универсальный USB SPI программатор EZP2019

Новейшая версия универсального USB программатора EZP2019 с высокоскоростным интерфейсом SPI с большим набором адаптеров для EEPROM, клипсами и диском с программным обеспечением. Этот вариант несколько лучше дешевого программатора Ch441A. Является усовершенствованной версией программаторов EZPO2010/EZP2013. В комплекте есть все необходимое для работы.

 

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

 

 

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

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

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

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

DIY EEPROM. У меня было несколько проектов, которые… | Эрик ван Зийст

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

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

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

Я выбрал Atmel AT28C256, так как он все еще активно производится. Он имеет 15 адресных контактов для 2¹⁵ = 32768 адресов. Каждый адрес указывает на один байт, содержимое которого отображается на 8 выводах ввода-вывода с общей емкостью 32768 байт, или 256 Кибибит.

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

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

Поскольку AT28C256 требует 5 В для записи, мы не можем использовать Raspberry Pi или Arduino Nano / Mini, поскольку все их порты GPIO имеют напряжение 3,3 В. Обычная старая Arduino UNO имеет напряжение 5 В и поэтому должна работать нормально.

Поскольку Arduino UNO не имеет достаточного количества контактов GPIO, мы не можем напрямую подключить все адреса и контакты ввода / вывода.Вместо этого мы будем использовать два последовательно соединенных 8-битных регистра сдвига 595 для обработки 15-битного адреса, так что мы должны использовать только 1 вывод на Arduino вместо 15. Это оставляет достаточно выводов для линий ввода / вывода, сдвигового регистра. линии управления и индикатор активности.

Чтение данных — это просто установка 15-битного адреса на контакты адреса и последующее чтение байта, который появляется на контактах ввода / вывода. Для этого мы записываем адрес на вывод A4 по одному бит за раз. Вывод A4 подключен к линии данных первого регистра сдвига ( SER на схеме).

После каждого бита импульс отправляется на вывод D11 , который подключен к тактовым входам регистров сдвига ( SRCLK на схеме). В каждом импульсе бит в строке данных сохраняется в первой из 8 защелок, в то время как существующие данные сдвигаются на одну позицию вниз. Значение последней защелки сдвигается на вывод QH ', который служит входом данных для второго регистра сдвига.

Когда все 15 бит сдвинуты, импульс на линии D12 запускает синхронизацию памяти регистров ( RCLK ) и заставляет содержимое защелок отображаться на выходных контактах QA-QH , которые подключены к адресные контакты EEPROM.

В течение 150 нс содержимое адреса появляется на выходных контактах EEPROM, где мы можем прочитать его на контактах D2-D9 Arduino.

Запись данных — это немного больше.

Сначала мы сдвигаем адрес, который хотим записать, как и раньше. Затем мы переводим EEPROM Output Enable ( ~ OE ) в высокий уровень и Chip Enable ( ~ CE ) в низкий уровень, чтобы перевести контакты ввода / вывода в режим высокого сопротивления.

Затем мы выводим данные, которые хотим записать, на линии ввода / вывода D2-D9 , за которыми следует импульс высокого-низкого-высокого уровня на выводе EEPROM ~ WE (подключенном к A0 на Arduino) .Это инициирует операцию записи, для завершения которой требуется до 10 миллисекунд.

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

Чтобы взаимодействовать с Arduino в интерактивном режиме, мы определили простой двунаправленный командный протокол для использования через последовательный интерфейс USB.

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

Протокол имеет 5 различных команд:

  • чтение : указывает Arduino прочитать один адрес и вернуть его значение
  • запись : сообщает Arduino записать данный байт по определенному адресу
  • дамп : выгружает все содержимое EEPROM в виде двоичного потока
  • load : записывает поток двоичных данных в EEPROM
  • reset : сбрасывает внутреннее состояние Arduino для восстановления после ошибок

Python Клиентская программа реализует этот протокол и передает данные напрямую в оболочку.

 $ ./eeprom.py --help 
использование: ./eeprom.py [-h] [-p PORT] {dump, load, test} ...

AT28C256 EEPROM Programmer

позиционные аргументы:
{dump , load, test} подкоманда help
dump выгружает все содержимое EEPOM в стандартный вывод
load загружает до 32 КБ стандартного ввода в EEPROM
test записывает случайные данные и считывает их обратно для проверки

необязательные аргументы:
-h , --help показать это справочное сообщение и выйти из
-p PORT, --port PORT последовательный порт, к которому подключен Arduino (в OSX
обычно / dev / tty.usbmodemXXXX)
$

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

 $ ./eeprom.py 
AT28C256 Программатор EEPROM Чтение или запись отдельных адресов, выгрузка полного содержимого в файл или
загрузка файла изображения в EEPROM. Чтобы прочитать один байт:
> [r | read] [ addr] Чтобы записать байт по определенному адресу:
> [w | write] [addr] [value] Чтобы выгрузить всю EEPROM в файл:
> [d | dump] [filename] Чтобы загрузить локальный файл в EEPROM:
> [l | load] [filename] Отправьте команду сброса:
> resetAddress поддерживает шестнадцатеричную (0xFF) и восьмеричную (0o7) нотацию.>

Поскольку параллельные EEPROM довольно дороги, я подумал, что было бы неплохо заказать у китайского продавца, утверждающего, что у него есть подлинные, новые микросхемы Atmel AT28C256 за пятую часть розничной цены в США. Даже если бы один был неисправен, у меня все равно осталось бы 4 штуки.

Не надо.

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

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

 $ file eeprom2.bin 
eeprom2.bin: PDP-11, загружаемый по запросу, чистый исполняемый файл

При работе макетной платы, кода Arduino и интерфейса командной строки Python я решил попробовать создать пользовательскую печатную плату в KiCad, которая будет вставляться в Arduino как плата расширения Shield.

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

Разъем ZIF — это 40-контактное устройство, которое у меня валялось. Поскольку AT28C256 — это 28-DIP, я просто оставил 12 крайних левых контактов неподключенными. Это малобюджетный проект.

Когда я отправился загружать файлы Gerber в OshPark для изготовления, я заметил их вариант «After Dark», в котором используется черная подложка FR4 с прозрачной паяльной маской, которая заставляет медные следы выделяться на черном фоне.

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

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

Проект KiCad, а также описание последовательного протокола и код для Arduino и Python CLI можно найти на GitHub.

Программирование микроконтроллеров: JTAG, SPI, USB, боже мой !?

Хотя я хотел бы погрузиться в различные доступные методы программирования, у кого-то уже есть. Вот руководство Dean Camera по AVRFreaks, Методы программирования AVR:

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

СПОСОБ 1: В системном программировании (ISP)

Поддерживается: Подавляющим большинством AVR (см. Сообщения ниже)
Поддерживаемые программаторы: AVRISP MKI / II, JTAG MKII, STK500, STK600, Dragon, клоны AVRISP, программаторы AVR910, AVRONE

в системе Программирование, пожалуй, самый распространенный метод программирования вспышки, EEPROM, предохранитель и байты блокировки вся линейка AVR. Интернет-провайдер может программировать AVR на очень высоких тактовых частотах (при условии, что целевой AVR работает на высокая частота и программист поддерживает его) и является методом выбор практически для всех любителей AVR.Существует очень много клонов AVRISP и Программаторы AVR910 на рынке в дополнение к простому своими руками ключи, которые подключаются к вашему параллельный порт компьютера.

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

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

СПОСОБ 2: JTAG

Поддерживается: См. Справку AVRStudio Tools о поддержке устройств MKI и MKII
Поддерживаемые программаторы: JTAG-ICE, JTAG-ICE MKII, Dragon, JTAG-ICE клоны, AVRONE, STK600 (только программирование)

Технически JTAG — это система отладки, а не программирование метод. Тем не менее, интерфейс JTAG позволяет программировать AVR который его поддерживает.

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

Официальные блоки JTAG-ICE от ATMEL были заменены JTAG-ICE MKII, который поддерживает более новые и более широко поддерживается в AVR диапазон протокола отладки DebugWire как а также программирование методом ISP (см. выше).

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

СПОСОБ 3: DebugWire

Поддерживается: Многие небольшие AVR
Поддерживаемые программаторы: JTAG-ICE MKII, Dragon, AVRONE

снова DebugWire это отладка, а не интерфейс программирования, но можно использовать загружать программы в поддерживаемые AVR. Интерфейс dW использует один Вывод AVR (строка / RESET) для всех коммуникации, что делает его идеальным для устройства AVR с низким числом контактов.

СПОСОБ 4: загрузчик

Поддерживается: Самые новые AVR
Поддерживаемые программаторы: Н / Д

Опять же технически не метод программирования. Загрузчик — это небольшая программа AVR. который находится в настраиваемом пользователем зарезервированном раздел штатной вспышки. Загрузчики используют флеш-память доступны функции самостоятельной модификации в новых AVR, чтобы AVR мог сама программа через загруженные данные программы из внешнего источника. Загрузчики могут получать свои данные из любых местоположение (например, внешняя флэш-память или SD card), однако наиболее распространенный тип загрузчика взаимодействует с ПК через порт RS-232 (последовательный) AVR.

Загрузчики

ограничены тем, что они действительно потребляют флеш-пространство (ограничивая размер вспышки, доступной для Приложение AVR), и они не могут заменить предохранители АРН.

Загрузчики

широко доступны на Интернет для скачивания, но они страдают от «курицы и яйца» проблема; вам нужен другой тип программист, указанный здесь, для программирования в загрузчик в первую очередь. Обычно это решается построение простого параллельного порта защитный ключ (см. раздел ISP) или покупка уже предустановленного AVR с загрузчиком (например, AVRButterfly доска).

МЕТОД 5: Параллельное программирование высокого напряжения (HVPP)

Поддерживается: Большинство AVR, отличных от TINY (за исключением)
Поддерживаемые программаторы: STK500, STK600, Dragon, Homebrew Dongles, AVRONE

Высоковольтный параллельный Программирование — это метод программирования который редко используется из-за хлопот, которые требуются для настройки. Несмотря на это, программирование HVPP обычно используется для «воскрешения» AVR, чьи предохранители были неправильно настроены через другой метод программирования.

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

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

МЕТОД 6: Последовательное программирование высокого напряжения (HVSP)

Поддерживается: Многие TINY AVR (за исключением)
Поддерживаемые программаторы: STK500, STK600, Dragon, Homebrew Dongles, AVRONE

HVSP похож на HVPP, кроме передачи данных выполняется последовательно, а не параллельно.Этот это альтернативный метод программирования используется на многих AVR серии TINY, у которых нет достаточно пинов для HVPP.

МЕТОД 7: PDI

Поддерживается: AVR XMEGA
Поддерживаемые программаторы: STK600, AVRONE, JTAG MKII, Dragon, AVRISP MKII

PDI — новый интерфейс программирования на основе протокола debugWire, для линейка AVR XMEGA. Это не в настоящее время используется на любом другом 8-битном AVR микроконтроллеры.

МЕТОД 8: TPI

Поддерживается: 6-pin TINY AVR (ATTINY10 и т. Д.)
Поддерживаемые программаторы: STK600, Dragon, AVRISP MKII

TPI — очень крошечный программный интерфейс для новая крошечная линейка AVR с ограниченным контакты, такие как 6-контактный ATTINY10. Как dW, TPI использует строку устройства / RESET как часть общения интерфейс, но есть сходство заканчивается. Поскольку крошечные AVR размером с пинту Отсутствие схемы отладки на кристалле, Протокол TPI использует новое программирование интерфейс трех контактов, в полудуплексный протокол. Поскольку Строку / RESET необходимо поднять до +12 В для программирования, когда устройство Пин RSTDSB установлен, в настоящее время поддерживается только более новым STK600 плата программирования.

Бонусный раздел FAQ!

  1. Какой метод лучше?
    Универсального «лучшего» метода не существует. Интернет-провайдер программирование простое и чрезвычайно популярны, однако все вышеперечисленные методы буду работать. Два высокого напряжения режимы программирования (в зависимости от того, что применимы к вашему устройству) являются наиболее функционально, поскольку они позволяют ремонт AVR, который прошел предохранители неправильно настроены. Однако те методы сложно настроить, поэтому причина, по которой большинство пользователей идут с Интернет-провайдер.

  2. Я сделал ключ параллельного порта. Могу ли я использовать его с AVRStudio?
    Я Не боюсь. AVRStudio не может взаимодействовать с любыми «тупыми» ключами — требуется интеллектуальное устройство программирования — содержащий сам микроконтроллер — расшифровать протокол связи он отправляет. Простые ключи без микроконтроллер должен быть битовым (т.е. соответствующие сигналы смоделированы через донгл через комп) сам.

  3. Значит, мой ключ бесполезен?
    №Вы все еще можете программировать через самодельный ключ с третьей стороной программный инструмент. AVRDude — это хорошая, известная, бесплатная командная строка утилита — и она входит в пакет WinAVR.

  4. Какие у меня есть варианты, если я хочу, чтобы мой программист работал с AVRStudio?
    Выберите программиста, который использует Протокол, поддерживаемый AVRStudio. Это может быть простым протоколом «AVR910» (не рекомендуется) или пользовательский реализация протокола, используемого STK500 / AVRISP. Обратите внимание, что эти программистам нужен микроконтроллер в них, что приводит к ловушке-22 ситуация.Это может быть решено имея AVR программиста запрограммировано на момент покупки с соответствующей прошивкой, либо предварительно запрограммированный на AVR загрузчик.

  5. Хорошо, я хочу использовать загрузчик. Как мне попасть туда в первый раз место?!
    Чтобы использовать загрузчик в AVR, сначала необходимо иметь загрузчик запрограммирован. Если вы это сделаете не иметь существующего программиста (даже простого глупого ключа будет достаточно для начальное программирование), вы можете в качестве альтернативы купить AVR предварительно запрограммирован загрузчиком из несколько поставщиков.
    Атмель также производит демо Butterfly плата, на которой идет MEGA169 AVR предварительно загружен с помощью AVR-Studio совместимый загрузчик.

  6. Помогите! Я испортил предохранители и сломал свой AVR при использовании ISP! Самая частая ошибка — изменение выбор часов сливается с неверная настройка. Попробуйте поставить внешние часы на выводе XTAL1 AVR и посмотрите, поможет ли это.
    В противном случае, если возможно, используйте один из высоковольтные методы. Эти будут исправить любую неправильную конфигурацию, в том числе те, которые включают источник часов в качестве высоковольтные методы обеспечивают собственное часы к AVR для программирования.

  7. Как мне взаимодействовать с моим программистом?
    Какое программное обеспечение вы используете взаимодействовать с вашим программистом зависит от типа программиста, которого вы используют.
    Простой «тупой» для ключей требуется стороннее программное обеспечение, такие как PonyProg или AVRDude. Эти могут быть инструментами командной строки или графическим интерфейсом — посмотрите в Интернете, и все будет хорошо тот, который соответствует вашим потребностям.
    Программаторы и загрузчики на базе протокол AVR910 может использоваться в AVRStudio. В меню Инструменты выберите опция «AVRProg», чтобы открыть графический интерфейс экран для взаимодействия с вашим программист.В качестве альтернативы третий партийные инструменты, такие как AVRDude, также Совместимость с AVR910.
    Официальный инструменты тесно интегрированы в AVRStudio, особенно в случае варианты отладки (JTAG / Dragon / и т. Д.). Из AVRStudio В меню «Инструменты» выберите «Программа AVR … «и щелкните Пункт «Подключить». В новом окне выберите свой инструмент и его подключение интерфейс и нажмите ОК.
    As в случае с немыми ключами и Программисты AVR910, официальные инструменты также может использоваться с третьей стороной программное обеспечение для программирования.

(C) Dean Camera, 2009. Все права сдержанный. Не для воспроизведения ни на каком веб-сайт, отличный от AVRFreaks.net без предварительного явного разрешение.

Как запрограммировать ESP8266 — с Arduino и без него — Умные решения для дома

Я открыл для себя ESP8266 несколько лет назад. С тех пор я очарован им. Я использую его везде, где он подходит 🙂 Менее чем за 2 доллара вы можете получить полнофункциональный микроконтроллер с полным стеком TCP / IP. Он может запускать ваше устройство и одновременно подключаться к Wi-Fi.Это идеальное решение для приложений Интернета вещей и умных домов.

В этой статье я расскажу, как запрограммировать чип ESP8266, как настроить контакты для перевода его в режим flash. Вы узнаете, как подключить адаптер UART-USB, и какой тип модуля / платы лучше всего подходит для вас.

Давайте сразу же приступим!

Что такое ESP8266?

ESP8266 — 32-битный микроконтроллер с процессором Tensilica, производимый Espressif Systems. Он имеет шестнадцать настраиваемых GPIO и встроен в большинство популярных интерфейсов, таких как UART, SDIO, SPI, I2C, I2S, GPIO, ADC, PWM.Он может работать с тактовой частотой до 160 МГц (глухая — 80 МГц). Таким образом, вы можете использовать его, как любой другой микроконтроллер, для управления вашим устройством. Что делает его уникальным, так это автономные возможности Wi-Fi. Он объединяет антенные переключатели, ВЧ балун, усилитель мощности, фильтры и модули управления питанием. Все, что вам нужно сделать, это добавить антенну и несколько пассивных элементов, и вы готовы к работе!

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

Какую доску выбрать?

Есть много модулей / плат, и они постоянно добавляют новые. Текущий список вы найдете в Википедии. Все эти модули основаны на одной микросхеме ESP8266EX. Они различаются формой, размером, количеством выводов, типом антенны и дополнительными элементами.

Чтобы как-то разумно описать то, что вам нужно выбрать, я разделил это на три уровня. Но не поймите меня неправильно — это не уровни сложности 🙂 На самом деле все наоборот. Уровень 1 — самый сложный, а Уровень 3 — самый простой.

Уровень 1 (низший)

Самый нижний уровень (его также можно назвать цокольным) — это сама микросхема ESP8266EX. Если вы разрабатываете hi-end устройство, которое должно быть как можно меньше, или если вы собираетесь производить его в больших количествах, и важна каждая копейка, вам следует выбрать это.

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

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

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

Создание собственной печатной платы с микросхемой ESP8266EX — большая и очень интересная тема. Поэтому я сделаю об этом отдельную статью.

Уровень 2 (средний)

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

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

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

  • Модули не имеют встроенного в плату адаптера UART-USB. И надо чип запрограммировать. Подробнее об этом я напишу в главе Подключение ESP8266 к адаптеру UART-USB .
  • Также необходимо убедиться, что штифты находятся в правильном состоянии. Например. Контакт Reset должен быть ВЫСОКИМ во время нормальной работы. Подробнее о функциональных контактах читайте в главе Распиновка .
  • Если вы хотите запитать устройство напряжением 5 В, необходимо также позаботиться о стабилизаторе напряжения.В основном вы будете использовать несколько простых LDO.
УРОВЕНЬ 3 (высший)

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

  • Адаптер USB-UART и удобный разъем Micro / Mini USB для прямого подключения к компьютеру
  • Регулятор напряжения, позволяющий подключать 5 В напрямую к плате
  • Кнопки RESET и FLASH
  • Дополнительные светодиоды

Они совместимы с макетной платой .Так что паять ничего не надо.

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

Однако я никогда не использую эти платы на «реальных» устройствах. Я тоже не рекомендую тебе этого делать. Запутанные кабели (которых в данном случае не избежать) всегда были серьезной проблемой в моих проектах.

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

Распиновка

Из предыдущей главы вы знаете, что существует большое разнообразие плат и модулей. Поэтому, если вы хотите сделать один переключатель, вы не будете использовать ESP-12F с большим количеством GPIO. Вы, вероятно, будете использовать небольшой модуль, например ESP-01.

Главное — это маркировка штифтов. К сожалению, у каждого продюсера есть свое видение того, как это сделать. Поэтому маркировка может (и в большинстве случаев будет) отличаться.

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

Описание всех GPIO

ESP8266EX имеет 17 контактов GPIO, которые можно назначать для различных функций. Они могут действовать как I2C, I2S, UART, PWM, ИК-пульт дистанционного управления и т. Д.

Более подробную информацию можно найти в документации на веб-сайте Espressif .

PIN Направление Описание
GPIO0 INPUT / OUTPUT GPIO0 используется для выбора режима загрузки.Вытяните его на GND во время запуска для режима прошивки, потяните на VCC (или оставьте его открытым) для нормального режима загрузки. В большинстве плат (уровень 3) он подключен к кнопке вспышки. Если вы используете модуль (уровень 2), удобно сконструировать кнопку, замыкающую его на массу.
В обычном режиме работы может использоваться как классический GPIO.
GPIO1 ВЫХОД GPIO1 используется как UART0 TX во время программирования флэш-памяти. На вашей печатной плате подключите его к контактам для адаптера UART-USB.
В нормальном режиме работы может использоваться как выход GPIO.
ВЫСОКИЙ при загрузке. Если при запуске потянуть на GND — загрузка не удалась.
GPIO2 ВХОД / ВЫХОД GPIO2 можно использовать как классический GPIO.
Часто подключается к светодиоду.
ВЫСОКИЙ при загрузке. Если при запуске вытянуть его на GND — загрузка не удалась.
GPIO3 INPUT GPIO3 используется как приемник UART0 во время программирования флэш-памяти.На вашей печатной плате подключите его к контактам для адаптера UART-USB.
В нормальном режиме работы может использоваться как вход GPIO.
ВЫСОКИЙ при загрузке. Если при запуске вытянуть его на GND — загрузка не удалась.
GPIO4 ВХОД / ВЫХОД GPIO4 часто используется как SDA для I2C (также можно использовать любой другой вывод).
В обычном режиме работы может использоваться как классический GPIO.
GPIO5 ВХОД / ВЫХОД GPIO4 часто используется как SCL для I2C (также можно использовать любой другой вывод).
В обычном режиме работы может использоваться как классический GPIO.
GPIO6 Не рекомендуется GPIO6 используется для подключения к тактовому контакту SD-карты.
GPIO7 Не рекомендуется GPIO7 используется для подключения к контакту данных 0 SD-карты.
GPIO8 Не рекомендуется GPIO8 используется для подключения к контакту данных 1 SD-карты.
GPIO9 Не рекомендуется GPIO9 используется для подключения к контакту данных 2 SD-карты.
GPIO10 Не рекомендуется GPIO10 используется для подключения к контакту данных 3 SD-карты.
GPIO11 Не рекомендуется GPIO11 используется для соединения с командным контактом SD-карты.
GPIO12 ВХОД / ВЫХОД GPIO12 может использоваться как вывод MISO для интерфейса HSPI (высокоскоростной параллельный интерфейс).
Это может быть классический GPIO, если вы не используете HSPI.
GPIO13 ВХОД / ВЫХОД GPIO13 может использоваться как вывод MOSI для интерфейса HSPI.
Это может быть классический GPIO, если вы не используете HSPI.
GPIO14 INPUT / OUTPUT GPIO14 может использоваться как контакт CLK для интерфейса HSPI.
Это может быть классический GPIO, если вы не используете HSPI.
GPIO15 ВХОД / ВЫХОД GPIO15 может использоваться как вывод CS для интерфейса HSPI.
Это может быть классический GPIO, если вы не используете HSPI.
НИЗКИЙ при загрузке. Если при запуске потянуть к VCC — загрузка не удалась.
GPIO16 ВХОД / ВЫХОД GPIO16 можно использовать для пробуждения из глубокого сна или как классический GPIO.
ADC0 INPUT ADC0 (аналого-цифровой преобразователь) — это 10-битный прецизионный аналоговый входной вывод.
CH_EN не применимо Контакт включения микросхемы:
— если ВЫСОКИЙ: микросхема работает правильно.
— если НИЗКИЙ: потребляется небольшой ток
RST не применимо Внешний сигнал сброса:
— если ВЫСОКИЙ: микросхема работает правильно.
— если НИЗКИЙ: чип сброшен

Подключите ESP8266 к адаптеру UART-USB

Можно использовать любой переходник. Даже самый дешевый подойдет. Важно, чтобы он мог работать с 3,3 В . Если подключить 5 В, то чип зажаришь.

Подключить модуль или плату к адаптеру очень просто.Все, что вам нужно, это 4 провода. Подключите их следующим образом:

  • VCC -> VCC (3,3 В)
  • GND -> GND
  • RX -> TX
  • TX ->

Как программировать ESP8266

Самый универсальный и простой способ программирования любой микросхемы ESP8266:

  • Подключите адаптер USB-UART к ESP8266 следующим образом: VCC -> VCC , GND -> GND , RX -> TX и TX -> RX .
  • Подсоедините контакт GPIO0 к GND.
  • Подключаем адаптер к компьютеру.
  • Запустить программу для прошивки через UART, например ESPEasy.
  • Выберите соответствующий COM-порт и двоичный файл, который вы хотите загрузить.
  • Нажмите кнопку Flash .
  • После успешного сброса ESP8266.

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

Некоторые из них, например, Arduino IDE, имеют встроенный программатор. Таким образом, вам не нужно использовать какие-либо другие внешние программы для прошивки чипа ESP8266. Другие, например ESPHome , могут программировать OTA (по воздуху). Ниже мы рассмотрим эти два способа.

Однако есть еще много способов сгенерировать двоичный файл. Я насчитал 19 различных сред! 🙂 Здесь невозможно описать все методы.Если вы хотите оптимизировать свой код с точки зрения размера или скорости, вы можете использовать язык C и один из официально поддерживаемых SDK. С другой стороны, если вы предпочитаете Python, Lua, Visual Basic или JavaScript, ничто не помешает 🙂

Программирование ESP8266 с помощью Arduino IDE

Сама по себе

Arduino в представлении не нуждается. Это аппаратная и программная платформа с открытым исходным кодом. И он чрезвычайно популярен среди любителей электроники. Неудивительно, что все их изделия хорошо отполированы и удобны в использовании.Но самое большое преимущество — это то, что вокруг него собралось сообщество. Благодаря им вы можете программировать чип ESP8266 с помощью IDE.

  • Первым шагом является подключение адаптера UAR-USB к микросхеме ESP. Я описал, как это сделать, в главе «» «Подключение ESP8266 к адаптеру UART-USB ». Не забудьте подтянуть GPIO0 к GND перед подключением USB.
  • Запустите Arduino IDE.
  • Теперь воспользуемся работой сообщества 🙂 Добавьте в IDE поддержку модулей и плат с ESP8266.Перейдите в File -> Preferences
  • Введите: https://arduino.esp8266.com/stable/package_esp8266com_index.json в поле дополнительных URL-адресов Board Manager. Если вы хотите добавить больше досок, просто разделите URL-адреса запятыми.
  • Нажмите ОК. Теперь перейдите к Tools -> Board: « НЕКОТОРЫЕ ИМЯ » -> Boards Manager…
  • Введите «esp8266» в поле вверху или прокрутите его до конца.Вы найдете там пакет библиотек и примеры для различных модулей ESP. Нажмите Установить
  • Теперь вы можете перейти к Tools -> Board: « НЕКОТОРЫЕ ИМЯ » и выбрать интересующую вас плату. Например, Generic ESP8255 Module.
  • Теперь можно писать код. Но не волнуйтесь, мы не будем делать этого прямо сейчас 🙂 На этом этапе вы можете использовать готовый набросок из любого места. Часто люди делятся эскизами на форумах или в группах Facebook.Вы также можете использовать только что установленные примеры.

Для этого перейдите в Файл -> Примеры. И выберите тот, который вам нужен. Я рекомендую для начала Blink .

  • Я полагаю, вы уже подключили свой модуль к компьютеру через адаптер UART-USB. Вы должны выбрать правильный номер порта. Этот номер присваивается ОС при первом подключении устройства (адаптера).
  • Осталась только проверка и можно программировать чип ESP.Щелкните Проверить , а затем Загрузить.
  • Если все прошло успешно, вы должны увидеть следующее окно:

И все Вы только что запрограммировали ESP8266 с помощью Arduino IDE. Теперь все, что вам нужно сделать, это перезагрузить плату, и все должно работать правильно.

Программирование ESP8266 с помощью ESPHome

Если вы используете Home Assistant, ESPHome — лучшая прошивка для любых модулей ESP. С его помощью вы можете сгенерировать двоичный файл, а затем использовать универсальный метод программирования (я описал его выше).Или (при определенных условиях) используйте WIFI вместо адаптера UART-USB. Это очень удобно, особенно если у вас непростой доступ к устройству.

Я опишу оба пути.

Адаптер UART-USB

Я предполагаю, что у вас установлен ESPHome и вы уже добавили свое устройство. Если нет, ознакомьтесь с моей статьей о Smart Garage Door Opener . В главе «Программное обеспечение » я описал, как это сделать.

В этом примере я буду использовать файл конфигурации из этого проекта.

  • После редактирования файла конфигурации нажмите СОХРАНИТЬ, а затем ЗАКРЫТЬ.
  • Убедитесь, что вы не сделали ошибок.
  • Раскройте меню (три точки) и щелкните СОБИРАТЬ .
  • Если все прошло хорошо, вы увидите информацию об успешном завершении компиляции. Щелкните СКАЧАТЬ ДВОИЧНЫЙ.
  • Теперь вы можете использовать универсальную процедуру перепрошивки ESP8266, которую я описал в начале этой главы.
OTA (по воздуху)

Вы не можете использовать этот метод при первой прошивке ESP8266. Начать надо с переходного метода. Второе ограничение — это объем FLASH-памяти. В старых модулях (например, ESP-01 — синий) всего 512 кБ, чего недостаточно. Минимальный объем — 1 МБ. К счастью, модулей, выпускаемых в настоящее время, обычно есть в необходимом количестве.

Программировать таким образом очень просто.

  • Когда вы закончите редактировать файл конфигурации, нажмите СОХРАНИТЬ , а затем ЗАКРЫТЬ
  • Убедитесь, что нет ошибок, нажав ПРОВЕРИТЬ .Если все в порядке, нажмите ЗАГРУЗИТЬ . Устройство должно быть в сети. Иначе OTA работать не будет.
  • Через некоторое время (если все прошло хорошо) вы увидите сообщение об успешном выполнении.
  • Вот и все. Вы только что обновили прошивку на ESP8266.

Вы можете нажать ЗАГРУЗИТЬ в редакторе. Но не рекомендую. Рекомендуется проверять наличие ошибок после каждого изменения.

Сводка

Я вижу, ты дошел до конца.Поздравляю!

Из этой статьи вы узнали, что такое микросхема ESP8266EX, в чем разница между модулем и оценочной платой и как ее программировать. Я показал вам, как сделать это универсальным способом, который работает с каждым модулем, или с помощью Arduino IDE и ESPHome.

А какими способами пользуетесь? Вы предпочитаете Arduino, ESPHome или что-то еще?

Статьи по теме

Как запустить Умный дом — часть 2

Если вы читаете это, значит, вы хотите…

Как работает реле? — Полное иллюстрированное руководство

Реле (ЭМИ или электромагнитное реле) представляет собой электромеханический компонент…

Как запустить умный дом — пошаговое иллюстрированное руководство

Это первая статья из серии, в которой…

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

Ходят слухи о дешевом чипе, который изначально поддерживает USB, имеет набор инструментов с открытым исходным кодом и стоит четверть.Это не слухи: микроконтроллер CH552 можно купить прямо сейчас. Удивительно, но мало кто выбирает этот дешевый чип для своего следующего проекта. Если нет оригинальных проектов с использованием этого чипа, никто не будет использовать этот чип. Лови 22 и все такое.

Подобно великодушному богу, [Аарон Кристофель] получил вашу поддержку рабочим примером программирования этого дешевого чипа и выполнения с ним чего-то полезного. Он мигает светодиодами, пишет на дисплей I2C и делает все, что вам нужно от микроконтроллера, который стоит несколько копеек.

CH552 и его друзья, маленький CH551 вплоть до CH559, содержат ядро ​​8051, где-то около 16 КБ флэш-памяти, высокопроизводительные чипы имеют контроллер USB, есть SPI, PWM, I2C, и это стоит копейки. В отличие от многих других микросхем, вы можете найти SDK и наборы инструментов. Вы можете запрограммировать чип через USB. Ясно, что мы смотрим на что-то действительно крутое, если кто-то напишет для него оболочку Arduino. Мы еще не достигли цели, но уже близко.

Чтобы запрограммировать эти микросхемы, [Аарон] сначала должен был подключить микроконтроллер к цепи.Это был всего лишь кусок перфорированной платы, резистор, несколько крышек и штекер USB A. Вот и все, что нужно. Это довольно стандартное ядро ​​8051, поэтому написать код относительно легко. Загрузка выполняется с помощью программного обеспечения WCHISPTool с параметрами, доступными для вашего любимого вкуса * nix.

Но становится лучше. Одна из главных особенностей CH552 — USB. Это означает, что нет дорогих или странных программистов, да, но это также означает, что CH552 может эмулировать USB HID-устройство. CH552 может стать USB-клавиатурой.Чтобы продемонстрировать это, [Аарон] запрограммировал плату CH552 (DE, вот переводчик Google), снабженную сенсорными панелями и светодиодами, чтобы она стала USB-клавиатурой.

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

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

Сделай сам универсальный программатор USB flash 8051 avr mcu gal pic spi.Поддерживает более 450 микросхем флэш-памяти, 286 наборов микросхем, … программаторов на базе параллельного / последовательного порта

  • Программатор последовательной флэш-памяти Программатор флэш-памяти Diyserial — устройство Altera Quad-Serial Configuration (EPCQ) Привет, у меня есть atmega8ic, и я планировал построить для него схему последовательного интерфейса. В конце концов, я решил построить свой собственный — протокола программирования EEPROM более чем достаточно флэш-памяти для более сложной прошивки, и он достаточно мал.

    Я разработал этот автономный программатор с SD-картой для хранения и четырьмя местами для флеш-чипов (2xSO8 + 2xSO16packages) с последовательной консолью для записи.5 шт. / Лот новый usb spi bios 25x series en25t80 программатор для diy новый usb spi set tl866csprgrammer универсальный usb-программатор flash 8051 avr mcu gal pic spi. Поддерживает более 450 микросхем флэш-памяти, 286 наборов микросхем, 450 материнских плат, 75 устройств PCI, 13 устройств USB и различные программаторы на базе параллельного / последовательного порта. Программирование 16-мегабитной флэш-памяти менее 18 секунд, 48-контактный мощный. Использование встроенного разъема для последовательного программирования (ISP) позволяет программисту работать.

    Serial Flash Programmer Diy >>> НАЖМИТЕ ЗДЕСЬ

  • Самые последние ноутбуки имеют свой BIOS в последовательном EEPROM с интерфейсом SPI на Программист поставляется с приложением, которое используется для чтения / записи и т. Д.фишки. Нашел флеш-чип Winbond «W25X80» (1024 kB, SPI) на linux_spi. Однако лучшее исправление — coreboot / libreboot, где вы управляете источником И прошивкой. ШЕСТЬ ПРОГРАММАТОРОВ SPI FLASH. (1) SPI только для Windows. Надежный, высокоскоростной, профессиональный USB-порт или последовательный порт, программатор микроконтроллера PIC, электронный комплект. Розетка и 6-контактный разъем ICSP. KMTronic USB E-Eprom и SerialFlash Programmer — BIOS, маршрутизатор в бизнесе, офисе и промышленности, электрическое и испытательное оборудование, компоненты и расходные материалы / eBay.Используя OpenSDA (режим программиста) FRDM, вы можете загрузить (дорого) для создания автономных программаторов DIY перед пайкой на плате. В качестве альтернативы можно использовать последовательный порт и загрузчик MSD для программирования будущих прошивок. LPC-Programmer-Build-Overview.jpg. Компактный (77×30 мм) USB-программатор для прошивки контроллеров LPC для семейств P89LPC9xx и ARM LPC11xx. Вам нужен только простой последовательный программатор, никаких контроллеров или прошивок не требуется. Дилшан Джаякоди опубликовал новую сборку, проект FlashProg — программатор последовательной флэш-памяти USB: FlashProg — это программатор базовой флэш-памяти USB.

    Прочтите обзоры программирования Spi Flash и рейтинги клиентов по предотвращению дверного пробоя, загрузке dos, комплекту для разблокировки дверей, комплекту dora, обзорам, электронике DIY.

    Я создал очень простой адаптер для программирования флэш-памяти 78K0S для этих устройств. Программатор и устройство 78K0S основано на обычной асинхронной последовательной передаче.

  • Программирование флэш-памяти с помощью программатора USB для SPI. Добавить в EJPlaylist Чип был записан с помощью программатора на основе COM-порта своими руками, хех. : D.

    SkyPRO Высокоскоростной USB-программатор SPI для 24/25/93 EEPROM / SPIflash / AVR.Подробная информация о микросхеме EEPROM FLASH BIOS MCU USB Programmersupport 6000.

    Editor Terminal Emulator Архив технических чертежей ATMEL AT89S51 — это вариант 8051 с последовательным программным интерфейсом для встроенной флэш-памяти 4 КБ. Мохаммад Асим Хан, программист FlashMicrocontroller, версия 3.0. Если вы хотите создать свой собственный модуль преобразователя USB в последовательный порт, обратитесь к нему. Поскольку у вас есть программатор AVRUSBasp, можно ли его загрузить. Кабель для программирования Joint Test Actiongroup (JTAG) -HS1 представляет собой решение для высокоскоростного программирования SPI (поддерживаются режимы 0 и 2). См. Раздел справки «Введение в косвенное программирование SPI или BPI Flash Memory».

    Программатор последовательного AVR и PIC (ссылка) Я не знаю, интересно ли вам создать собственный адаптер для программирования DIY, который не гарантированно поддерживает все. Внешний программатор EPROM / Flash, который может программировать микросхему флэш-памяти на вашей материнской плате. External Bus Pirate v3 / v4: Программатор SPI, похожий на Dediprog SF100, но менее дорогой. Вы можете сделать свое устройство с двойной вспышкой. преобразователь USB в последовательный TTL, который может работать со скоростью 500 кбит / с и устойчив к 5 В at90usb162 flashat90usb162.hex sudo dfu-programmer at90usb162 reset.

    >>> НАЖМИТЕ ЗДЕСЬ

  • Последовательный периферийный интерфейс (SPI) Карманный программатор использует интерфейс SPI не только для записи загрузчика во флэш-память вашего AVR, но и для предохранителей.

    Программатор последовательной флеш-памяти DiyI разработал этот автономный программатор с SD-картой для хранения и четырьмя местами для флеш-чипов (2xSO8 + 2xSO16 пакетов) с последовательной консолью для записи. Большинство сравнительно недавних ноутбуков имеют свой BIOS в последовательном EEPROM с интерфейсом SPI on Программист поставляется с приложением, которое используется для чтения / записи / и т. д.фишки. Обнаружил флеш-чип Winbond «W25X80» (1024 kB, SPI) на linux_spi.

  • Business, Office & Industrial Plcc44 to dip40 универсальный программатор usb тестер адаптера для микросхем socket_vi Электротехническое оборудование и материалы

    Business, Office & Industrial Plcc44 to dip40 универсальный USB-программатор тестер адаптера для микросхем socket_vi Электротехническое оборудование и материалы
    • Дом
    • Бизнес, офис и промышленность
    • Электрооборудование и принадлежности
    • Разъемы для проводов и кабелей
    • Разъемы для микросхем
    • Plcc44 — dip40 универсальный программатор USB Тестер адаптера микросхем socket_vi

    тестер адаптера ic socket_vi Универсальный программатор от Plcc44 до dip40 usb, тип: от Plcc44 до dip40, интернет-магазины из любого места, создайте свой собственный стиль сейчас, довольные покупки, обновление не повышает цену, чтобы гарантировать 100% подлинность, будьте уверены в покупке.тестер адаптера микросхем socket_vi Plcc44 to dip40 универсальный usb, Plcc44 to dip40 универсальный usb программатор тестер адаптера микросхемы socket_vi.








    неоткрытый и неповрежденный предмет в оригинальной розничной упаковке, неиспользованный, EAN:: Не применяется, например, обычная или непечатная коробка или полиэтиленовый пакет, Тип: Plcc44 to dip40, Состояние :: Новое: Марка A -новый, если применима упаковка, GTIN:: Не применяется: MPN:: Не применяется. Подробную информацию см. В списке продавца. Если товар поступает напрямую от производителя, универсальный программатор Plcc44 — dip40 usb, тестер микросхемы socket_vi, он может быть доставлен не в розничной упаковке.UPC:: Не применяется: Страна / регион производства:: Китай, См. Все определения условий: Торговая марка:: Без марочного обозначения / Родовое.

    Plcc44 — dip40 универсальный USB-программатор тестер адаптера микросхемы socket_vi




    Plcc44 — dip40 универсальный USB-программатор тестер адаптера микросхемы socket_vi


    rrlaw.ca Тип: Plcc44 to dip40, Интернет-магазины из любого места, Создайте свой собственный стиль прямо сейчас, Довольные покупки, Обновление не повышает цену, Чтобы гарантировать, что покупка будет 100% подлинной.

    PonyProg — Программатор последовательных устройств

    Дом
    Кто я?
    Проекты
    ПониПрог
    КАРАКА
    WebTherm
    MiniThreads
    ПЛИС



    Последнее обновление
    $ Дата: 2008/01/05 23:21:01 $


    Введение
    Если ищите простой, но мощный программатор ты прав, он здесь.
    PonyProg — программатор последовательных устройств программное обеспечение с удобным графическим интерфейсом, доступным для Windows95 / 98 / ME / NT / 2000 / XP и Intel Linux. Его цель — чтение и запись каждого сериала. устройство. На данный момент он поддерживает IC Bus, Microwire, SPI eeprom, Atmel AVR и Microchip PIC micro.
    SI-Prog программатор аппаратный интерфейс для PonyProg.
    С PonyProg и SI-Prog вы можете запрограммировать Wafercard для SAT, eeprom в пределах GSM, ТВ или АВТОРАДИО. Кроме того, его можно использовать как низкий стоит стартовый комплект для PIC и AVR.

    Поддержка PonyProg

    PonyProg также работает с другими простыми аппаратными интерфейсами, такими как AVR ISP (STK200 / 300), JDM / Ludipipo, EasyI2C и DT-006 AVR (от Dontronics).

    Характеристики
    Опора 24C01, 24C02, 24C04, 24C08, 24C16 IC Bus EEPROM
    Опора 24C32, 24C64, 24C65, 24C128, 24C256, 24C512 IC Bus EEPROM
    Автоопределение 24XX EEPROM вместимость
    Поддержка 24C325 и 24C645 IC Bus EEPROM
    Поддержка Siemens SDE2516, SDE2526, SDA2546, SDA2586, SDA3546, SDA3586 EEPROM (как 24XX Auto)
    Поддержка AT17C65, AT17C128, AT17C256, AT17C512, AT17C010 IC Bus EEPROM
    Поддержка Siemens SDE2506 EEPROM
    Обнаружение опрокидывания банка возможность некоторых старых 24XX EEPROM
    Поддержка AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S4434, AT90S8515, AT90S8535 Вспышка micro
    Поддержка AT90S2323, AT90S2343, AT90S2333, AT90S4433, AT90S4434, AT90S8535, AT90S8534
    Автоматическое определение микроконтроллера AVR тип
    Поддержка микроконтроллера AVR ATmega103, ATmega161, ATmega163, ATmega 323, ATmega128, ATmega8, ATmega16, ATmega64, ATmega32, ATmega162, ATmega169, ATmega8515, ATmega8535
    Поддержка AVR ATmega44, 88, 168, 164, 324, 644, 640,1280, 1281, 2560, 2561 ( непроверено, )
    Поддержка AVR AT90can32, 64 и 128 ( непроверено )
    Поддержка AVR ATtiny12, ATtiny15, ATtiny26, ATtiny2313
    Поддержка AVR ATtiny13, 25, 45, 85, 261, 461 и 861 ( непроверено, )
    Чтение ATtiny12 и ATtiny15 Байт калибровки осциллятора
    Запись битов блокировки для защиты микроконтроллер AVR от чтения
    Запишите как Flash, так и EEPROM память микроконтроллера AVR сразу
    Поддерживает AT89S8252 и AT89S53 микро
    Опора 93C06, 93C46, 93C56, 93C57, 93C66, 93C76, 93C86 Микропровода EEPROM (серии C и LC, серия CS пока не поддерживается)
    Опора 93C13 (как 93C06) и 93C14 (как 93C46) микропровода EEPROM
    Доступ к микропроводам eeproms в 8- и 16-битной организации
    Улучшенная поддержка PIC 16C84 / 16F84 микро
    Поддержка PIC 16F873 / 874/876/877 и PIC 16F84A micro
    Поддержка PIC 16F873A / 874A / 876A / 877A и PIC 16F627 / 628 micro (не тестировалось)
    Поддержка PIC 12C508 / 509 микро
    Поддержка PIC 12C671 / 672 микро ( непроверено )
    Опора 25010, 25020, 25040 SPI EEPROM
    Опора 25080, 25160, 25320, 25640, 25128, 25256 Большой SPI EEPROM
    Поддержка 25642 и 95640 Большой SPI EEPROM
    Поддержка NVM3060 eeprom
    Поддержка MDA2061 / MDA2062 eeprom
    Поддержка X2444 / X2445 eeprom
    Поддержка S24h40 ( непроверено )
    Чтение / запись шестнадцатеричного формата Intel файл, а также необработанный двоичный файл
    Чтение / запись S-записи Motorola форматировать файл
    Чтение / запись файла формата CSM
    Имеет специальный формат EP файл для хранения характеристик EEPROM, редактируемый комментарий и содержимое памяти вместе с CRC
    Улучшенное редактирование буфера, текст и шестнадцатеричный
    Работа с Windows95 / 98 / ME и Windows NT / 2000 / XP и Linux *
    Кнопка перезагрузки файла
    Команда заполнения буфера
    Редактирование битов безопасности для AVR, AT89S и PIC
    Программирование серийного номера
    Файлы сценариев для пакетной обработки программирование
    Повышенная скорость с WinNT / 2000 / XP с драйвером для прямого ввода / вывода.

    * Не все интерфейсы поддерживаются каждой операционной системой, для получения дополнительной информации смотрите документацию.

    Новые непроверенные устройства могут не работать. Жду образцы чтобы проверить их.

    Экран свалка

    Загрузить стр.

    Скачать PonyProg для Windows9x / ME / NT / 2000 / XP и Linux

    Также вам может пригодиться онлайн-документация PonyProg2000.

    TODO

    Новый графический интерфейс, вероятно, основан на wxWidgets и поддержке USB.

    Любой вклад приветствуется!

    Аппаратное обеспечение интерфейсы
    PonyProg теперь работает с несколькими аппаратными интерфейсами.Выбирать тот, который вам больше нравится, и попробуйте.

    SI Prog (Интерфейс последовательного порта для PonyProg)

    Официальный аппаратный интерфейс PonyProg. Работает со всеми устройства, поддерживаемые PonyProg. Смотри сюда купить это.

    Схема

    SI Prog
    SI Prog kit


    AVR ISP (STK200 / 300) интерфейс параллельного порта

    Лучший способ выполнить программирование AVR ISP.Работает даже в системах низкого напряжения (3В). Чтобы выбрать его, выберите «AVR ISP. I / O »или« AVR ISP API »в меню« Параметры »-« Настройка ». меню и параллельный флажок.
    Вы можете подключиться напрямую к целевой системе (ISP) через 10-контактный разъем, в качестве альтернативы вы можете подключить PonyProg адаптер для AVR, AT89S, SPI eeproms, microwire eeproms и подать внешнее питание на устройство.
    «AVR ISP API» в версии для Linux требуется parport, parport_pc и модули ядра ppdev.
    В Windows2000 / XP необходимо выбрать «AVR ISP I / O» и использовать стандартный LPT порт ПК.
    Обратите внимание, что этот интерфейс не поддерживает I CBus устройств, используйте вместо этого интерфейс SI-Prog или EasyI2CBus.

    Официальный ключ STK200 / 300 предоставлен компанией Kanda.

    Некоторые люди Предложите мне улучшения оригинального ключа STK200. Для обсуждение смотрите здесь

    Вот улучшенные схемы.

    AVR ISP с распиновкой STK200 / 300 (подключить к STK200 / 300 eva доска)
    Нажмите здесь, чтобы увеличить

    AVR ISP с распиновкой SI-Prog (подключить к SI-Prog Платы адаптера AVR)
    Нажмите здесь, чтобы увеличить


    Ludipipo и интерфейс JDM

    PonyProg поддерживает интерфейс ludipipo и JDM для программирования PIC16x84.

    alexxlab

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

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