Программатор Громова. Микроконтроллеры для начинающих



Перед каждым, кто начинает осваивать конструирование устройств на микроконтроллерах AVR и купил в радиомагазине микроконтроллер встает вопрос, чем его прошивать. В магазинах большой выбор программаторов, подключаемых к USB порту , также можно заказать программатор с Китайских интернет аукционов.

Но в первом случае придется выложить не маленькую сумму за программатор, а во втором ждать месяц – полтора пока доставят. Я предлагаю собрать программатор самим, своими руками, тем более там ничего сложного нет, всего несколько диодов, резисторов и светодиод. На рисунке ниже его принципиальная схема :



Для подключения к компьютеру лучше воспользоваться фабричным кабелем для COM порта. Со второго конца кабеля разъем при этом отрезается. Если все же кто-то будет пользоваться для подключения не кабелем, а одним разъемом СОМ с припаянными проводками, то рекомендую длину проводков делать не более полуметра. Дело в том, что фабричный кабель идет экранированный, а на проводки будут наводиться помехи.



По этой же причине, длина проводков идущих с программатора на программируемый микроконтроллер, должна быть не более 10-15 См. Диоды я взял импульсные КД 522. Распиновку разъема можно легко найти в интернете, либо воспользоваться для подключения следующей схемой:


Обе схемы, и первая, и вторая одинаковые.

Программатор может работать с разными оболочками для прошивания. Например, с PonyProg2000, UniProf и avrdude. Я предпочитаю UniProf. У неё простой интерфейс, на русском языке, на скрине ниже изображено окно, которое открывается после запуска программы:



При прошивке микроконтроллера фьюзы в UniProf устанавливаются обычным образом как в даташите. В PonyProg2000 фьюзы выставляются инвертированно. На печатной плате добавлена индикация включения питания на светодиоде, включенном последовательно с ограничивающим резистором, между плюсом питания и землей. Мною была переразведена под свои нужды печатная плата, для того чтобы можно было нарисовать рисунок маркером:



Выкладываю несколько фото, сделанных во время сборки программатора:



Фото платы со стороны пайки выводов:



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

Вконтакте

Одноклассники

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

В схеме используется семь резисторов на 1кОм. Один резистор на 330 или 470 Ом (подключенный к светодиоду). Три маломощных диода. И один светодиод. В принципе, мою схему можно упростить и выкинуть индикатор питания, реализованный на светодиоде. Вы можете скачать схему программатора Громова в формате Sprint-Layout.

Плата программатора должна получиться приблизительно такой:

Фотографию готового устройства предоставил товарищ eap (Александр). А все мои давно ушли в университет, для которого я периодически ваяю интересные игрушки на микроконтроллерах.

Подключение программатора Громова

К джамперу возле светодиода необходимо подключить питание для программатора. Питание 5 вольт. Это же питание подключится к питанию программируемого устройства. Левый блок джамперов подключается к коннектору COM порта. В принципе, можно все упростить и припаять шлейф прямо к падам платы. И шлейф от разъема для программирования тоже можно сразу припаять к падам платы. Хочу заметить небольшую тонкость. Длинна шлейфа от COM порта может быть метр или полтора, а длинна шлейфа от программатора Громова до программируемого устройства не должна превышать 20 сантиметров

Программатор Громова является битбэнг (bitbang) программатором, по этому ему требуется соответствующее программное обеспечение. Например, можно использовать в паре с Громовым — UniProf и avrdude.

Минусы программатора Громова

Основной минус — это необходимость подключения к COM порту компьютера. Честно говоря, на всех современных ноутбуках этого порта попросту не существует, а на стационарных компьютерах этот порт постепенно вымирает. Скорость программирования через этот тип программаторов очень низкая. Не работает с переходниками USB-COM. Не работает со стандартными программами из AVR Studio.

Программатор Громова можно использовать в качестве одноразового программатора. Им можно прошить другой программатор. Например, программатор AVR910 требут предварительной прошивки. Вот в таком случае можно собрать программатор Громова, сходить к друзьям у которых остался компьютер с COM портом и у них провести предварительную прошивку своего AVR910.

Плюсы программатора Громова

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

Моя первая связка программаторов которыми я пользовался были программатор Громова плюс avrdude.

Альтернативы

Альтернатив для программатора Громова очень много, вот небольшой пример: AVR910, USBasp, Prottos, USBBit. Они все работают через USB и по этому могут использоваться при работе с современными компьютерами. Так же практически все отладочные комплексы содержат в себе программатор, например: STK, BigAVR, Dragon, PinBoard (начиная с версии 1.1), OrcaBoard (начиная с версии Rev 2).

Для того чтобы прошить микроконтроллер в 95% случаев хватает последовательного программатора. Самым простым является «5 проводков» для LPT порта. Но схема эта не надежна. Но самым большим минусом этого программатора является отсутствие LPT порта на новых компьютерах.

Программатор Громова — это практически теже 5 проводков, только для COM-порта. Схема эта в десятки раз надежнее,. Автором этого программатора является Генадий Громов, создатель Algorithm Builder . Вот его схема:

И так надо 3 диода,любые, например кд522 или 1N4148. 7 резисторов на 1 кОм.

вот пример платы, сразу скажу что там резисторы на 10кОм, но все равно работает, вам все таки рекомендую делать по схеме.

ну еще я использую щуп для корпусов SO8

Для программирования используется программа UniProf от Николаева

