Программатор для avr микроконтроллеров своими руками

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

Еще одним несложным, в плане изготовления, является 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 программатор заработал нужна программа для программирования через COM порт, плата устройства к которой мы подключим программатор и тестовая прошивка для микроконтроллера.

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

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

Заключение:

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

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

Можно им прошить мульт kb9012qf ? Подскажите какой к какому выводу подключать ? И какую прогу использовать

Здравствуйте. Можно им программировать ATtiny85? А нет схемы на монтажной плате? Для меня так удобнее- монтажные платы есть. На одной уже собрана отладочная плата для ATtiny85. И об этом «Так как программатор Громова собран на пассивных элементах он не требует для себя питания. Мало того, из-за паразитного питания, микроконтроллер можно запрограммировать вообще не подключая к нему источника питания! Хотя так программировать я не рекомендую, но сам факт интересен.» подробнее. Подавать питание или нет? отдельно привести от USB?

Все- нашел. Есть такая плата

Не получается че-то. Собрал все. Проверил несколько раз. Все по схеме. Запускаю унипроф. Пишет «Что-то не ладно с Lpt, код=2; проверьте наличие файла LPTWDMIO.SYS в каталоге uniprof!»

товарищи, что-то вы меня совсем запутали со схемой. на самой первой картинке, там где типа схема, вроде все понятно, на 5м контакте GND, первый свободен. НО, если верить написаному на вскрытом у меня разьеме, то отсчет идет против часовой, и будет примерно так 5 4 3 2 1
9 8 7 6 это все так со стороны пайки. а у вас на фотках, гда показана распайка, выходит три резюка припаяно на первый контакт. где правда?! или я совсем непонимаю 🙁

да это я все пересмотрел. я к тому, что если верить написанным на «маме» цифрам, то на фото, где изображено как паять, типа в реальности, то там неверно. сюда немогу( либо не знаю как) прикрепить фото, ссылка на яндекс диск https://yadi.sk/i/uDN8pFt33Q6a6F, а должно я так понимаю быть примерно так, https://yadi.sk/i/KtKTnkZr3Q6aqz это схема уже со стороны пайки нарисована. или я не прав опять? поправьте. неохото напартачить.

ааааааа, жесть. вот прогнал я. на маме же нада….. вот я дурень. а у меня папа. тфу. пойду искать маму.

три раза пересобрал, все согласно схемы, ну не работает хоть убей. ошибиться не мог, где-где, а уж тут в «трех проводах» точно разберусь. скажите, на выходе программатора, относительно GND должно же быть какое-то напряжение, там в пределах 5в.? у меня нету ни на одной. может диоды шиворот на выворот. хотя в магазе вроде 1N4148 дали. катод на чорной полоске, так и запаял. уже не знаю, хоть головой о стену….

Да, в процессе программирования на ногах должны присутствовать импульсы около 5 вольт.
Может проблема с портом?
Можно проверить, посмотрев что на линиях самого порта при программировании превосходит (тут уже должны быть уровни + — 12 вольт).

нет, имел в виду когда програматор без МК подключен. Порты на двух компах, везде рабочие. завтра на 10 проводным шлейфом соединю, может помехи…

тинька в гирлянде, по схеме Евгения, там нету ИК приемника, и 7 нога на GND это не может повлиять? особенно 7 нога.

Нет 7-я нога никак не скажется на программировании. Главное чтобы МК был запитан от от отдельного источника питания 5 вольт (батареек например).

забил пока на ком схему, собрал лпт, мучал-мучал, не подключается и все. (было это с БП, называется ИПС-1, стабилизированный, приобретенный в 90м через посылторг). а подцепил батарейки, тоже не подключился, но на кнопку прочитать, пошла полосочка внизу, и ниже выбора портов, считает какие-то циферки. но ооочень медленно. стоит тормоз, и задержку уже аж на 50 поставил. где-то читал, что типа вручную выбирают МК, я не нашел где это сделать. подскажите.

Какая программа для программирования используется?
МК новый? с заводскими фьюзами?

программа uniprof. сегодня уже понипрог поставил, только толку никакого. МК новая. с магазина. даже купил сегодня новую, уже навесом подключил, ЧЕРЕЗ ЛПТ программатор. порты прописал как в описаловке. провод уже укоротил до примерно 30 см. чередованы 10 проводов через общий. где бл….дь можно накосячить. ну тут вообще же только резюки. зла уже нету. еще и нога минуса отвалилась какого-то…. пробовал на двух компах. на одном вин 8.1, на втором ХП. куда мне его еще всунуть? разве что в мусорку и забыть все как страшный сон… 🙁

Ё-маё….. полез в биос, поменял SPP на ECP+EPP, и все заработало. я в шоке. почему тогда дефолтно не стоят эти настройки? это для ЛПТ порта. может что и для сом порта там не так в биосе? ща подцеплю вторую тиньку, проверю. жесть, нада идти за пивом… для снятия стрессу…

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

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

Может действительно МК проблемный?
Пару раз у меня было что новый МК не прошивался нормально (ну уже очень давно такой проблемы не было).

