Jump to content

USB программатор PIC из Arduino


Recommended Posts

Наконец-то дождался PIC16F18444. Он был успешно добавлен и протестирован. Также добавлена поддержка PIC16F870 по просьбе @URII81, но вообще не протестирована. Если у кого-то есть такой, проверьте и напишите о результатах, я добавлю остальные 87x.

Прошивка платы новая. В программе заменяем pic.xml.

FIRMWARE_M328_23032023.rar pic_XML_23032023.rar

Link to comment
Share on other sites

Наконец-то дождался своего звёздного часа пик, поддержки которого нет в pickit2. Лежал почти месяц в ожидании макетки -  PIC18F46Q10. Без проблем не обошлось. Flash и CONF программируются правильно, а вот EEPROM - некорректно (возможно читается неправильно, а пишется правильно, проверить не чем, PICKIT3 у меня нет).  Перекопал Programming manual несколько раз, но безуспешно. EEPROM либо пишется, либо читается через байт. Пока выкладываю это семейство "как есть".

Прошивка для 328-й новая, в программе заменяем pic.xml.

firmware_m328_290323.rar pic_xml_290323.rar

Link to comment
Share on other sites

  • 1 month later...

Реле, разъемы, вентиляторы, корпуса, микросхемы, конденсаторы и много другое!

Скидки до 20% на сайте электронного дискаунтера ТМ Электроникс.

Бесплатная доставка в любую точку России + кэшбэк 15%.

Всем кто сделает заказ в сентябре, начислим 3000 баллов на аккаунт. 1 балл = 1 рублю!

Подробнее

Guest Demacr

Всем привет и спасибо автору за программатор.

Пытаюсь прошить PIC18F25K80 (в ELM стоит), напряжение VPP сделал 8.6 В. Иии...ничего не получается.

У меня ардуино нано. Теперь по порядку - с прошивкой Atmega с первой страницы при выборе PIC и GET ID получаю 0x6168 и никаких ошибок. Если взять прошивку с последней страницы - то GET ID выдает 0x3F86 и ошибку, что Id не соответствует МК.

Чтение выдает нули в обеих версиях, RD Cfg меняет значение некоторых конфигов.

Стирание проходит успешно как я понимаю.

Verify либо я не правильно использую, а если правильно, то тогда имеем 32260 ошибок Code и 1008 ошибок Data.

Вообщем прошу помощи и советов. Заранее спасибо.

Link to comment
Share on other sites

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

Проблема с Get ID имеет место быть.

Link to comment
Share on other sites

Posted (edited)

Присоединяюсь к благодарностям автору, заказал Ардуино - попробую повторить конструкцию.
Вопрос к автору (точнее просьба): а можно добавить в прошивку функциональность на дополнительном выходе, напринер D5, так чтобы он опускался в 0 перед посылкой кодовой последовательности входа в прог. режим, и поднимался в 1 по окончанию (см. картинку)для поддержки низковольтного программирования? Это не требует изменений в софте и схеме, но даст возможность программировать много современных PIC без внешнего источника питания, используя +5В от USB - будет программатор еще более интересным. 
Зараннее благодарен.

Картинка: 

Spoiler

mc506-1E.png.0161bde52aab3502cc307e3b14e23573.png

 

Edited by Edd24
Link to comment
Share on other sites

Posted (edited)

Можно сделать и LowVpp. Только не все чипы будут так программироваться. Например, тот же 18f25k80 требует ввода цифровой последовательности (4-байтного кода) для входа как в hvp, так и в lvp режим программирования. Тут прокатит. А вот новые модели 16f требуют введение кода только для lvp режима, а в hvp входят только за счёт поднятия напряжения mclr до 12 вольт. Поэтому такой трюк для них без значительной переделки прошивки не прокатит.

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

Вообще, если нужен Lvp программатор исключительно для одной линейки - 18fxxk80, то его можно сделать на более дешёвом МК с меньшим количеством памяти и ног.

Edited by AndrejChoo
Link to comment
Share on other sites

  • 3 weeks later...
On 6/2/2023 at 2:27 PM, AndrejChoo said:

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

Приобрел ардуинку, готов проверить, есть чипы 18F25K80;
Если можно - добавьте новый сигнал LVP_VPP на выходе D4 (7я нога Нано)

On 6/2/2023 at 2:27 PM, AndrejChoo said:

Вообще, если нужен Lvp программатор исключительно для одной линейки - 18fxxk80, то его можно сделать на более дешёвом МК с меньшим количеством памяти и ног.

Согласен, но я давно ищу "народный" программатор для некоммерческих пользователей которые не купят ICD/PICkit, и не все программисты  паяют транзисторы. 
Ваш программатор на модуле Ардуино Нано ценен простотой и доступностью, а с LVP будет еще проще - 5 проводков к ардуинке и все в термоусадку - истинно народный вариант!

ПС: пока писал родилась идея - если проблемы с местом в памяти - можно сделать 2 разные прошивки: для LVP и HVP

 

