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

Обновлено: 08.07.2024

Мы решили назвать этот программатор "Янус".

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

  • C одной стороны, этот программатор - простой. Распространяется как бесплатный проект, его можно легко изготовить самому.
  • C другой стороны, он разработан фирмой, длительное время профессионально занимающейся разработкой и производством различной радиоэлектронной аппаратуры, в том числе программаторами.
  • C одной стороны, этот программатор - простой, с первого взгляда имеет не сильно впечатляющие характеристики.
  • C другой стороны, работает совместно с профессиональной программой (кстати, точно такой же, как и остальные профессиональные программаторы ChipStar).
  • C одной стороны, мы предлагаем этот программатор для свободной бесплатной сборки.
  • C одной стороны, мы его продаем и в готовом виде, как обычный бюджетный продукт.
  • C одной стороны, на самодельный программатор не распространяется гарантия (что естественно).
  • C одной стороны, если вы его смогли собрать, то и отремонтировать сможете, да и программатор настолько простой, что ломаться, собственно, нечему.
  • C одной стороны, это простой внутрисхемный программатор.
  • C одной стороны, через простые адаптеры расширения он поддерживает программирование NANDFLASH и других микросхем уже "в панельке".

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

Что нас побудило разработать этот программатор.

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

Есть множество дешевых китайских программаторов в уже готовом виде.

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

Казалось бы, в чем смысл очередной поделки?

Мы длительное время занимаемся разработкой производством и поддержкой универсальных программаторов, в основном специального назначения. У нас богатый опыт работы с самыми разными микросхемами. Часто к нам обращаются люди уже собравшие, а часто и купившие, какой-нибудь из выше названных "изделий". Нашим специалистам часто без смеха/слез/ужаса (нужное подчеркнуть) невозможно смотреть на схемные решения, качество сборки и, особенно, на программное обеспечение этих приборов. Ладно когда программатор стоит "три копейки", купил, что-то работает, что-то не работает, зато деньги не большие. Но часто соотношение цена/возможности таких приборов у нас вызывают, мягко говоря, удивление. Хочется воскликнуть: это столько не стоит!

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

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

Итак, программатор ChipStar-Janus в начальной конфигурации - это внутрисхемный программатор. В таком режиме он поддерживает микроконтроллеры PIC и AVR фирмы Microchip, некоторые микроконтроллеры архитектуры MCS51, микроконтроллеры фирмы STMicroelectronics и еще ряд других, а также микросхемы последовательной памяти с интерфейсом I2C (в основном серия 24). К разъему расширения программатора можно подключить простейшие адаптеры и начать программировать микросхемы памяти "в панельке".

Сейчас реализовано программирование "в панельке":

  1. микросхемы последовательной памяти (Serial EPROM) с интерфейсом I2C (серия 24xx);
  2. микросхемы последовательной флэш памяти (Serial FLASH) с интерфейсом SPI (SPI Flash);
  3. микросхемы последовательной памяти (Serial EPROM) с интерфейсом MW (серия 93xx);
  4. микросхемы NAND FLASH;

Программатор и программное обеспечение поддерживает технологию самостоятельного добавления микросхем в три клика. Пока реализовано добавление микросхем NAND и I2C. В самое ближайшее время планируется реализовать эту технологию для микросхем MW (серия 93xx) и AVR. Таким образом, вы получаете не просто программатор, а мощный инструмент для самостоятельной работы.

Три способа получить программатор ChipStar-Janus

1-й способ:
Собрать программатор самому полностью

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

2-й способ:
Собрать программатор самому, купив готовую печатную плату и прошитый микроконтроллер

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

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

3-й способ:
Купить готовый программатор

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

Что мы еще планируем сделать для развития программатора ChipStar-Janus

1. Расширить возможности самостоятельного добавления микросхем, добавив:

  • Микросхемы памяти c протоколом MWсерии 93xx.
  • Микросхемы памяти c SPI интерфейсом.
  • Микросхемы памяти DataFlash.
  • Микроконтроллеры AVR семейств Mega и Tiny.

2. Выпустить дополнительные модули для превращения программатора в измерительную лабораторию:

