Делаем 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 119 163 times, 10 visits today)

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

  1. karomag

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

    Попробуй, нормальное питание на МК подать, например через LM7805. Насколько помню, usb у ноутов слабые очень.

  2. drayv

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

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

    Да, любые импульсные подойдут.

  4. Dederik

    Добрый день а можна ли заменить диоды кд522 на FR207, FR307

  5. Evgen-82

    Сделал печатную плату для данного программатора, кому надо, могу дать

  6. karomag

    Заработало! Просто провода плохо были подключены от программатора к МК.

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

    Из какой программы пытались найти МК? Линии прозванивали, КЗ искали?

  8. karomag

    Собрал программатор. Но МК не определился, как можно проверить слабое звено: программатор или мк виноват?

  9. nobody cares

    Спасибо огромное, думаю должно получиццо.

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

    Оболочка к дудке может быть любая — это сути не меняет. Главное настроить дудку под этот программатор. Во здесь прописано как это делать
    http://www.forum.getchip.net/viewtopic.php?f=14&t=304

  11. nobody cares

    GetChiper :
    Этот шнурок можно прикрутить к AVRDUDE, а это поддержка огромного количества контроллеров.

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

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

    Этот шнурок можно прикрутить к AVRDUDE, а это поддержка огромного количества контроллеров.

  13. nobody cares

    Вопросик маленький. Прошьет ли сей чудный девайс AT90PWM3B? И ежели да, то какой софтиной юзаццо? Я не шил никада АВР, тока пики один разок, примерно таким же аццким девайсом, успешно.

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

    Да, правильно.

  15. kosmos

    @GetChiper
    Если брать VCC +5 от USB или батарейки то минус падать на GND, а плюс на VCC?

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

    Уровни сигнала к необходимым 5 вольтам и приводит схема этого программатора.
    А питание микроконтроллера (эти самые VCC +5V) при программировании нужно подавать внешнее (хоть от батарейки)или взять с USB (но нежелательно, во-первых, могут быть ВЧ помехи, во-вторых, можно случайно пальнуть USB).

  17. kosmos

    по схеме нат такого провада 🙁

  18. kosmos

    Прошу прощения, меня зовут Владислав. Я новичок в электронных делах, и мне не понять как это сделать «Остается только привести уровни сигналов COM порта (-12В, +12В) к необходимым (0, +5В).» для AVR ISP-6 нужен VCC +5V и где его взять от COM порта. Заранее спасибо.

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

    Гдето ошибка. Очень простая конструкция — работать должна безотказно. Контроллер рабочий?

  20. greend

    не работает, хоть убей.. пробовал на двух компах- одно и то же «МК не откликнулся».

  21. shuhrataka

    Дорогой GetChiper скажите пожалуста какой схема отлпдочной платы подходит для ATmega8A-PU ATmega8-16PU

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

    минусом на тот самый GND

  23. igorek

    я так понял нужно на vcc подключить +5v плюсом а минусом куда?

  24. igorek

    спасибо теперь понятно! просто на рисунке 6 там вроде спаены две связки по три провода…или мне так кажется?

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

    В самом начале статьи схемка-же есть. Согласно ее и нужно соединять.
    По поводу чередования имеется в виду что сигнал GND — земля ведется несколькими проводниками которые чередуются с остальными : вот так, например GND-MOSI_GND_MISO_GND_SCK_GND_RESET_GND

  26. igorek

    помогите мне дураку пожалуйста…

  27. igorek

    Взял такиеже цвета проводов как и на рисунке

  28. igorek

    Всем привет! У меня тут ситуация такая, собираю COM программатор точно по данной схеме и по данным рисункам, но не могу разобрать куда какие провода припаивать и какие провода с какими соединять…Согласно схеме припаиваем шлейф чередуя СИГНАЛЬНЫЕ и ЗЕМЛЯНЫЕ провода — это я не понял ))) извините заранее…)

  29. chainik

    все собрал, но как подключить к 28 ножкам 5 проводов

  30. chainik

    вроде все просто нет проблем, но на фото невидно куда и припаивать 10 жильный шлейф и потом на какие припаивать разъемы BLS, а потом как подключать 5 «мам» к микроконтролеру ATmega 8-16PU.

    начинающий чайник

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

    Запросто.

  32. Foxtr0t_1

    А можно германиевые диоды вместо кремниевых?

  33. SvC

    @Artur
    Попробуй нажать F2 и увеличивать задержку. Если не поможет то галку «Тормоз» ставь. На тормозе должно нормально ездить

  34. Artur

    GetChiper :
    А мега все еще читается?

    Да читается. Только при каждом чтении разные хекс числа. Может это помехи? Я укоротил кабель от программатора до прошиваемого МК и заэкранировал кабель от ком порта тот же результат. От питания может помехи идти? БП самодельный стабилизированный.

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

    А мега все еще читается?

  36. Artur

    Собрал программатор один раз мегу 8 прошил,потом пробую тиньку2313 при чтении в окне программ новый МК показывает как бутто что то есть при следующим чтении цифры меняются. При программировании выдает ошибку ” Ошибка записи ,@=0001, надо С0, есть 40. Повтор?” Что может быть?

  37. SvC

    Все, заменил три резика и оно заработало! правда только в тормозе и с задержкой в 11 мс. Без тормоза тупо не видит, с меньшей задержкой ошибки проскакивают.

    Развею некоторые сомнения по поводу USB-COM переходника, у меня вот это все именно на нем работает. Использую orient uss-111, который на базе чипа Prolific PL-2303. Единственное, что озадачило, это то, что вместо 12 вольт он дает 8 вольт. Администраторы, думаю информацию по переходникам нужно закрепить где нибудь в конце статьи как примечание, а то я если честно, не ожидал что оно заработает, а так примечание будет давать надежду.

    Спасибо за статью =)

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

    Резисторы, те что стоят сразу после диодов (подключены к катодам) нужно заменить на 300 Ом

  39. SvC

    поправки:

    С нормальным комом (12 вольт) работает, потому что после преобразования получается 3.8 вольта, а это допустимо (напомню, мк определяет сигналы от 3.3 до 5.5 вольт). А вот мой ком (который 8 вольт)(щас почему то вообще 6 показал), после преобразования показывает 2.7, а это не в ходит в допустимый диапазон. я считаю проблема именно в этом.

    добавление:

    диоды 1n4148, падение напряжения на нем 0.8 вольт

  40. SvC

    @GetChiper
    можете схему нарисовать какие именно нужно поменять?

    С нормальным комом (12 вольт) работает, потому что после преобразования получается 3.6 вольта, а это допустимо (напомню, мк определяет сигналы от 3.3 до 5.5 вольт). А вот мой ком (который 8 вольт), после преобразования показывает 2.3 (или 2.8, не помню, помню только что целых 2 было), а это не в ходит в допустимый диапазон. я считаю проблема именно в этом.

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

    Пара резисторов — это просто делитель напряжения (с учетом того, что на диоде падение напряжения в 1 вольт).
    Поставьте с диодами резисторы в 300 Ом (вместо 1кОм).

    Хотя, я уверен, что программатор будет работать и без изменения номиналов резисторов.

  42. SvC

    Этот программатор рассчитан на то что ком выдает положенные ему 12в, а если он выдает 8в? какие резики тогда ставить?

  43. Dimadze

    Короче, извиняюсь, работает!
    1) Вы хоть напишите, что диоды нерусские, а то я по неопытности, думая что это из серии КД522, доверчиво сделал всё как на картинке, оказывается наоборот надо было.
    2) Микруха несколько раз при неумелом подключении раскалялась и воняла горелым пластиком, но ничего же работает ведь!
    3) И ток у меня потребляет 17 мА и всё работает, так что думайте
    4) Если поставили галочку COM — снимите её, а то не определяет
    Спасибо за статью, желаю удачи, тем у кого пока не получилось, проверьте схему ещё раз, может вы поневнимательности где-то ошиблись …

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