Link to comment
Share on other sites

Я попробую сделать LVP без всякой обвязки на голой Ардуино. Но только для одной линейки 18fx5Kxx. Как протестирую, если, конечно заработает, выложу прошивку и схему подключения.

Link to comment
Share on other sites

В общем, сделал тестовую прошивку для LVP программирования. Теперь можно программировать голой ардуиной без всякой дополнительной обвязки. Подключение: PGD - D12, PGC - D13, PGM - D11, MCLR - D4 (Dxx - это именно пины ардуино нано, а не порт D атмеги!!!). Питание подключается к ножке 5v платы ардуино. Пока что добавил и проверил P18F1250/4550 и всё их семейство и P18F25K80 и его товарищей (правда, опять всплыл косяк с чтением у P15F25K80, читается только первый байт прошивки, остальное нули, хотя прошивка ложится корректно, еепром читается правильно. Не могу понять, в чём дело, хоть убей!). Софт прежний, последней версии. Ардуино обязательно на Atmega328 с кварцем на 16 MHz (можно и Uno). Прошивать ArduinoUploader-ом, XLoader-ом и им подобными.

Пробуйте, тестируйте. Будет интерес, добавлю по возможности другие модели pic-ов в прошивку.

PIC_PROG.hex

Link to comment
Share on other sites

Испытал на 25К80, работает. Проверил на 2х Нано: 328P бутлоадер 115200, и 328PB старый бутлоадер 57600, оба сработали.

On 6/22/2023 at 10:52 PM, AndrejChoo said:

опять всплыл косяк с чтением у P15F25K80, читается только первый байт прошивки, остальное нули

У меня не проявился, читается нормально, так что поковырять не могу. Есть одна мысль - попробуйте добавить последовательно резистор 220-330 Ом в разрыв PGD. позже опишу в ЛС. Если можно глянуть исходник - было бы хорошо. 

В чем не разобрался:

1. как работает verify? у меня раз проверяет, пять раз пишет что нечего сравнивать.

2. конфиг не читается по read, надо читать отдельно - так задумано?

Link to comment
Share on other sites

Перед verify сначала нужно прочитать чип. Иначе программа будет сравнивать пустой массив с прошивкой или прочитанное ранее.

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

Link to comment
Share on other sites

В коде прошивки, которая на github, есть вероятность конфликта на линии PGD при чтении, опишу позже. Если вы не против поделиться исходником LVP версии - могу попробовать подрихтовать

Link to comment
Share on other sites

Код на гитхабе далеко не последний. Напишите свой email, скину исходник, при условии не публиковать его нигде.

Link to comment
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

  • Сообщения

    • у меня проблемка со схемой, иногда шум появляется и что бы он пропал надо касаться рукой к минусу. Тогда его вообще нет. Можно как то исправить это?
    • @GuitarFan , а вы справитесь припаять резистор 0402? Я посылаю с такими резисторами в известном направлении, хотя пайка это моя работа.
    • Тоже попался я на эту проблему, два дня разбирался, спасибо за дамп. Думаю еще один новый купить и слить дамп, этот уже побитый. Поясню. Посидел с лог. анализатором, выяснил, что настройка EMS в прошивке поломана и при записи этой настройки на EEPROM пишется она в два адреса, первый связан с записываемым занчением, второй правильный. То есть если прощёлкать EMS от минимума до макс и назад, аппарат точно сломается, перезаписав почти всю епромку мусором. Я сделал текстовый файлик, в котором по максимуму описал в каких адресах какие параметры лежат. Сейчас всё лениво расписывать, просто скажу, что на мой взгляд хороший вариант - залить рабочий дамп и вывод WriteProtect микросхемы EEPROM припаять в Vcc, чтобы аппарат сам себя не ломал. В вашем дампе уже поломано выставление температуры предупреждения(первое меню), в своём дампе я это пофиксил. Так же прикладываю прошивку ардуины и питон скрипт, которыми сливал и записывал флешку. Убрал всё, без чего оно вроде работает, протестил, все вроде хорошо, сравнил с другим - показывает почти один в один. PS чтобы с первого раза убить аппарат, нужно перезаписать адрес 16 или 17, для этого параметр EMS нужно установить в 32 или 33 и после выключения, при включении будет ERB I2CEEPROM.py I2CEEPROM_UART.ino UT306C_reduced.bin ut306c_EEPROM_data.txt
    • Здравствуйте , помогите разобраться в чём проблема , у фоторамки при включении белый экран 
    • Все на схеме. Смотрите номера выводов на ЛЕ5 и даташит от неё и поймете. Со схемой Псурцева или схемой sulphur сравните. Сами ответите на свой же вопрос.
    • напишет Мастер в Квитанции за ремонт!  ставь гранитный .... во весь рост ... 
    • На озоне заказать, не? Едут месяц, иногда чуть меньше.
×
×
  • Create New...