Что еще имеет смысл купить или сделать своими руками для программатора ChipStar-Janus

    для программирования микросхем NAND. для программирования микросхем последовательной памяти с интерфейсами I2C и SPI. для программирования микросхем последовательной памяти с интерфейсом MW (93 серия).

Часто спрашивают

ChipStar-Janus это готовый программатор, а ChipStar-Janus/KIT это набор основных деталей для сборки программатора ChipStar-Janus.

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

Правильно собранный программатор ChipStar-Janus сразу будет правильно работать. Ищите ошибку монтажа или неисправный компонент. Проверить функционирование программатора можно с помощью программы JanusCheker.
Всегда используйте программное обеспечение и документацию самой последней версии!

В документации на программатор ChipStar-Janus разъем Х2: сигнал D0 - вывод 17, D1 вывод 18. А в документации на адаптер для NAND (разъем Х1) - D0 вывод 6, D1 вывод 7. Нет ли в этом ошибки?

Ошибки нет. Все так и должно быть.

На принципиальной и монтажной схеме программатора ChipStar-Janus диод VD6 подключен в одном направлении, а на рисунке, на самой печатной плате - в противоположном. Чему верить?

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

Никаких. Микроконтроллер нужно правильно прошить высоковольтным алгоритмом записи в соответствии со спецификацией Microchip.

Нужно ли при прошивке контроллера PIC18F25K50 для программатора ChipStar-Janus как-то особо выставлять fuses?

Все необходимые fuses интегрированы внутрь прошивки (файл .hex) в соответствии со спецификацией Microchip. Программатор ОБЯЗАН правильно читать фусес из файла прошивки.
Если программа используемого программатора не умеет прочитать фусес из файла, то их нужно выставить вручную как показано здесь: "Биты конфигурации (фусес) для прошивки микроконтроллера программатора ChipStar-Janus/KIT"

Могу ли я перепрошить микроконтроллер PIC18F25K50 не выпаивая его из платы программатора ChipStar-Janus?

Да. Только придется отпаять VD6 (он препятствует подаче высокого напряжения программирования 12V на вывод MCLR процессора). Соединение с программатором необходимо произвести в соответствии со схемой для внутрисхемного программирования и инструкцией используемого программатора.

Нет. Нужно использовать PIC18F25K50.

Как зарегистрироваться у вас на сайте, чтобы скачать прошивку для программатора Chipstar-Janus? Программатор собирал сам, а при регистрации запрашивается серийный номер и дата выпуска.

На странице с описанием программатора Chipstar-Janus об этом написано: зарегистрироваться нужно обязательно как новый пользователь по этой ссылке!

Как зарегистрироваться у вас на сайте, чтобы скачать прошивку для программатора Chipstar-Janus? Программатор собирал сам, а при регистрацииции просят серийный номер и дату.

На странице с описанием программатора Chipstar-Janus об этом написано: зарегистрироваться нужно обязательно как новый пользователь по этой ссылке!

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

USB-программатор

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

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

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

Основная часть схемы программатора

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

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

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

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

USB-программатор PICkit-2 Lite

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

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

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

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

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

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

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

Доработка USB-программатора PIC микроконтроллеров

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

Микроконтроллер PIC18F2550 на плате программатора

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

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

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

Зелёный светодиод 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 – с нулевым усилием установки).

Универсальная ZIF-панель Connfly

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

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

Установка микроконтроллера в панель

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

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

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

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

Рисунок печатных проводников

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

Позиционирование элементов на плате

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

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

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

JDM programmer

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

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

Ну, а если разрешить проблему "курицы и яйца" не удалось предложенными способами, то можно купить уже готовый программатор 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 Lite найден и подключен

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

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

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

Определение типа МК в панели программатора

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

МЕНЮ

реклама

ВАЖНОЕ

