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

Автор: | 03.03.2010

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

Схема COM программатора для AVR

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

Чтобы собрать программатор Громова нам нужно следующее:

Детали для COM программатора для AVR

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


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

Собрать COM программатор не составит труда:

Собираем COM программатор для AVR

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

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

Общие рекомендации:

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

Заключение:

— COM программатор Громова простой и надежный. Я не перестал пользоваться им даже собрав USB программатор (если какой либо микроконтроллер перестает программироваться USB программатором я обязательно перепроверю его на программаторе Громова).
— Так как программатор Громова собран на пассивных элементах он не требует для себя питания. Мало того, из-за паразитного питания, микроконтроллер можно запрограммировать вообще не подключая к нему источника питания! Хотя так программировать я не рекомендую, но сам факт интересен.
— Для пользователей Algorithm Builder есть приятный бонус! Этот программатор можно использовать для внутрисхемной отладки кристалла (программный JTAG).

Ссылки:
Сайт Геннадия Громова, автора Algorithm Builder


(Visited 122 347 times, 1 visits today)

Делаем COM программатор для AVR микроконтроллеров.: 288 комментариев

  1. Михаил-Батурин

    Сделал программатор по схеме, заработал не сразу, нужно было в меню программы uniprof убрать галочку «Программа», затем снова поставить эту галочку и все сразу определил (проверил первый раз на ATtiny 13A ), залил тестовую прошивку, проверил, все работает. После, включил ATmega 8A — прога сразу определила микросхему, больше пока проблем с определением, заливкой, чтением не было.

  2. GetChiper Автор записи

    Не уверен

  3. Вадим Ботнаренко

    у меня вопрос: можно PonyProg-ом пльзоватся этим програматором или обезательно UniProf? Споосибо

  4. UA

    Сегодня проверял свои мк на программаторе «мини прог» все определились, проверили фюзы сбросили на заводские, приехал домой, а на Громове не определяются. В просторах есть мнение, что атмел как то по другому штампует мк, есть открытые, а есть закрытые и такие программаторы как Громова им не по зубам.Вопрос не в тему, но все же какой программато (с не сложной схемой) с такими вот мк может справиться?
    P.S. «Мини прог» у нас сегодня минимум 1100 грн.

  5. UA

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

  6. GetChiper Автор записи

    МК точно новый? может уже кто фьюзы менял? Тогда может не определятся.
    Если всетаки МК новый, то похоже — это проблема с МК

  7. UA

    попробовал применить lpt порт, результат тот же, неопределенный мк

  8. UA

    Еще вот такой вопрос, от питания такой глюк не может проявляться?

  9. UA

    GetChiper :
    Может попробовать поменять программатор?

    брал у товарища usbasp та же история программа программатор видит, а при прошивке выдает ошибку не определяется мк. на программаторе через провод масса и длина 25-ть см. Вот такая загадка!

  10. GetChiper Автор записи

    Если МК сразу не видны программатору (при условии что МК новый) — тут доктор не поможет.

    Сложно поверить, что это заводской брак МК (мне, например, еще не разу не попадались бракованные МК)

    Причиной могут быть помехи

    Может попробовать поменять программатор?

  11. UA

    Здравствуйте. Купил через интер.маг. 2-е атмеги8, первая прошилась ок, вторая не определилась. Купил через другой интер.маг. 2-е атмеги8 и 2-е тины 2313а, меги прошились ок, тины не определились. Вопрос, нужен доктор или есть и другой выход? (не может быть сколько брака)

  12. KKP

    @GetChiper
    Привет) Спасибо за ссылки,немного разобрался)

  13. biturbo420

    @GetChiper
    Привет! я ужо приобрел STK500, вернее клон. Я так и не понял, почему «Громов» не пашет, но новым уже прошился. Спасибо.

  14. KKP

    А есть статья как сделать отладочную плату?

  15. biturbo420

    насчет остальных не в курсе, это мой первый, и то вынужденный.
    программатор включен правильно, там сложно ошибиться.
    относительно +5В на всех пинах программатор -5,2В.
    думаю прикрутить светодиоды параллельно пинам дабы посмотреть появляется ли что-нибудь на sck и miso.
    если ничего не получится или чип как-то проверять или через другой программе попробовать (которого нету :)).

  16. GetChiper Автор записи

    Другие МК работают?
    Правильно включен программатор?

    MOSI PB5 I Serial data in
    MISO PB6 O Serial data out
    SCK PB7 I Serial clock

    Громовым я шил меги8515 (или 8535 — уже не помню)

  17. biturbo420

    привет! фигня какая-то: собрал Громова, подключил атмега8515 и… ничего, юнипроф не видит МК. Проверял все — по схеме. Как определить работоспособность чипа (правда я его из Китая выписал, судя по фоткам в нете, мой экземпляр мб кривым).

  18. GetChiper Автор записи

    Я тоже об этом думал. Код активного программатора для Algoritm Builder открыт. Теоретически можно сделать загрузчик на его базе. Выйдет программатор с отладчиком и устройства на базе Ардуино можно будет прошивать и отлаживать не вынимая с USB.

  19. hogval

    Arduino почти готовый программатор по USB для Algoritm Builder, остается подключить мозги и руки.

  20. Stepper

    Запутался в схеме, на 2 пине СОМ-порта немного не понял. Вот тут (http://ivashka.my1.ru/Article/Gromov/shema.jpg) немного понятнее.
    Если кто понял мой вопрос в предыдущем посте, то да, все так)

  21. GetChiper Автор записи

    Честно говоря, я запутался в вопросе 🙁
    Проще всего посмотреть на схему программатора и проверить соединения по ней — там все очень просто.

  22. Stepper

    Я дико торможу с 5 шагом — распайкой, прошу, подскажите.
    У нас есть 3 пары «резистор с диодом» — земляной резистор, и одиночный резистор. Припаиваем MISO к одиночному резистору,к двум «перемычкам» в парах SCK и RESET, а третью перемычку припаеваем к 2 пину СОМ-порта, и к этому же пину — MOSI? И 4 земляных пина к 5 пину?
    Заранее спасибо.

  23. GetChiper Автор записи

    При программировании любого МК програматром Громова нужно отдельно питание подавать.

  24. slavich_13rus

    Всем доброго! Подскажите: при программировании ATtiny13 программатором Громова нужно ли подавать отдельно 5V для питания мк.контроллера? (на схеме программатора Громова данное питание отсутствует). Заранее спасибо!

  25. GetChiper Автор записи

    Не уверен. Скорей всего, что нет.

  26. tapac13

    Здравствуйте! Вопрос; будет ли программатор Громова работать под PonyProg. Винда 7 ПИКИ прошивал через COM программой EXTRAPIC. Хочу попробовать ATM. Сильно не пинайте, только начинаю осваивать. Заранее благодарю за ответ.

  27. Dima

    внимание программа работает только с корневой папкой на рабочем столе я только что протестировал программу на windows 7 sp1 или иначе микроконтролер не будет определен и ярлык программы должен находиться тамже в корневой папке вот такая не хорошая ошибка

  28. gangstervano

    Я для чего нужен 10ти жильный шлейф? Не понятен шаг 5 на схеме вроде только пять выводов. Или все остальные шесть проводов это GND, а потом соединяются в один?

    >>Отдельный разъем для «земли» желательно подключить первым

    Это кода к микросхеме подключаем? Или когда программатор вставляем в COM порт?

  29. GetChiper Автор записи

    «нестандартный» это и есть Bitbang, то есть прямая установка уровней на выходах порта в обход интерфейса. Вот как раз Ft232bl (это предыдущая версия FT232RL) и не умеет так работать (или работает очень медленно).

  30. ComTech

    @GetChiper
    А разве Ft232bl не умеет работать в режиме Bitbang? По моему на этой микрухе можно сделать полноценный сом???

  31. ComTech

    @GetChiper
    Не могли бы вы подсказать что значит «нестандартный» режим.

  32. GetChiper Автор записи

    USB-UART преобразователь на микросхеме FT232RL умеет работать в нестандартном режиме. Вот только эти микросхемы подороже будут и в подавляющем большинстве преобразователей Вы их не найдете. Как вариант купить FT232RL и спаять самому преобразователь (стандартная схема в даташите)
    http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT232R.pdf

  33. ComTech

    @GetChiper
    С э этим все ясно а есть ли способ (возможно на МК)реализовать СОМ порт с полноценным функционалом ?

  34. GetChiper Автор записи

    Причина в другом — в нестандартном использовании самого COM-порта при использовании этого программатора. Преобразователи просто не рассчитаны на такое использование порта и тормозят.

  35. ComTech

    GetChiper :
    «COM порт – к нему особых требований нет… Да, использовать переходник USB-COM не удастся – то есть оно теоретически работает… Но страшно медленно.» это фраза от создателя UniProf http://avr.nikolaew.org/progr.htm.
    Попробуй поставить галочку «Тормоз» и поиграться с установкой задержки записи «F2″ при программировании через переходник – может что-то и получиться.

    Пробовал,прошивал правда как вы говорили очень долго прошивается..и через раз)) я вот подумал а что если уменьшить номинал R ??

  36. GetChiper Автор записи

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

  37. siema

    Здравствуйте, столкнулся с проблемой первого программатора: отсутствует RS232 для того, чтобы запрограммировать МК для USB программатора. В данной теме нашел информацию что программатор Громова не может работать через RS232serial-to-USB адаптер. В интернете нашел следующую информацию: Программирование МК через USB-COM преобразователь (http://r-lab.narod.ru/Stk500.htm). Кто-нить пробовал?

  38. xrust

    @drayv
    Если порт в ноутбуке, то там напряжение скорее всего 5…6в. Соответственно, резисторы другого номинала должны быть.
    Модель контроллера определяется сразу при запуске программы (если он подключен). Ну и номер порта должен быть правильный указан. И проверяйте правильность сборки. Если паяли на разъеме — очень легко ошибиться.

  39. drayv

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

  40. karomag

    Кстати, у меня ошибка была именно в подключении МК к контролеру!

  41. karomag

    @drayv
    Ну тогда я думаю не стоит объяснять, что ком подключать на горячею нельзя 🙂
    Модель должна показаться раньше. Частота должна правильная показываться, если кликать по ней. Если вылетает окошко выбора, то не определяется МК.
    http://www.getchip.net/posts/025-uniprof-universalnyjj-programmator-dlya-avr/
    «Синеньким будет светиться название подключенного контроллера.Красненьким показывается системная частота.
    Важно! Если кликать по красному программа повторно засинхронизируется с контроллером. Нажимайте, на всякий случай, до начала программирования.»

  42. drayv

    если нажать read читать то должно показать модель контроллера? после сканирования или нет?
    программатор перепроверил и все правильно с паяльником дружу с детства, заменил не сколько контроллеров. ВСЕ без изменений. ком порт в ноуте рабочий я ним програмирую АТС учредительские, ком порт встроеный в ноут.

  43. karomag

    @drayv
    Скорее всего ошибка в разводке. Сделай его на печатной плате, разведи сам или поищи. Много есть вариантов и smd, и на выводных элементах. http://easyelectronics.ru/avr-shag-pervyj-programmator.html (надеюсь ссылка на сторонний ресурс не запрещена).

  44. drayv

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

  45. Evgen-82

    @drayv
    Программатор рабочий, лично проверял, ищи ошибку!!!

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