Простой программатор для прошивки AVR микроконтроллеров через СОМ порт (RS232)


Схема и описание простого программатора для прошивки AVR микроконтроллеров, используя СОМ порт (RS232) компьютера.

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

Принципиальная схема

Вариаций применения моего программатора в качестве базового модуля очень много - это и программирование микросхем типа 24Схх-93Схх, а так же для программирования PIC контроллеров.

Мой выбор пал на микросхему GD75232 (рис. 1), часть элементов которой, при соответствующем включении, я задействовал для данного программатора (рис. 2).

Схема микросхемы GD75232

Рис. 1. Схема микросхемы GD75232.

Схема программатора для AVR микроконтроллеров через RS-232 на микросхеме 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 соответственно). Остальные установки в настройке порта остаются в программе по умолчанию.

JDM API

Рис. 3. JDM API.

Si Prog API

Рис. 4. Si Prog API.

SI Prog I/O

Рис. 5. SI Prog I/O.

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

  • 1 - питание +5 В;
  • 2 - разъем СОМ порта;
  • 3 - разъем ISP для программирования.

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

Схема проверена и испытана. На рис. 6 проиллюстрировано, как сделать монтаж без печатной платы: разместить устройство можно прямо в разъеме, зафиксировав термоклеем.

Как сделать монтаж AVR-программатора без печатной платы

Рис. 6. Как сделать монтаж AVR-программатора без печатной платы.

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

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

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

Теперь чаще встречаются лишь USB и СОМ порты, а программаторы USB более сложны для начинающих радиолюбителей в повторении.

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

В последнее время все чаще применяются SMD компоненты, и микроконтроллеры применяют уже в корпусах типа SOIC и впаивает непосредственно в плату, без панелек.

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

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

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

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

Каждый такой элемент обладает определенной нагрузочной способностью; из иллюстрации (рис. 8), взятой в даташите, видно структуру тех дискретных элементов, содержащихся внутри буффера.

Структура микросхемы 561ПУ4 (CD4050)

Рис. 7. Структура микросхемы 561ПУ4 (CD4050).

Схема элементов микросхемы 561ПУ4 (CD4050)

Рис. 8. Схема элементов микросхемы 561ПУ4 (CD4050).

Программатор для AVR с повышенной нагрузочной способностью

Рис. 9. Программатор для AVR с повышенной нагрузочной способностью.

Подсоединив к нашему программатору такое дополнение между выводами программатора и разъемом для программирования, мы получим устройство с повышенной нагрузочной способностью (рис. 9).

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

На тех платах, где я прежде сталкивался с подобной проблемой при программировании, мне приходилось отсоединять нагрузку на время программирования, а теперь с новой схемой этого делать уже не потребовалось.

Рекомендую всем обладателям простых программаторов доработать имеющуюся у вас схему таким же образом. Если при программировании вы сталкивались с подобными проблемами, добавив микросхему буффера, не обязательно эту, можно использовать и другие подобные по функциональным свойствам микросхемы типа 74НС125, 74НС126 [4].

На базе этих микросхем, можно переводить выходы программатора вообще в высокоимпедансное состояние, что позволит не отключать разъем ICSP от платы: особенно это удобно при работе с макетной платой.

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

Все вроде работает, но стоит добавить в схему что-либо еще, как она из маленькой превращается в “монстра”, а что делать? Иногда в процес се отладки приходится идти на это ради комфорта в работе, ведь порой по нескольку десятков раз надо втыкать разъем ICSP, повторно перепрограммируй микроконтроллер.

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

Но есть решение, о котором я упоминал выше - это перевести состояние шин в высокоимпедансное Z-состояние, тогда схема программатора может быть подключена сколь угодно долго и теперь не будет шунтировать шины микроконтроллера. Ради такого случая применил микросхему 74HC125 и использовал ее в качестве буффера (рис. 10).

Структурная схема ир подключение микросхемы 74HC125

Рис. 10. Структурная схема ир подключение микросхемы 74HC125.

Осуществлять эту процедуру мы будем посредством кнопки S1, которая при замыкании будет переводить выходы программатора в рабочий режим программирования, подсоединяя его сигналы к схеме.

На момент программирования надо удерживать кнопку в нажатом состоянии, а после того, как процедура программирования пройдет успешно, отпустить. При разомкнутом состоянии кнопки выходы программатора переводятся в состояние Z.

Струткутрная схема микросхемы 74HC125

Рис. 11. Струткутрная схема микросхемы 74HC125.

Состояния входов и выходов микросхемы 74HC125

Рис. 12. Состояния входов и выходов микросхемы 74HC125.

Из даташита микросхемы 74НС125, по схеме (рис. 11) и таблице истинности (рис. 12) видно, что если подать на выводы А “единицу”, схема переводит выходы в высокоимпедансное состояние (фактически вообще отключается от нагрузки), и вдобавок у этой микросхемы еще большая нагрузочная способность, чем у микросхемы, которую я выбрал в качестве буффера в схеме рис. 9.

В. Науменко. г. Калининград. РМ-04-17, 05-17.

Ресурсы:

  1. GD75232 - www.datasheetcatalog.org/datasheet/texasinstruments/ad75232.pdf
  2. 561ПУ4 - www.voshod-krlz.ru/files/datasheets/561pu4.pdf
  3. CD4050 - www.datasheetcataloa.Org/datasheets/70/109093DS.pdf
  4. 74НС125, 74НС126 - www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXrytxt.pdf

1 5728 Программаторы
программатор микроконтроллер avr микроконтроллер

Комментарии (1):

#1 Геннадий Апрель 18 2020
+1

Добрый день. (Вам не болеть!!! Это сейчас актуально) Подскажите, а можно поставить вместо 74НС125 отечественную 155ЛП8 . Большое спасибо за любой ответ. С уважением.

Оставить комментарий: