Простые устройства
Просто об устройствах

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

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

Выбор мой пал на микросхему GD75232, часть элементов которой, при соответствующем включении я задействовал для данного программатора.Обязательно 10-я и 11 ножки микросхемы должны соединяться с землёй.(общим проводом)

{ads1}

Микросхема gd75232Эта микросхема стоит на материнских платах, её роль - как раз согласование сигналов внешних устройств с COM портом. На иллюстрации из даташита видно, какие элементы как подсоединены, (не стану расписывать, что как и зачем, об этом можно прочитать в описании микросхемы). Я её специально не покупал, а снял с "убитой" материнки.

Печатную плату не привожу, так как отрезал ножницами по металлу кусок платы вместе с микросхемой, в итоге размеры платы получились 20х30 мм, проводники припаял к 3-м разъёмам

1- питание +5в

2- разъём com порта

3- разъём ISP для программирования

Использовать программатор можно с известной программой Pony Prog, в установках выбрать интерфейс (Serial, COM1) для COM-порта и любой из 3-х видов интерфейсов , которые там перечисляются, без разницы, работает со всеми (JDM API, SI Prog I/0, Si Prog API), картинки это поясняют. Остальные установки в настройке порта остаются в программе по умолчанию.

Настройки PonyProgНастройки PonyProgНастройки PonyProgПрограмматор на столько прост, что не содержит ни резисторов ни конденсаторов, только одна единственная микросхема. Цепляете питание +5в, подключаете к панельке, в которую вставлен микроконтроллер AVR, приготовленный для программирования и программируете, как обычно в ISP режиме.

{ads1}

Схема проверена и испытана.

Буфферизация

Простые программаторы эффективны пока речь идёт о программировании микроконтроллеров либо в DIP корпусе (удобно, когда можно микросхему вынуть из панельки на рабочей плате и воткнуть в панельку на программаторе, а потом, запрограммировав, поставить на место), либо когда на рабочей плате выводы микроконтроллеров не сильно нагружены внешними элементами схемы.

Есть отработанные хорошие схемы простых программаторов с буфферизированными шинами типа STK200 / 300, собраные на микросхемах серии 244, 245, но они предназначены для подключения к LPT порту, который в последнее время уже редкость на современных материнских платах. Теперь чаще встречаются лишь USB и COM порты, а программаторы USB более сложны для начинающих радиолюбителей в повторении.

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

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

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

В данном случае я взял, что у меня было под руками - микросхему 561ПУ4 (или можно её западный аналог CD4050). В составе этой микросхемы содержится шесть буфферных неинвертирующих элемента, которые повторяют входной сигнал на выходе, не внося в него изменений. Каждый такой элемент обладает определённой нагрузочной способностью, из иллюстрации, взятой в даташите, видно структуру тех дискретных элементов, содержащихся внутри буффера.

Подсоединив к нашему программатору такое дополнение между выводами программатора и разъёмом для программирования, мы получим устройство с повышенной нагрузочной способностью. У нас три сигнала с СОМ порта работают на приём, и один сигнал (MISO) работает на передачу. Припаяв к уже имеющейся схеме посредством коротких проводков ещё одну микросхему буффера, я протестировал работу новой схемы и, сравнив с тем, что было прежде, убедился, что эффект есть. На тех платах, где я прежде сталкивался с подобной проблемой при программировании, мне приходилось отсоединять нагрузку на время программирования, а теперь с новой схемой этого делать уже не потребовалось.

Программатор с буфферизацией

Рекомендую всем обладателям простых программаторов доработать имеющуюся у вас схему таким же образом, если при программировании вы сталкивались с подобными проблемами, добавив микросхему буффера ,не обязательно эту, можно использовать и другие подобные по функциональным свойствам микросхемы типа 74HC125, 74HC126 на базе этих микросхем,можно переводить выходы программатора вообще в высокоимпедансное состояние,что позволит не отключать разъём ICSP от платы ,особенно это удобно при работе с макетной платой, вариаций применения моего программатора в качестве базового модуля очень много,это и программирование микросхем типа 24Схх 93Схх а так же для программирования PIC контроллеров, но эту тему я возможно разовью чуть позже в данной статье.

Z - состояние шин на выходе

Лучшее- враг хорошему (с).

