Главная » Микроконтроллеры
Призовой фонд
на март 2017 г.
1. UNI-T UT-39C
Паяльник
2. Тестер компонентов LCR-T4
Паяльник
3. 100 руб.
От пользователей

Похожие статьи:


Простой USB программатор PIC

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

Однажды я решил собрать несложный 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. 

Программатор EXTRA-PIC

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

Так и сделал. Взял микросхему CH340G (в которой есть все 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, результат тот же - всё шьёт, но очень медленно.

Выводы: программатор достаточно простой, в нём нет дорогостоящих деталей (CH340 - 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 МикросхемаCH340G1 Поиск в FivelВ блокнот
IC2 МикросхемаК1533ЛА31 Поиск в FivelВ блокнот
VR1 Линейный регулятор
LM7812
1 Поиск в FivelВ блокнот
VR2 Линейный регулятор
LM7805
1 Поиск в FivelВ блокнот
VT1 Биполярный транзистор
КТ502Е
1 Поиск в FivelВ блокнот
VT2 Биполярный транзистор
КТ3102Е
1 Поиск в FivelВ блокнот
VD1-VD3 Выпрямительный диод
1N4148
2 Поиск в FivelВ блокнот
C1, C2, C5-C7 Конденсатор100 нФ5 Поиск в FivelВ блокнот
C3, C4 Конденсатор22 пФ2 Поиск в FivelВ блокнот
HL1-HL4 СветодиодЛюбой4 Поиск в FivelВ блокнот
R1, R3, R4 Резистор
1 кОм
3 Поиск в FivelВ блокнот
R2, R5, R6 Резистор
4.7 кОм
3 Поиск в FivelВ блокнот
R7, R8 Резистор
300 Ом
2 Поиск в FivelВ блокнот
ZQ1 Кварц12 МГц1 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (20) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
TM #
Боюсь огорчить автора, но это далеко не простой программатор так как вы уже использовали лишние детали. Зачем вам 7805, если вы питаетесь от USB? Инвертировать сигнал тоже необязательно, это можно сделать программно. И напоследок, этот программатор не будет шить микроконтроллеры с определённой комбинацией вывода MCLR, так что вы сможете запрограммировать только чистый контроллер.
Ответить
0

[Автор]
AndrejChoo #
Дополнительный 7805 использован потому что в оригинальном экстрапике питание 5 вольт так же сделано отдельно для прошиваемой мс и логики (см схему, там 2 7805). Про инверсию mclr я писал выше, мне так удобнее, чтобы не настраивать в каждой программе галочки. И напоследок, я перепрошивал запрограммированных pic16f628a, выпаянный из старой схемы (причём несколько раз перепрошивал) и всё было успешно.
Ответить
0

[Автор]
AndrejChoo #
Специально заморочился для скептиков и сделал адаптер для имеющихся у меня pic16f84a и pic16f73 в SO корпусах. Оба МК б/у и шились неоднократно. Так вот прошивка прошла с первого раза на ура.
Прикрепленный файл: IMG_20161218_102230.jpg
Прикрепленный файл: IMG_20161218_101233.jpg
Прикрепленный файл: IMG_20161218_102204.jpg
Ответить
0
Олег #
Возьмите прошивку для например 12F629 с использованием вывода MCLR в качестве порта и попробуйте потом её стереть/перезаписать.
Ответить
0

[Автор]
AndrejChoo #
Не понимаю смысл задачи. У меня нет пика 12f629. А если взять прошивку от него изалить в другой пик, то прошивка будет неудачной из-за неподходящих битов конфигурации. Читайте внимательно статью. Это программатор jdm со всеми его достоинствами и недостатками. Его алгоритмы работы ничем не отличаются от extrapic, кроме скорости работы.
Ответить
0
krian #
Здравствуйте, вы могли бы дать ссылку где схема есть крупнее, т.к. здесь плохо видно? Или отправить в личку. На печатной плате для CH340G для smd разведено? Им можно прошить pic16f648A? Спасибо.
Отредактирован 08.01.2017 17:35
Ответить
0

[Автор]
AndrejChoo #
Ch340 в smd (в других корпусах не бывает). На счёт pic16f648a 100% не скажу, у меня такого нет, чтобы попробовать, но думаю, что он отличается от 628-но только объёмом памяти, поэтому проблем не должно быть. Схему крупнее сейчас добавлю в следующем сообщении.
Хотя, если в статье нажать на картинку, она увеличится.
Отредактирован 08.01.2017 21:25
Прикрепленный файл: extrapic.JPG
Ответить
0
sakamoto #
Почему я не могу ни прошить, ни прочитать ни с какого переходника юсб-ком и данным программатором пик12ф629... другие пики не пробовал их у меня нет..
Ответить
0

[Автор]
AndrejChoo #
Покажите схему, по которой вы делали программатора. Моя без переходника.
Если вы делали схему на max232, то, возможно в вашем переходники выведены не все сигналы rs232. Или ищите ошибки. У меня заработало сразу. Так же рекомендую использовать win xp или семёрку с программой picpgm
Ответить
0
sakamoto #
По второй только вместо ch340 использовал cp2102
Ответить
0

[Автор]
AndrejChoo #
Попробуйте прошить еепром 24схх, такой, я думаю, найдётся точно. Кстати, тест программатора в программе проходит? Надо посмотреть описание экстрапика, может быть для 12 пиков есть какие-то особенности, я с ними никогда не работал.
Ответить
0

[Автор]
AndrejChoo #
Да, вспомнил, я всё-таки один раз сталкивался с 12 пиком, и по неопытности, естественно, сразу затёр ячейку калибровки генератора, пришлось восстанавливать с помощью подручных средств (в виде сетевого трансформатора в качестве генератора 50 герц), а сам пик я прошивал через ком порт на паре резисторах и диодах, на сколько я помню.
Ещё на просторах интернета пишут, что эти пики при повторной записи не успевают зайти в режим программирования и начинают выполнять старую программу, поэтому необходимо покрутить настройки программы-программатора.
Ответить
0
Vladimir161 #
Здравствуйте,подскажите пожалуйста если программировать чипы 24XXX и микросхемы памяти то к микросхеме CH304G можно добавить только буфер(к1533ла3,к555ла3).И можно-ли питать програмируюмую микросхему от +5V этого переходника?
Ответить
0

[Автор]
AndrejChoo #
Теоретически можно, только я бы поставил дроссель от шины питания юсб и конденсаторов по больше. Но для еепром это очень медленный программатор. 24с08 шьётся около 5-8 минут, для себя собирал его исключительно для пиков. Я бы посоветовал as-programmer для таких целей под usb (это обычный usb-asp на 8 атмеге с модифицированной прошивкой, так же работает со spi-flash).
Ответить
0
Vladimir161 #
AndrejChoo сделать usb программатор, чтобы программировать чипы меня попросил друг, он сказал что время прошивки ему не важно, главен результат. Вот-то что можно использовать usb-asp я не знал! Подскажите как его подключить к чипу (тем более он есть)?
Ответить
0

[Автор]
AndrejChoo #
Сейчас нет компьютера под рукой , чтобы посмотреть. Просто наберите в поисковике программирование spi flash с помощью usbasp. Там есть подробная инструкция. Если хотите сделать синуля, могу поделиться своей платой под atmega в smd корпусе сразу с пенелькой под флешку.
Ответить
0
Vladimir161 #
AndrejChoo большое спасибо за подсказку! Всё получилось,конечно не с первого раза, но получилось! Перепрошил свой самодельный usbasp и вперёд. Хотел использовать в usbasp ATmega48PU: не работает, может прошивка для 48-й без букв. Оставил рабочую ATmega8A
Ответить
0
Vladimir161 #
AndrejChoo решил написать. Пробовал прошивать 24xxx программатором usbasp,работает быстро, но он не работает с W8.1. Поэтому сделал программатор описанный в статье. Работает медленно, но работает! По-времени самое-то. Пока разберёт картридж, пока засыпет тонер, пока соберёт обратно: чип уже готов. P.S. Микросхему к1533ла3 заменил на 74CH00 (к155ла3 не работает).Питание +5V от USB.
Ответить
0

[Автор]
AndrejChoo #
Это хорошо, что работает. Хоть один человек одобрил. А насчёт 8.1, надо было правильно установить драйвер (без проверки цифровой подписи). Я пользуясь чаще десяткой, у меня асп нормально на ней себя ведёт.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Печатная плата для усилителя "LM3886 + AD825" Конструктор: DDS генератор сигналов
вверх