UNIPROF – это ISP (in system programming) программатор для AV R микроконтроллеров (смотрите список слева). Имеет встроенные модули отладочного обмена, позволяющие при помощи того же самого шлейфа, при помощи которого программировали, производить realtime отладку программы (подробнее об отладке). (далее – просто программатор). Программатор позволяет:

  • Читать/писать/сравнивать FLASH память программ и EEPROM;
  • Чтение/запись/сравнение FLASH возможно в указанных границах;
  • Читать/писать fuse и lock биты;
  • Читать настроечные байты OSCCAL и при необходимости помещать их в буфер EEPROM или FLASH;
  • Вручную корректировать содержимое окна EEPROM и перемещать блоки FLASH;
  • Работает с файлами в форматах HEX, BIN и generic;
  • Возможна подача любой команды протокола обмена “вручную”;
  • Режим “тормоз” для низких тактовых;

Схема программатора и программа ниже во вложении

Вложения

Разумеется сразу же возникла надобность в программаторе. Программатор на LPT порту меня не устроил, из-за того, что есть вероятность сжечь порт компьютера. Можно было конечно собрать USB программатор, но его также нужно было бы чем-то прошивать. Тогда я наткнулся на схему программатора Громова и решено было собрать его. Писали, что программатор работает с оболочками UniProf и avrdude . Сама схема очень простая:


Печатную плату скачал готовую, немного изменил, чтобы можно было нарисовать маркером, получилось следующее:

Все резисторы, кроме идущего с катода светодиода на землю (он номиналом 470 Ом) на 1 кОм, всего в схеме этих резисторов 7 штук. Резисторы на 1 ком ставятся для того, чтобы погасить часть напряжения идущего от СОМ порта с 12 вольт, до требуемых для микроконтроллера 5 вольт. Диоды взял КД522 , 3 штуки. В схеме есть индикация питания на светодиоде, поставил зеленого цвета, советский 5 мм диаметром. У меня в запасах был кабель удлинитель COM 9M/9F , как раз подходящий для этих целей, разъем с обратной стороны кабеля был мной обрезан.


Кабель был экранированный, что позволяет удобно расположить корпус с программатором в любом удобном месте, насколько хватает длины проводов, тогда как в случае с неэкранированными проводками, если бы нами был использован только разъем СОМ длина ограничена полуметром, иначе программатор может работать со сбоями.


Так как проводники, выходящие с программатора и идущие, в моем случае на цанговую макетную плату, на которой я буду собирать и отлаживать первые устройства, рекомендуют делать длиной не более 15 – 20 см, я сделал длиной 15 см обычным гибким разноцветным монтажным проводом. Кабель идущий с СОМ порта решено было прикрепить хомутом к плате, ввиду того что в процессе эксплуатации программатора он мог бы вырваться, так как он достаточно жесткий. Проводки выходящие из программатора и идущие на микроконтроллер также стянул проволочным хомутом. Плата была протравлена и залужена:

Несложный в плане изготовления COM программатор . При условии использования альтернативного режима COM порта Bitbang, отпадает необходимость в преобразовании интерфейса RS232 COM порта в SPI, необходимый для программирования. Остается только привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В).

схема COM программатора для AVR микроконтроллеров

Данная схема программатора достаточно распространена и известна как программатор Громова . Название пошло от автора программы Algorithm Builder Геннадия Громова , который и предложил такую схему.

Схема несложная, для ее сборки потребуется всего-лишь несколько деталей:

Диоды КД522, КД510, 1N4148 или им подобные. Резисторы можно использовать любые, какие найдете. В качестве шлейфа можно использовать IDE шлейф. При подключении шлейфа, для более устойчивой работы программатора, каждый «сигнальный» провод должен чередоваться с «земляным» проводом. Это позволит уменьшить уровень помех наводимых в линиях и за счет этого увеличить длину программирующего провода. Длина шлейфа должна быть в пределах 50 см. Еще нужен разъем для подключения к программируемому устройству.

Для внутрисхемного программирования Atmel рекомендует стандартные разъемы :

Если Вы планируете серьезно заняться микроконтроллерами, сделайте разъемы стандартными. Для разового программирования устройства можно использовать разъемы BLS «мамы» на программаторе (такими разъемами к материнской плате подключаются кнопки и светодиоды корпуса компа) и штырьки PLS «папы» на плате.
Это позволяет максимально упростить разводку платы устройства, так как штырьки для программатора устанавливаются в непосредственной близости возле ножек микроконтроллера. Ножки MOSI, MISO, SCK у микроконтроллеров AVR всегда расположены вместе, поэтому для них можно применить строенный разъем. Отдельно делаем подключение для «земли»-GND и «сброса»-Reset.

Сборка программатора Громов в деталях


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

Для того чтобы COM программатор Громова заработал нужна программа для программирования через COM порт. Для этого прекрасна подойдет программа UniProf , скачать которую вы можете на нашем сайте в разделе радиолюбительский софт .
Также еще потребуется плата устройства к которой мы подключим программатор и тестовая прошивка для микроконтроллера.

Так как режим Bitbang нестандартный для COM порта компьютера, то возможны сбои в работе (хотя у меня такого не было). Особенно это касается ноутбуков. Как вариант решения этой проблемы можно рекомендовать «поиграться» настройками COM порта (скорость, биты данных, варианты управления потоком, величины буфера …).
– Отдельный разъем для «земли» желательно подключить первым, чтобы уравнять потенциалы «земли» программируемого устройства и компьютера. Для тех, кто не знает, если у Вас компьютер включен в обычную розетку, без заземляющего контакта, то в виду особенности фильтра блока питания компьютера, на корпусе компьютера всегда присутствует потенциал в 110В.

Заключение:

Понравилась статья? Поделитесь с друзьями!