Простой программатор для прошивки AVR микроконтроллеров через СОМ порт (RS232)
Схема и описание простого программатора для прошивки AVR микроконтроллеров, используя СОМ порт (RS232) компьютера.
На сегодня существует множество программаторов AVR микроконтроллеров подобного типа, но что мне не нравится - это слишком много рассыпухи (дискретных элементов), в то время как существуют специализированные микросхемы, у которых все уже есть внутри.
Принципиальная схема
Вариаций применения моего программатора в качестве базового модуля очень много - это и программирование микросхем типа 24Схх-93Схх, а так же для программирования PIC контроллеров.
Мой выбор пал на микросхему GD75232 (рис. 1), часть элементов которой, при соответствующем включении, я задействовал для данного программатора (рис. 2).
Рис. 1. Схема микросхемы GD75232.
Рис. 2. Схема программатора для AVR микроконтроллеров через RS-232 на микросхеме GD75232.
Обязательно 10-й и 11-й выводы микросхемы должны соединяться с землей (общим проводом). Микросхема GD75232 установлена на материнских платах, ее роль - как раз согласование сигналов внешних устройств с СОМ портом. На рис. 1 из даташита [1] видно, какие элементы как подсоединены.
Микросхему специально не покупал, а снял с “убитой” материнской платы. Использовать программатор можно с известной программой Pony Prog, в установках выбрать интерфейс (Serial, СОМ1) для СОМ-порта и любой из 3-х видов интерфейсов, которые в программе перечисляются, без разницы, работает со всеми (JDM API, Si Prog API, SI Prog I/O), картинки это поясняют (рис. 3-5 соответственно). Остальные установки в настройке порта остаются в программе по умолчанию.
Рис. 3. JDM API.
Рис. 4. Si Prog API.
Рис. 5. SI Prog I/O.
Печатную плату не привожу, так как отрезал ножницами по металлу кусок платы вместе с микросхемой, в итоге размеры платы получились 20x30 мм, проводники припаял к 3-м разъемам:
- 1 - питание +5 В;
- 2 - разъем СОМ порта;
- 3 - разъем ISP для программирования.
Программатор настолько прост, что не содержит ни резисторов, ни конденсаторов - только одна - единственная микросхема. Цепляете питание +5 В, подключаете к панельке, в которую вставлен микроконтроллер AVR, приготовленный для программирования, и программируете, как обычно, в ISP режиме.
Схема проверена и испытана. На рис. 6 проиллюстрировано, как сделать монтаж без печатной платы: разместить устройство можно прямо в разъеме, зафиксировав термоклеем.
Рис. 6. Как сделать монтаж AVR-программатора без печатной платы.
Буфферизация
Простые программаторы эффективны, пока речь идет о программировании микроконтроллеров либо в DIP корпусе (удобно, когда можно микросхему вынуть из панельки на рабочей плате и воткнуть в панельку на программаторе, а потом, запрограммировав, поставить на место), либо когда на рабочей плате выводы микроконтроллеров не сильно нагружены внешними элементами схемы.
Есть отработанные хорошие схемы простых программаторов с буфферизированными шинами типа STK200/300, собранные на микросхемах серии 244, 245, но они предназначены для подключения к LPT порту, который в последнее время уже редкость на современных материнских платах.
Теперь чаще встречаются лишь USB и СОМ порты, а программаторы USB более сложны для начинающих радиолюбителей в повторении.
У большинства известных простых программаторов, работающих с СОМ портом, имеется общий недостаток: не у всех достаточная нагрузочная способность.
В последнее время все чаще применяются SMD компоненты, и микроконтроллеры применяют уже в корпусах типа SOIC и впаивает непосредственно в плату, без панелек.
В этом случае для повторного перепрограммирования надо уже либо программировать его прямо на плате, либо выпаивать чип, а в некоторых случаях приходится предварительно отключать нагрузку на его выводах в схеме, если получается, что внешние элементы “сажают” импульсы программатора, если только его шины не были буфферизированы (умощнены по току для работы с повышенной нагрузкой).
Из личного опыта скажу, что этими недостатками страдают многие широко известные простые программаторы, например, на 5-ти резисторах, или известная схема на транзисторе, резисторах и стабилитронах: при повышенной нагрузке на шинах программатора начинаются проблемы.
Для того, чтобы не делать новый программатор, есть простой путь улучшить нагрузочные характеристики программатора - это буфферизиро-вать уже имеющиеся шины для сигналов, всего лишь добавив еще одну микросхему. В данном случае я взял, что у меня было под руками - микросхему 561ПУ4 [2] (или можно ее западный аналог CD4050 [3], см. рис. 7).
В составе этой микросхемы содержится шесть буфферных неинвертирующих элементов, которые повторяют входной сигнал на выходе, не внося в него изменений.
Каждый такой элемент обладает определенной нагрузочной способностью; из иллюстрации (рис. 8), взятой в даташите, видно структуру тех дискретных элементов, содержащихся внутри буффера.
Рис. 7. Структура микросхемы 561ПУ4 (CD4050).
Рис. 8. Схема элементов микросхемы 561ПУ4 (CD4050).
Рис. 9. Программатор для AVR с повышенной нагрузочной способностью.
Подсоединив к нашему программатору такое дополнение между выводами программатора и разъемом для программирования, мы получим устройство с повышенной нагрузочной способностью (рис. 9).
У нас три сигнала с СОМ порта работают на прием, и один сигнал (MISO) работает на передачу. Припаяв к уже имеющейся схеме посредством коротких проводков еще одну микросхему буффера, я протестировал работу новой схемы и, сравнив с тем, что было прежде, убедился, что эффект есть.
На тех платах, где я прежде сталкивался с подобной проблемой при программировании, мне приходилось отсоединять нагрузку на время программирования, а теперь с новой схемой этого делать уже не потребовалось.
Рекомендую всем обладателям простых программаторов доработать имеющуюся у вас схему таким же образом. Если при программировании вы сталкивались с подобными проблемами, добавив микросхему буффера, не обязательно эту, можно использовать и другие подобные по функциональным свойствам микросхемы типа 74НС125, 74НС126 [4].
На базе этих микросхем, можно переводить выходы программатора вообще в высокоимпедансное состояние, что позволит не отключать разъем ICSP от платы: особенно это удобно при работе с макетной платой.
Z-состояние шин на выходе
Все вроде работает, но стоит добавить в схему что-либо еще, как она из маленькой превращается в “монстра”, а что делать? Иногда в процес се отладки приходится идти на это ради комфорта в работе, ведь порой по нескольку десятков раз надо втыкать разъем ICSP, повторно перепрограммируй микроконтроллер.
Это занятие так порой надоедает, а если оставить программатор постоянно подключенным к схеме, то схема программатора будет влиять на работу устройства.
Но есть решение, о котором я упоминал выше - это перевести состояние шин в высокоимпедансное Z-состояние, тогда схема программатора может быть подключена сколь угодно долго и теперь не будет шунтировать шины микроконтроллера. Ради такого случая применил микросхему 74HC125 и использовал ее в качестве буффера (рис. 10).
Рис. 10. Структурная схема ир подключение микросхемы 74HC125.
Осуществлять эту процедуру мы будем посредством кнопки S1, которая при замыкании будет переводить выходы программатора в рабочий режим программирования, подсоединяя его сигналы к схеме.
На момент программирования надо удерживать кнопку в нажатом состоянии, а после того, как процедура программирования пройдет успешно, отпустить. При разомкнутом состоянии кнопки выходы программатора переводятся в состояние Z.
Рис. 11. Струткутрная схема микросхемы 74HC125.
Рис. 12. Состояния входов и выходов микросхемы 74HC125.
Из даташита микросхемы 74НС125, по схеме (рис. 11) и таблице истинности (рис. 12) видно, что если подать на выводы А “единицу”, схема переводит выходы в высокоимпедансное состояние (фактически вообще отключается от нагрузки), и вдобавок у этой микросхемы еще большая нагрузочная способность, чем у микросхемы, которую я выбрал в качестве буффера в схеме рис. 9.
В. Науменко. г. Калининград. РМ-04-17, 05-17.
Ресурсы:
- GD75232 - www.datasheetcatalog.org/datasheet/texasinstruments/ad75232.pdf
- 561ПУ4 - www.voshod-krlz.ru/files/datasheets/561pu4.pdf
- CD4050 - www.datasheetcataloa.Org/datasheets/70/109093DS.pdf
- 74НС125, 74НС126 - www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXrytxt.pdf
Комментарии (1):
Добрый день. (Вам не болеть!!! Это сейчас актуально) Подскажите, а можно поставить вместо 74НС125 отечественную 155ЛП8 . Большое спасибо за любой ответ. С уважением.