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

Arduino программатор PIC-ов.
Иногда встречаются очень интересные проекты выполненные на микросхемах PIC. Это микроконтроллеры с RISC архитектурой,
производимые фирмой Microchip Technology. Программаторы для PIC сложные и дорогие. Чтобы сделать программатор для PIC, нужен программатор для PIC, замкнутый круг для самодельщина. Но у нас есть Arduina! Сделаем из ардуины очень дешевый, очень простой, но работающий как очень дорогие HVSP программаторы микроконтроллеров от Microchip Technology.

HVSP - это High Voltage Serial Programming, высоковольтное последовательное программирование. Высоковольтное программирование позволяет сделать рабочим окирпиченный PIC контроллер из за неправильно выставленных фьюзов или заблокированных ног используемых при низковольтном программировании. В общем без разницы в каком состоянии Вам пришлют хитрые китайцы микроконтроллер, главное, чтобы он был аппаратно живой. А разлочить можно и ардуиной. Запрограммировать можно и ардуиной.

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


Сборка на макетной плате.

maket.jpg

Настройка Step-UP DC-DC
13V.jpg


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

pic16f628a.jpg
programmator-avr-svoimi-rukami.jpg
 

Вложения

Изменено:

Комментарии

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,413
976
58
Марий-Эл
@ТехнарьКто, Это конечно не принципиально.
Но мне как бывшему PICоводу режет слух понятие фьюзы. В PIC контроллерах их нет.
Там конфигурационные биты. И чем нравились PIC контроллеры, в ступор этими битами ввести практически не возможно.
🤔 :ROFLMAO:
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,413
976
58
Марий-Эл
@Старик Похабыч, Понятие фьюзы пошло от Atmel.
MicroCHIP в своей технической документации не применяет такого понятия. Лучше, что бы не было путанницы, применять формулировку из официальной документации.
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
Вот строка инициализации конфигурационных битов на ASM.
Здесь нет никаких упоминаний про фьюзы.

С другой стороны MicroCHIP скупила с потрохами Atmel. Посмотрим что будет дальше.
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
438
@Старик Похабыч, Понятие фьюзы пошло от Atmel.
MicroCHIP в своей технической документации не применяет такого понятия. Лучше, что бы не было путанницы, применять формулировку из официальной документации.
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
Составители официальной документации узнав про программирование PIC-ов с помощью какой то ардуины, поперхнулись бы от такого факта и стали бы отрицать возможность этого. В начале темы приведен проверенно работающий на не документированных возможностях, программатор из ардуины. И поскольку программатор из ардуины отсутствует в официально возможных к применению программаторов PIC-ов, я буду называть конфигурационные биты PIC-ов фьюзами.
Fuse-PIC.jpg
 
  • Лойс +1
Реакции: Борисыч и Шал

Un_ka

★★✩✩✩✩✩
13 Июл 2020
243
77
других форумов.
  • Лойс +1
Реакции: ТехнарьКто

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,413
976
58
Марий-Эл
Составители официальной документации узнав про программирование PIC-ов с помощью какой то ардуины, поперхнулись бы от такого факта и стали бы отрицать возможность этого.
Вот тут Вы сильно ошибаетесь

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

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

Хотя в свободном доступе есть схемы PicKIT2 и PicKIT3. И прошивки на них в свободном доступе.
А они позволяют осуществлять внутрисхемную отладку.
Так что ардуину можно использовать один раз для программирования PicKIT.
Они его придумали?
По этимологии что оно значит? Как-то задавался таким вопросом, но инфы не нашёл.
Кто его знает они или нет. Но это слово встречается только в их документации.
В документации на другие микроконтроллеры используется , основном, понятие - конфигурационные биты.

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

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
438
А откуда это слово пошло.
Они его придумали?
По этимологии что оно значит? Как-то задавался таким вопросом, но инфы не нашёл.
Фьюз от fuse - плавить. Раньше для конфигурации какого-либо чипа в его архитектуре имелись специальные перемычки (fuse) которые разово физически сжигались. Эти биты при загрузке микроконтроллера использованы как указатели с каким задающим генератором работать (внешним|внутренним), делить частоту генератора на коэффициент или не нужно, использовать ножку сброса как сброс или как дополнительный порт ввода-вывода, какое количество памяти использовать для загрузчика и другое. У каждого контроллера свой набор указателей для начата работы. В современных контроллерах биты указывающие начальную конфигурацию записываются во флеш память и поменять их можно сколько угодно раз. В AVR принято называть fuse bits, для PIC то же самое звучит как конфигурационные биты configuration bits. Физически во всех контроллерах раньше были разово сжигаемые плавкие перемычки, сейчас это уже многократно перезаписываемая область памяти.
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
438
Да называйте как хотите. Просто знайте, когда будете разговаривать с человеком, который проработал всю жизнь с PIC микроконтроллерами и ничего не знает об Atmel, Вас никогда не поймёт, ...
Разговариваю с человеком всю жизнь программировавшим только PIC микроконтроллеры. Вот дословный ответ "Компилятор CCS-PICC например воспринимает #fuses NOMCLR и тому подобное. Мне как то особо без разницы, что в даташитах "fuse" ни разу не фигурирует, ибо понятно, что это просто маска для создания конфигурационных байт."
 