А подскажите пожалуйста, если, ВДРУГ, этот глючный конторллер удастся прошить буз фьюзов, (мысль такая, на ЮСБ программатор) будет ли работать контроллер? и как? и более с ним ничего не намечается конструировать.

Попробуйте. Может и получится.
Как будет работать проблемный МК никто не скажет.

Ну это то и ежу понятно. я же говорю, если вообще прошьет. и еще вопрос, почему не практикуется питание контроллера от ком порта компьютера? ну, полноценного стационара. я раньше, самодельным дата кабелем https://drive.google.com/open?id=1c1Ivq9VnrTDZV2CCoYEWzBLAaiceqQg7 прошивал телефоны Сименс, хватало питания. (извиняюсь за тупые вопросы. сейчас еще погуглю, может найду какие ответы, но и Вам буду благодарен за разьяснения). Спасибо заранее.

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

Про отсутствие питания на этих портах я вкурсе, просто интересовало, почему, хоть и «корявым» способом, но не питают МК. Вообщем, на нет и суда нет. посмотрел кое что в гугле, как питают, куча лишних деталюшек не фонтан. не сложно и со стороны запитать. СПАСИБО. Пока вопросов нет.

Хочу прозвонить Com Avr программатор Громова мультиметром, программатор спаял по этой схеме.
Скажите пожалуйста какое сопротивление и на каких выводах есть, если, например минус мультиметра подключать со стороны разъема db9f, а плюс мультиметра подключать к разным выводам со стороны разъёма

Кроме MISO (который бесконечность будет показывать ), все остальные будут звониться по 1кОм.

Ну прозвонил, воткнул, не работает. Слишком много если. Разъемы isp разваливаются, и работает ли com.
Это как то не то.
Надо чтобы сто процентов работало, и чтобы со смартфона через otg писать.

И самое главное ещё не сказал. То что электроникой заниматься через поисковик, это не реально. Нашел схему спаял, а она не работает. Как отличать? Где инструмент чтобы правду от лжи отличить? Перепаять все схемы в интернете?

Если в электронике нет понимания, то есть два варианта:
1 Скрупулёзно её изучать для понимания.
2 Покупать готовые изделия.

Honor7A pro 100% поддерживает подключение через otg.
UsbAsp проще вашего com программатора, только что его прошивать нужно, если паяешь.
На уровне инженера жизни не хватит, чтобы проверить работоспособность всех схем, поэтому предложу определить один портал электриков, и дать рекламу, чтобы каждый ребёнок знал, что на авито обмен товарами, а на … единый портал электриков, где чипухи не гонят.

Угу, ну тогда нужно еще определить единый автомобиль в мире на котором будут ездить все, единый телевизор и единый смарфон (Honor7A pro — судя по всему) . Это чтобы не мучаться выбором и не пробовать все подряд. )

Ну а если серьезно, все программаторы, что Вы перечислили , служат совсем для разных целей.
— COM программатор — это на случай если нужно что-то разово прошить или под рукой ничего нет на данный момент.
— UsbAsp может стать основным программатором, если Вы решили этим заниматься и дальше.
— ну а программировать через OTG (все равно нужен тот-же USB-программатор) — это вообще очень специфично и для случая когда прошивка создается прямо в смартфоне.

Здравствуйте! Сегодня собрал программатор и вот что получилось: — когда считываю данные с attiny2313-20pu то они каждый раз разные. Купленная attiny2313a-pu вообще не определяется программой. Что я делаю не так?

Привет!
Какой программой пытаетесь считать?

Привет, брат, тебе выгодно заряжать atmega8, но программа не имеет выбора и не отправляет avr usb

Привет!
Не понял.
Machine translate?
Maybe in English?

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

Для отправки комментария вам необходимо авторизоваться.

Источник

Миниатюрный USB программатор для AVR микроконтроллеров

Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.

Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):

Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:

На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.

Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно

Прошивка управляющего микроконтроллера

Итак, после сборки устройства осталось самое важное — прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом 🙂 Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:

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

Установка драйвера

Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:

Выбираем папку где лежат дрова и жмем Далее

Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:

Забиваем на предупреждение и продолжаем установку, после небольшой паузы появится окно, сообщающее об успешном окончании операции установки драйвера

Все, теперь программатор готов к работе.

Khazama AVR Programmer

Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer. Замечательная программка, с минималистичным интерфейсом.

Она работает со всеми ходовыми микроконтроллерами AVR, позволяет прошивать flash и eeprom, смотреть содержимое памяти, стирать чип, а также менять конфигурацию фьюз-битов. В общем, вполне стандартный набор. Настройка фьюзов осуществляется выбором источника тактирования из выпадающего списка, таким образом, вероятность залочить кристалл по ошибке резко снижается. Фьюзы можно менять и расстановкой галок в нижнем поле, при этом нельзя расставить галки на несуществующую конфигурацию, и это тоже большой плюс в плане безопасности.

Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.

Скачать файл печатной платы в SprintLayout можно по этой ссылке

Ну вроде все, если возникнут вопросы, постараюсь ответить.

Источник

Оцените статью