Всё вроде работает,но стоит добавить в схему ,что либо ещё,как она из маленькой превращается в "монстра", а что делать? Иногда в процессе отладки приходится идти на это ради комфорта в работе , ведь порой по нескольку десятков раз надо втыкать разъём ICSP повторно перепрограммируя микроконтроллер, так это занятие надоедает порой, а если оставить программатор постоянно подключенным,к схеме ,то схема программатора будет влиять на работу устройства , но есть решение о котором я упоминал выше, это перевести состояние шин в высокоимпедансное - Z состояние , тогда схема программатора может быть подключена сколь угодно долго и не будет теперь шунтировать шины микроконтроллера ,ради такого случая нашёл эту микросхему и использовал её в качестве буффера .Осуществлять эту процедуру мы будем посредством кнопки S1 которая при замыкании будет переводить выходы программатора в рабочий режим, программирования подсоединяя его сигналы к схеме. На момент программирования, надо кнопку удерживать в нажатом состоянии,а после того, как процедура программирования пройдёт успешно ,отпустить.При разомкнутом состоянии кнопки выходы программатора переводятся в состояние Z

Из даташита 74HC125 ,по схеме и таблице истинности видно ,что если подать на выводы А "единицу" схема переводит выходы в высокоимпедансное состояние ( фактически вообще отключается от нагрузки) и вдобавок у этой микросхемы ещё большая нагрузочная способность ,чем у микросхемы,которую я выбрал в качестве буффера в предыдущей схеме..

в общем на ваш суд выкладываю очередную схему,и сопровождающие картинки к ней.

Владимир Науменко

г. Калининград.

Вложения:
ФайлОписаниеРазмер файла:
Скачать этот файл (Программатор AVR.GIF)монтаж 29 Кб
Скачать этот файл (74HC125_TAB.jpg)Таблица истинности 74HC125 21 Кб
Скачать этот файл (74HC125.jpg)Buffer_74HC125 27 Кб
Скачать этот файл (Progr_buf_Z.GIF)Программатор с Z состоянием шин 106 Кб
Скачать этот файл (Панельки AVR.rar)панельки AVRпанельки AVR19 Кб

Комментарии   

+2 #1 FDoich 21.08.2012 18:39
Молодца!
#2 Andr 29.08.2013 01:13
Огромное спасибо автору! Перерыл в нете кучу схем программаторов, но выбар упал на этот именно из-за буферизации выходного isp разъема. Почему-то мне это показалось более надежным решением, по сравнению с другими простыми схемами из сети.
Схемку спаял на своей плате, применив микросхемы GD75232 и 74F125, которые добыл из старой материнки. Автору респект! 8)
#3 nikiev 11.12.2013 04:52
Подскажите новичку, на печатке панельки AVR есть место для кварца и 2 конденсатора, а какие номиналы? Если глупость спросил не пинайте...
#4 ARV 11.12.2013 23:39
Цитирую nikiev:
Подскажите новичку, на печатке панельки AVR есть место для кварца и 2 конденсатора, а какие номиналы? Если глупость спросил не пинайте...

1. какое отношение ваша панелька имеет к данноу статье?
2. номиналы конденсаторов обычно от 15 до 22 пикофарад, если речь идет об AVR
#5 nikiev 12.12.2013 02:08
Цитирую ARV:
1. какое отношение ваша панелька имеет к данноу статье?
2. номиналы конденсаторов обычно от 15 до 22 пикофарад, если речь идет об AVR

Панелька не моя, а находится в этой статье, точнее в конце ее, после надписи-
Файлы для загрузки:
монтаж 29 Kb
Таблица истинности 74HC125 21 Kb
Buffer_74HC125 27 Kb
Программатор с Z состоянием шин 106 Kb
панельки AVR
#6 x-man91111 02.02.2014 07:03
Собрал данную схемку, но понипрог в упор не видит МК((( уже всё перепроверил, но ничего не помогло. Я не силен в тонкостях com-порта, и МК первый раз решил таким способом запрограмить. Импульсы по выводам идут, и вроде даже МК отвечает, а вылазит ошибка (-24), и еще странно, что на reset тоже импульсы. С двумя МК такая фигня, помогите разобраться в чем может быть дело :sad:
#7 x-man91111 02.02.2014 07:45
странно, промучился полдня, а щас скачал другую версию пони (свежее) и всё заработало :o

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

Обсудить эту статью на форуме (13 ответов).

Copyright 2019 © simple-devices.ru.
При использовании материалов ссылка на simple-devices.ru обязательна.