DAK

★★★✩✩✩✩
8 Окт 2020
517
137
@ТехнарьКто, очень полезная штука на случай, если реально прям надо сегодня зашить, а программатора нет, или на случай, сделать своё по своему, при этом не хочется брать программатор. Добавлю в избранное, чёт вот с названиями тут слишком переборщили, может хватит, а то модератор реально снесёт всё в флудилию, будет печально. Написано хорошо, всё понятно, как говорится - годный контент, надо же идти на компромиссы! Спасибо за статью!
 
  • Лойс +1
Реакции: ТехнарьКто

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
438
Прошло достаточно много времени. То ли никто не делал, то ли все умные и грамотные, кто повторял этот программатор. Программа ArdPicProgHost без предварительно установленного net framework 4.0 или новее, работать не будет, будет ошибка при запуске программы программатора. Решил больше не ждать реакции. Пишу, и больше эту тему не смотрю.
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
438
Слишком много - неделя? :)
ну батенька, это вы слишком много ждете от аудитории. Иногда ждать первого отклика приходится по полгода...
За неделю восстановил и запустил станок на заводе в своем городе, снятый в другом городе путем откусывания кабелей, не мной, передастами. Оборудование содержит промышленный контроллер, пачку частотных преобразователей управляющих двигателями и массу пневматики под управлением того же контроллера. Сенсорный дисплей оператора с массой настроек оборудования и графической схемой станка. Оборудование буржуйское, в РФ такого не делают. Поэтому неделя - это много. Просто мы живем с Вами в разных мирах. Но для такого форума, я приму к сведению, что быстро надо воспринимать как от полугода. А я здесь появляюсь чрезвычайно редко, по моему времени и очень часто по Вашему времени ;)
 

AlexIz

✩✩✩✩✩✩✩
4 Янв 2021
6
1
Кривой скриншот, см. правила
Друзья , у меня Host ругается. Куда копать?
1609787690631.png
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
438
Друзья , у меня Host ругается. Куда копать?
На скрине если честно, ничего не видно. Как общие рекомендации. Запускать ArdPicProgHost, а не PicProgHost. Русские пути исключить. Длинные пути исключить. Виртуальную машину исключить. Кривую андроидную десятку исключить. Тестировалось для WindowsXP 32bit и Windows7 64bit. В системе должен быть установлен NET Framework4.0. Для XP надо ставить, для семерки уже есть по умолчанию. Для других операционных систем пробуйте. Проверьте систему на вирусы. Если чистая, возможно блокирует антивирус. Пробуйте отключить антивирус. Скрин делайте только ошибки и так, чтобы был читаемый. Пишите операционную систему, разрядность, установленные антивирусы. В меру сил поможем и заодно будет статистика на чем работает и что мешает работе.
 

AlexIz

✩✩✩✩✩✩✩
4 Янв 2021
6
1
Вот, новая картинка. Из всех предостережений вижу только ОС Десятка 64. Попробую на Семёрке. Ошибка вылетает при нажатии в программе кнопок Прочитать , стереть и т.п.

Нет, и с Семёркой не прокатило. Та же ошибка. Какой- то отладчик JIT требует.
 

Вложения

AlexIz

✩✩✩✩✩✩✩
4 Янв 2021
6
1
Начал понимать, что происходит - программатор не видит чип. Причину пока не выяснил.
 
  • Лойс +1
Реакции: ТехнарьКто

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
438
Начал понимать, что происходит - программатор не видит чип. Причину пока не выяснил.
макетная плата.jpg
Если сделали программатор на такой макетной плате, то все по плану, не работает :) При этом будет все правильно собрано. Ардуина будет показывать свою работоспособность, но происходит то, что у Вас. У этих макетных плат огромная емкость монтажа. Хотя как Вы собрали мне не известно. Что смог исходя из новых ваших описаний, то и подсказываю.Если действительно проблема в макетной плате, тогда будет смысл рассказывать как эту паразитную емкость монтажа в этом проекте можно обойти, чтобы все не переделывать.

Иначе ищите ошибку в монтаже.
макет.jpg

софт.jpg

Схема абсолютно рабочая. Специально для проверки собрал сейчас на макетной плате с дополнительным питанием от кроны. И тоже все прекрасно работает.
 
Изменено:

AlexIz

✩✩✩✩✩✩✩
4 Янв 2021
6
1
Верю, верю. :) Я на такой же макетке собрал. Пока причину не нашел. Возможно, сам контроллер. Он уже в плату впаян. В общем, я пока в поиске.
 

ТехнарьКто

★★★★★✩✩
13 Янв 2020
270
438
Верю, верю. :) Я на такой же макетке собрал. Пока причину не нашел. Возможно, сам контроллер. Он уже в плату впаян. В общем, я пока в поиске.
Если на такой макетке, то причина найдена. Я вполне серьезно. Причина не работоспособности именно эта макетная плата. Если впаяна ардуина нано, то надо убирать (выпаивать или выкусывать) все неиспользуемые штыри от ардуины к макетной плате. И тогда заработает. И это не шутка.
 

AlexIz

✩✩✩✩✩✩✩
4 Янв 2021
6
1
o_O Во как... Было такое подозрение. Сейчас попробую навесным монтажем сделать.

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