Работает с любым COM-портом, не перегружая по току COM-порт компьютера, так как MAX232 не представляет опасности для COM-порта.
Поддерживается распространёнными программами IC-PROG, Pony Prog и другими, как программатор JDM.
Программатор подключается к COM-порту компьютера, через стандартный кабель-удлинитель COM-порта (DB9M - DB9F) или непосредственно к конвертору USB – COM.
Для питания программатора должен использоваться стабилизированный источник питания напряжением от +16v до +24,0v.
На плате программатора имеются светодиоды, указывающие режим работы программатора (POWER, VPP, RXD и TXD).
Разъёмы для шлейфов ICSP.

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


Распиновка ICSP в pic


Собрал Nikolai4, вот ,что получилось:


Заместо 74LS00 поставил К555ЛА3 (полный аналог)

Электролиты С1,3,4,5 =1мкФ

Заместо КТ315 поставил КТ3102, КТ814 с любой буквой

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

Программу использую IC-PROG скачать с драйвером и инструкцией версия 1,06В (последняя).

Схема подключения ICSP к ZIF панельке через DIP переключатель

на первый взгляд покажется полная неразбериха :) , но при детальном расмотре все становится на свои места


скачать пины в программаторе.xls


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

(список будет пополняться)

dip 8: pic12f675

dip 14: pic16f630

dip 18: pic16f628

dip 28: pic16f73

dip 28: Atmega 8

PLCC 44: AT90S4414

Для программирование Atmega8 нужны следующие вывода :

минус 8 и 22 ноги можно (нужно) соединить, для экономии проводов


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



Недавно надо было прошить AT90S4414 в корпусе PLCC 44, добавлена была панелька и с помощью программы PonyProg2000 (с IC-prog тоже работает) успешно прошился МК. Ниже на фото привожу необходимые контакты для программирования и еще нужен кварц на 4мГц.




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

Основные характеристики программатора

  • Испытан под Windows 98, Windows Me, Windows 2000 c процессорами Celeron, AMD Duron, AMD Athlon T, Pentium III до частоты 1000 МГц
  • Программирование ведется через порт RS232
  • Программа не требует инсталяции и дополнительных драйверов.
  • Программирует микроконтроллеры семейства PIC (отладка производилась на PIC16F84 и PIC16F877) по последовательному протоколу и микроконтроллеры семейства AVR (отладка производилась на AT90S8535)
  • Предостовляет возможность самостоятельно добавлять новые чипы из указанных семейств с идентичным протоколом программирования с помощью конфигурационных файлов.
  • Позволяет произвольно менять структуру и содержание меню программируемых чипов и информационных полей связанных с программируемым чипом.
  • Позволяет загружать и редактировать бинарные и HEX файлы, выполнять блочные операции с данными, расчет CRC по нескольким алгоритмам
  • Позволяет индивидуально программировать различные области чипа (память программ, память данных, биты опций, биты защиты)

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

Особой оригинальностью не отличается поскольку в основном повторяет схему из известного программатора PonyProg.

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

Программатор для микроконтроллеров AVR

Структура конфигурационных файлов

Конфигурационные файлы имеют расширение chp и должны находиться в директории программы.

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

Пример структуры конфигурационного файла для PIC16F84

Param_3_Content=WDTE | WDTE | CONFIG
Param_3_Choice1=1 - WDT enabled
Param_3_Choice1_icon=1
Param_3_Choice1_data=xxxxxxxxxxx1xx
Param_3_Choice2=0 - WDT disabled
Param_3_Choice2_icon=2
Param_3_Choice2_data=xxxxxxxxxxx0xx

Param_4_Content=Oscilator | FOSC | CONFIG
Param_4_Choice1=RC oscillator (11)
Param_4_Choice1_icon=8
Param_4_Choice1_data=xxxxxxxxxxxx11
Param_4_Choice2=HS oscillator (10)
Param_4_Choice2_icon=8
Param_4_Choice2_data=xxxxxxxxxxxx10
Param_4_Choice3=XT oscillator (01)
Param_4_Choice3_icon=8
Param_4_Choice3_data=xxxxxxxxxxxx01
Param_4_Choice4=LP oscillator (00)
Param_4_Choice4_icon=8
Param_4_Choice4_data=xxxxxxxxxxxx00


Param_5_Content=ID | ID | ID
Param_5_Choice1=0000

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