что можно прошить программатор громова
Программатор Громова — пожалуй лучший COM программатор AVR контроллеров.
Автор: Владимир Васильев · Опубликовано 17 июня 2013 · Обновлено 29 августа 2018
Всем привет. Сегодня у меня для вас новая статья, посвященная одному из самых простых и популярных программаторов AVRок — программаторе Громова — так его называют в сети.
Запрограммировать контроллер AVR на сегодня возможно двумя способами:
1) С помощью высоковольтного параллельного программатора. Это скорее промышленный вариант, так как в этом случае корпус контроллера усаживается в специальную панельку и подав высокое напряжение (большее напряжения питания) зашивается заранее подготовленная программа. После чего контроллер запаивается в плату по месту назначения. Здесь есть ощутимый плюс — полный контроль над всем нутром контроллера. А процесс зашивки моментальный.
Но если выяснится, что зашитая программа имеет непростительный баг? И что же делать — контроллер ведь уже запаян? Снова выпаивать?
Для радиолюбительской практики такой вариант не подходит, хотя иметь в загашнике высоковольтный программатор будет полезно. В одной из следующих статей кстати будет очень полезная информация так что [urlspan] не пропустите [/urlspan].
2) Мы пойдем по другому пути — и к нашим услугам внутрисхемный программатор. При этом способе контроллер устанавливается сразу в схему без каких-либо промежуточных действий. В этом случае программа зашивается внутрисхемно. Что же это значит?
Все просто, при разработке какого-либо девайса мы заранее предусматриваем программирующий разъем. Программирующий разъем устанавливаем прямо на плату нашего устройства. В своей отладочной плате я именно так и поступил, там имеется разъем, причем разъем может быть любым, но под это дело есть некий стандарт. Обычно используется десятиштырьковый разъем PLS, похожий на те, что сидят на материнских платах компьютеров.
Так вот на этот разъем с контроллера выводится 5 сигналов: mosi, miso, sck, reset, GND. Через эти контакты и будет зашиваться программа. Причем делать это можно многократно — ведь выпаивать нам ничего не придется. Единственное что должно быть сделано так это то, что контроллер должен быть запитан и запущен. Впрочем питание можно подать и с программирующего разъема. Тогда у нас будет уже не пять сигналов а шесть, но это совсем не сложно. Только здесь есть небольшая особенность — нужно быть внимательным при простановке фьюзов (FUSE) перед зашивкой программы. Если при высоковольтном программировании неправильно зашитый фьюз бит легко правится, то при внутрисхемном программировании будет сложно что-либо исправить.
Фьюзы или фьюз биты — это биты конфигурации контроллера. Их нельзя выставить из тела программы. Фьюз биты обычно проставляются перед зашивкой программы — с помощью программатора и программы-прошивальщика.
Но есть фьюз бит, выставив который мы теряем возможность внутрисхемного программирования — нужен параллельный программатор. Так что будьте внимательны и прежде чем зашить фьюз биты хорошенько читайте даташит.
Разновидностей внутрисхемных программаторов на сегодня очень и очень много и выбрать приемлемый вариант бывает не просто. Все программаторы делятся по способу подключения к компьютеру, мне известны три : через LPT, COM, USB.
Программатор работающий через порт lpt я заранее не советую, так как его очень просто пожечь, и сколько схемных решений мне не советовали, я этот вариант отбросил сразу же. Кстати да, и самого порта lpt в моей рабочей машинке не было. Вот так-то.
В наше время когда порты com и lpt уходят в небытие, единственно рабочий вариант остается USB. Но тут есть ряд проблем. Как правило схемы программаторов, работающих от USB имеют в своем составе микроконтроллер, который естественно нужно прошить, а для прошивки нужен программатор. Вот такой вот замкнутый круг. Хотя в последнее время на просторах интернета появилась схема usb программатора, которая не требует прошивки. Схема простая, но я с ней плотно не разбирался поэтому говорить о ней я не буду — если очень интересно найдете сами.
Мы пойдем по более сложному пути — займемся изготовление программатора Громова. Этот программатор работает через com порт, который в отличие от lpt, редко но все еще встречается в современных компьютерах. И кстати если на задней стенке своего компьютера вы его не обнаружили, это еще не значит что его нет, так на многих материнских платах он может присутствовать в виде pls штырьков, нужно почитать документацию к материнской плате.
Схема.
Схема самого программатора на удивление простая и мне очень жаль, что я не встречал ее раньше.
Ее можно собрать даже навесным монтажом на коленке, но на плате все-таки будет смотреться солиднее. Для этого программатора нам потребуется семь резисторов по килоому каждый и три маломощных диода. Как известно напряжение с com-порта в пределах 12 В, а контроллер работает с 5-ти вольтовым напряжением. Так вот схема из диодов и резисторов послужит нам для согласования уровней. Резисторный делитель из 12 вольт дает нам 6 вольт, а остаток из одного вольта высаживается на диоде — получаем 5 вольт и это то что нам и нужно.
Схему я нарисовал в программе Eagle CAD, затем путем нескольких незамысловатых движений мышкой родилась вот такая платка.
Файлы проекта можете скачать по [urlspan] этой ссылке [/urlspan].
Рисунок ее был распечатан на лазерном принтере и подвержен зверской технологии ЛУТ. После всех манипуляций мне оставалось только напаять деталей и выставить сие творение на ваш суд. 🙂
Входы и выходы.
На плате слева расположены монтажные отверстия для подключения разъема DB-9F (мама) известного как разъема COM-порта. с нашей платой он будет соединен посредством проводов. На схеме для этого обозначены отверстия: DB9/2, DB9/3, DB9/4, DB9/5, DB9/7, DB9/8. На схеме контакты подписаны — не промахнетесь 🙂 Хочу добавить, что провод желательно брать не длиннее 25 см. При более длинном проводе возможны помехи, а в результате ошибки при зашивке программы.
В моем варианте питание будет подаваться от компьютера, поэтому для удобства я вывел контакты
питания PinGND и Pin+5. Затем они будут соединены с питающим разъемом, в принципе под это дело можно применить и отдельный блок питания с напряжением +5 В — проблемы не будет.
Для себя я припас вот такой разъемчик от старого компьютера. Подпаиваем +5 В к крайнему красному проводу, а земля подпаивается к черному. остальное можно выкусить чтобы не мешалось.
С правой стороны расположены контакты для подпайки десятиконтактного программирущего IDC разъема. У меня он выглядит так. Здесь он идет в связке с разъемом DB-9M (папа).
К плате программатора вся эта конструкция подключается через разъем DB-9F.
Теперь можно откинуться на спинку стула и отдохнуть, ведь можно сказать с задачей мы справились — собрали программатор Громова. Но долго расслабляться нельзя, ведь впереди нас ждут испытания нашего творения. Поэтому чтобы не устроить сюрприз своему компьютеру советую все хорошенько прозвонить мультиметром и проверить монтаж и только после этого переходить к испытанию нашего девайса.
Итак программатор у нас собран и лежит на столе в ожидании. Для того, чтобы воплотить в жизнь все то что мы задумали нам нужен управляющий софт — Программа Uniprof.
Программа Uniprof —это тот самый софт, с помощью которого наш программатор будет общаться с компьютером. Эту программу написал автор по фамилии Николаев за что целая армия радиолюбителей говорит ему — СПАСИБО. Кстати саму программу можно скачать с [urlspan] сайта автора [/urlspan] или [urlspan] у меня [/urlspan].
На следующим этапе окошко программы все-таки открылось, но появилось сообщение о том, что контроллер не откликнулся. Но мы не паникуем.
Ведь программа совсем не в курсе к какому именно порту подрублен наш контроллер. Тут на выбор кроме ранее упомянутого LPT порта, есть еще набор с COM1 по COM5.Так что простым перебором добиваемся полного опознания нашего контроллера.
Контроллер определился, теперь нам нужно выполнить чтение — нажимаем на READ.
Вот подходит время таки записать программный HEX файл в наш контроллер, но нужно также не забыть установить правильные фьюз биты. Доступ к ним открывается нажатием кнопки с надписью FUSE.
Выставляем все правильно, предварительно проштудировав даташит на нужный контроллер. Важный совет, выполните чтение фьюзов и убедитесь что фьюз бит SPIEN не установлен, так как установка этого фьюза не позволит вам в дальнейшем применять для этого контроллера наш программатор Громова.
Далее кликаем по кнопке с открытой желтой папкой под названием HEX и выбираем наш HEX. 🙂 Текст программы должен отразиться в окошке Uniprof. Ну что же, теперь остается только нажать на кнопку с красной стрелочкой с названием Prog и дело в шляпе.
Как видите запрограммировать контроллер с помощью данной программы совсем не сложно. Чтобы более полно ознакомиться с ней рекомендую почитать справку, там вы найдет ответы на возникшие вопросы.
Вот кстати почитайте об охранной GSM сигнализации, которую я спаял и запрограммировал. Чтобы ее сделать мне как раз и пригодился программатор.
Дорогие друзья, совершенно недавно появился очень удобный способ подписки, через сервис Email рассылок. Так что вы можете оставить свой email и получать новые статьи и материалы себе на почту. Кроме того каждый подписавшийся получает подарок, который пригодится каждому радиолюбителю, так люди подписываются и получают приятные бонусы, добро пожаловать.
Ну что же, думаю статья окажется для вас полезной и поможет сделать еще один шаг на пути освоения микроконтроллеров. На этом у меня все, желаю вам успехов и главное хорошего настроения!
С уважением, Владимир Васильев.
Программа Uniprof для программатора Громова
Программа Uniprof нужна для того, чтобы мы могли воспользоваться программатором Громова.
В предыдущей статье мы с вами рассмотрели, что такое программатор и как собрать программатор Громова, подключаемый к СОМ порту, а также как подключить программатор к прошиваемому микроконтроллеру. Так как программатор подключается к компьютеру, то мы должны после подключения программатора к ПК запустить на компьютере специальный софт, называемый программой – оболочкой, для того чтобы мы могли прошить микроконтроллер. С программатором Громова работают две широко распространенные оболочки: Uniprof и Ponyprog, кто — то выбирает первую, кто-то вторую, я же предпочитаю работать с Uniprof. В этой статье мы как раз и рассмотрим, как работать в программе Uniprof. Оболочке Ponyprog, будет посвящен один из наших дальнейших обзоров.
Существуют несколько версий этой программы, но они мало чем отличаются. Некоторые чуть менее стабильны и имеют меньший список поддерживаемых типов микроконтроллеров.
После того, как мы распакуем архив с программой и откроем папку, мы увидим такой список файлов:
Рассмотрим, какие из них будут нам интересны. Это в первую очередь файл, в виде микросхемы с малиновой стрелкой. Именно он запускает программу оболочку.
Итак, перейдем к разбору интерфейса нашей оболочки. Такое окно мы видим после запуска программы:
На экране появилось сообщение: “МК не откликнулся. Проверьте порт и подключение.“ Так и должно быть. В данный момент программатор и МК у нас не подключены. Сразу хочу сказать, что программа работает не только с программаторами, работающими через СОМ порт, но и через LPT. Так вот, собирать программатор 6 проводков для прошивания через LPT порт я вам категорически не рекомендую. Если уж очень приспичит собрать программатор 6 проводков для разовой прошивки, используйте панельку под микросхему и подпаяйтесь непосредственно к её выводам. Дело в том, что СОМ порт намного более устойчив к замыканиям и перегрузкам, нежели LPT порт. С LPT-портом достаточно одного замыкания и вы можете безвозвратно его выжечь.
Вернемся к нашей оболочке, в правом нижнем углу мы видим, что программа работает аж с пятью СОМ портами и одним LPT портом. Путем выставления нужной галочки, мы должны выбрать наш СОМ порт
Разбираем дальше. В верхней части окна программы, мы видим надпись синим цветом “unknown”
После того как МК определится в программе, здесь будет показана модель нашего микроконтроллера и объем его памяти, например, Tiny 2313, 2k bytes.
Если нам помимо FLASH памяти требуется прошить еще и EEPROM, ставим на ней галочку так, как это сделано на рисунке ниже:
После нажатия на иконку READ, мы загрузим прошивку из памяти МК в буфер обмена программы. После этого у нас появятся какие — то значения в ячейках таблиц:
Это означает, что в буфер программы загружена прошивка. То же самое мы видим при записи прошивки в буфер обмена программы с жесткого диска. Другими словами буфер обмена — это то место, куда мы помещаем прошивку перед прошиванием или сохранением.
Бывают случаи, когда подключенный к программатору МК по каким-то причинам не определялся программой самостоятельно. В таком случае кликните в появившемся меню по нужной вам модели МК и проблема решена. Также в рабочем окне программы мы можем путем выставления галочки выбрать формат файла прошивки: привычный нам HEX, или двоичный BIN
Сразу скажу, если вы скачали прошивку в формате BIN, а вам требуется HEX (или наоборот), вы без труда сможете перегнать прошивку из одного формата в другой, с помощью специальных программ конвертеров, которые можно скачать на просторах интернета.
Остановлюсь на одном важном нюансе, без которого нормально работать с программой вообще невозможно. Частота процессоров современных ПК очень высока. Для работы программатора требуется значительно меньшая скорость. Что делать в таком случае, если у вас мощный современный компьютер, а работать с программатором как-то нужно? Все просто, создатели программы позаботились об этом и поставили в программе специальную опцию замедления для обеспечения стабильной работы, путем установки галочки “тОРОмоз”
А потому, что у создателей оболочки с чувством юмора все в порядке. В чем тут дело вы поймете, когда попробуете с помощью этого программатора, прошить например МК Mega 32. У этого МК очень большой объем памяти и прошивание занимает порядка двадцати минут и до получаса, тогда как USB программатор USBASP шьет такой же объем памяти за 30 – 60 секунд. Но тут есть один нюанс. Если вы что-то напутали с временем запуска тактового генератора МК или совершили подобную не критическую ошибку, то USB программатор может отказываться видеть МК. А программатор Громова после выставления типа МК вручную все сделает как надо. Он меня выручал в аналогичных ситуациях уже как минимум два раза. Не пытайтесь прошивать МК без использования галочки “торомоз”. Прошивка обязательно запишется с ошибками. Особенно это опасно при выставлении фьюзов.
И вот мы наконец добрались до главного пункта этой статьи. Что же нужно нажимать и в какой последовательности, для того, чтобы просто прошить МК?
Итак, сперва мы нажимаем иконку, с рисунком папки «HEX», и загружаем прошивку в буфер программы. Затем мы нажимаем «PROG» для того, чтобы прошить наш микроконтроллер. После этого мы нажимаем иконку «TEST», или верификация, сверяем прошивку в памяти микроконтроллера, с прошивкой в буфере обмена программы. Это необходимо сделать для того, чтобы убедиться, что программа у нас записалась без ошибок. Если нам требуется скачать прошивку, ранее записанную в МК, мы нажимаем иконку «READ», и считываем прошивку в буфер обмена.
Если же нам требуется сохранить эту прошивку на компьютере, мы должны нажать иконку «HEX» с изображением дискеты. Если у нас в памяти МК была ранее записана прошивка, мы стираем старую прошивку перед записью новой, путем нажатия на иконку «ERASE».
И наконец, последняя, самая сложная часть, иконка «FUSE», или выставление фьюзов. После того как мы прошили МК, мы должны выставить фьюзы, фьюз – биты, биты конфигурации. Все эти названия синонимы и означают одно и тоже. Разберем, что же мы видим после нажатия на кнопку «FUSE»:
Мы видим четыре окна без выставленных галочек. Не спешите здесь ничего нажимать, или рискуете залочить (заблокировать) МК! Будьте предельно внимательны или вам придется идти в магазин за новым микроконтроллером. Если, конечно, у вас нет для лечения МК сложного в сборке параллельного программатора, ну или не менее сложного реаниматора МК. Для начала нам требуется нажать во всех четырех окнах на кнопки «READ», то есть считать все четыре байта конфигурации. А их именно четыре, в каждом по восемь битов. Это слева направо LOCK (защитный байт), или байт с помощью выставления LOCK битов которого, мы защищаем прошивку от копирования. Дальше идут LOW (младший байт), HIGH (старший байт), EXT (дополнительный байт).
Еще один важный нюанс! Так уж повелось, что в МК AVR применяют и прямое, и инверсное выставление битов, в разных программах оболочках. Например, в Ponyprog мы должны при выставлении фьюзов выставить галочки там, где в Uniprof их нет, и наоборот. Как же не запутаться,? Ведь часто в статье, по которой мы собираем устройство, не указано, какое используется, прямое или инверсное представление битов. Ориентироваться нужно всегда по биту Spien. Он всегда запрограммирован, если мы имеем доступ к МК с помощью данных программаторов. Следовательно, если на нем стоит галочка, то и на других фьюзах, где должны стоять галочки, мы их ставим. Если же не стоит, то наоборот, убираем со всех фьюзов, где она не должна стоять. У нас будет посвящена разбору фьюз битов, отдельная подробная статья.
Приведу список фьюзов для программы Uniprof, которые нельзя изменять, иначе МК залочится и восстановить его будет проблематично
Никогда не изменяйте их, если вы прошиваете МК программатором Громова или программатором USBASP, или другим программатором, подключаемым по SPI интерфейсу.
Кто не понял, что да как, вот небольшой видос, поясняющий, как прошить МК:
Программатор Громова
Что такое программатор
Первый вопрос, который вы хотите задать в лоб — что же вообще такое «программатор»? Слово «программатор» образуется как ни странно, от слова «программа». А что такое программа? Если вспомнить, что такое телепрограмма и зачем она была нужна (кстати, сейчас до сих пор продается в киосках), то стает понятно, что программа телепередач — это расписание по времени этих самых телепередач. Значит программой можно назвать какие-то действия или события, которые будут выполняться одно за другим во времени, когда мы этого захотим или не захотим. Следовательно, программатор — это всего-навсего какое-то устройство, которые позволяет нам записывать либо читать программу. Изменить программу уже может только сам программист 😉
СМ Начинающим радиолюбителям переход от сборки простейших аналоговых устройств, типа мультивибраторов, к сборке устройств с применением МК бывает затруднен тем, что здесь мало просто развести и спаять устройство на печатной плате, нужно еще и залить прошивку в память микроконтроллера с помощью программатора. Как уже было написано в предыдущих статьях, микроконтроллер, до тех пор, пока мы не «залили» в него прошивку, является просто бесполезным куском кремния. И тогда начинающий радиолюбитель ищет информацию в интернете о сборке простого, но эффективного программатора, который помог бы ему взять быстрый старт в этом нелегком деле.
Программатор Громова
Итак, давайте разберем, что же такое вообще прошивание микроконтроллера (МК) с помощью программатора, и как оно осуществляется? Для того, чтобы прошить МК, нам потребуется связка из самого программатора, устройства, спаянного на печатной плате, и программа, называемая оболочкой, работающая с этим устройством.
Под каждый тип программатора чаще всего требуется своя программная оболочка. Для сборки программатора Громова не требуется программировать микроконтроллер. В данном программаторе он отсутствует. Этот программатор работает с двумя широко распространенными оболочками для прошивания: PonyProg и Uniprof. У нас будут посвящены отдельные обзоры на эти программки. Данный программатор подключается к СОМ порту. Единственным препятствием для его сборки может стать физическое отсутствие данного разъема на материнской плате вашего системного блока.
Почему именно системного блока? Потому что ноутбуки, а также современные модели материнских плат 2010 — 2011 года выпуска и выше часто имеют на контактах СОМ порта пониженное напряжение питания. Что это означает? Это означает, что вы можете собрать данный программатор, а он у вас не заработает. Но с компьютерами 2007 — 2008 года выпуска и старше, за исключением ноутбуков, данный программатор должен гарантированно работать. Подключение через переходники USB – COM не спасают в этом случае, так как при этом наблюдается в лучшем случае, сильное снижение скорости, в худшем, программатор вообще отказывается работать.
Схема программатора Громова
Давайте рассмотрим принципиальную схему программатора:
Давайте разберем, как выглядят данные радиодетали.
На фото ниже представлен разъем DB9:
Как мы видим, пины (выводы) этого разъема обозначены цифрами на нем. Если будут какие-то затруднения с определением какой штырек соответствует какому отверстию разъема, рекомендую вставить проволочку в отверстие пина разъема, перевести мультиметр в режим звуковой прозвонки и прикоснувшись одновременно щупами мультиметра к проволочке по очереди к каждому из штырьков на разъеме, вызвонить соответствие штырьков отверстиям. Это может потребоваться в случае, если вы подключаете разъем проводками к плате. Если разъем будет впаян непосредственно в плату, то эти действия не требуются.
У кого на панели разъемов материнской платы, находящейся в задней части компьютера, нет COM разъема, можно купить планки с таким разъемом. Но нужно убедиться что производители распаяли контроллер СОМ порта на материнской плате, и предусмотрели подключение шлейфа данной планки, непосредственно к плате. Иначе такой вариант вам не поможет. В качестве альтернативного варианта, могу предложить приобрести контроллер СОМ порта, размещенный на специальной плате расширения, которую устанавливают в PCI слот ПК
Также при желании, если вы захотите, чтобы кабель, подключаемый к СОМ порту, у вас отключался от программатора, можно открутив винты крепления, снять разъем с планки, и закрепить его в корпусе программатора. Но будьте внимательны, и после покупки прозвоните все жилы, на соответствие номерам, с обоих концов кабеля, потому что часто в продаже встречаются похожие внешне кабеля, имеющие перекрещенные жилы. Кабель для подключения к данному разъему, должен быть обязательно полной распайки, DB9F – DB9F, прямой, не перекрещенный, с другими кабелями разъем работать не будет.
Если же возникают проблемы с приобретением данного кабеля, можно взять и перекрещенный кабель или удлинитель 9M-9F, но в таком случае может потребоваться обрезать разъем с другого конца, и вызвонив жилки по пинам разъема подпаяться непосредственно к плате программатора. У меня, кстати, был как раз такой кабель — удлинитель, и мне пришлось обрезать разъем со второго конца. Не покупайте кабеля для прошивки телефонов через СОМ порт, они не годятся для наших целей, так как там неполная распайка жил.
Сборка программатора
Диоды берем КД522, КД510 или 1N4148. Вот так выглядит диод КД522
Будьте внимательны, диод имеет полярность включения. Другими словами, его не безразлично как впаивать, можно впаять и задом наперед, тогда программатор работать не будет. Как известно, диод имеет катод и анод. Катод промаркирован, в данном случае, черным колечком.
Ну с резисторами, я думаю, проблем не возникнет. Идете в радиомагазин и говорите продавцу: «Мне нужны резисторы 1 кОм 0.25 Ватт». Желательно взять импортные резисторы, так как у отечественных МЛТ идет большее отклонение от номинала.
Если вы владеете методом ЛУТ, то для вас не составит труда собрать программатор, по этой печатной плате. Ниже приведен скрин платы из программы Sprint Layout:
Если же вы до сих пор не освоили метод ЛУТ, тогда вам больше подойдет следующая плата, рисунок которой можно легко нарисовать маркером для печатных плат прямо на текстолите. Оба варианта печатных плат, вы сможете скачать в общем архиве, в конце статьи. Не забудьте зачистить и обезжирить плату перед нанесением рисунка. Выводы деталей на ней расположены не близко, и проблем при пайке не возникнет даже у новичков
Отличие платы от оригинальной схемы, в наличии светодиода индикации и токоограничительного резистора в цепи светодиода. Все выводы подписаны на плате. Слева номера выводов кабеля СОМ порта, которые нужно подпаять к плате, не подписанные номера жил можно заизолировать и не подпаивать. Справа идут пины для подключения к программируемому микроконтроллеру.
У меня был собран пять лет назад данный программатор на плате, сделанной от маркера. Так выглядела его печатная плата после лужения на этапе сборки в корпусе:
Извините за синюю изоленту)), тогда еще, 5 лет назад, термоусадочные трубки были в диковинку.
Разъем кабеля программатора с другого конца был обрезан, и проводки кабеля были впаяны непосредственно в плату. Сам кабель был закреплен металлическим хомутом. На фото видно, что кабель толстый, и если бы был не закреплен, при изгибании мог нарушиться контакт проводков, на плате программатора
Для подключения к микроконтроллеру устанавливаемому для прошивания на беспаечную макетную плату, я использовал цветные гибкие проводки. Соединенные с проводками такого же цвета, взятыми из жилок витой пары. Это сделано для того, чтобы с одной стороны жилки не переломились при эксплуатации, а с другой было обеспечено легкое подключение к макетной плате. Длина данных проводков должна быть максимум 20 — 25 См, во избежание ошибок от наводок, при программировании. Не используйте обычные неэкранированные провода, вместо СОМ кабеля! Замучаетесь с ошибками при прошивке.
Программируемый микроконтроллер нуждается во внешнем питании +5 Вольт, подаваемом на программатор. Для этой цели можно собрать стабилизатор на микросхеме 7805, с питанием от внешнего блока питания, либо поступить проще и воспользоваться кабелем и зарядным устройством с выходом USB, подпаяв жилки кабеля USB прямо к печатной плате.
Для справки: питание и земля, в разъеме USB идут по краям. Вот распиновка разъема USB:
При запитывании от USB порта компьютера, в случае замыкания жилок программатора +5 вольт (VCC) и земли (GND), вы рискуете сжечь южный мост материнской платы компьютера, ремонт такой материнской платы будет нецелесообразен. Я пользовался обоими вариантами для подачи питания, и через стабилизатор, и через кабель от зарядного USB. Еще один нюанс, после программирования микроконтроллера, чтобы микроконтроллер запустился, необходимо разорвать цепь RESET.
Это можно сделать просто выткнув проводок соединенный с пином RESET программатора. И тогда программа, зашитая в микроконтроллер начнет выполняться. Я решил сделать более удобное решение и поставил малогабаритный клавишный выключатель на разрыв цепи RESET.
Другими словами при его отключении, ток в этой цепи больше не течет и микроконтроллер начинает работу. Заместо клавишного выключателя можно воспользоваться любой малогабаритной кнопкой с фиксацией, либо поставить тумблер. Кому что подскажет фантазия 😉
Наверняка вы уже обратили внимание, что на схеме программатора Громова, есть какие-то незнакомые слова, а в частности VCC, GND, MISO, MOSI, SCK и RESET. Разберем, что же значат эти обозначения на примере микроконтроллера Attiny 2313.
В данном случае изображена очень распространенная и недорогая микросхема: микроконтроллер AVR Tiny (он же Аttiny) 2313. Ножки микросхемы, как мы видим, имеют свой номер. Нумерация идет против часовой стрелки, от ключа в виде точки, расположенной в левом верхнем углу корпуса микроконтроллера. Ниже на рисунке пример того, как идет нумерация на микросхемах в корпусе DIP:
В первую очередь нас интересуют перечисленные выше шесть ножек. Назначения всех остальных мы вкратце коснемся в конце статьи.
VCC. На эту ногу мы подаем напряжение питания микросхемы. Стандартом является 5 Вольт. Допустимо отклонение в большую сторону, до 5.5 Вольт. Напряжение свыше 6 Вольт, может привести к порче микросхемы. Отклонение в меньшую сторону более допустимо. Есть версии микроконтроллеров Tiny 2313V, которые могут работать даже от двух пальчиковых батареек или аккумуляторов, или от напряжения в 2.4 Вольта.
GND. Ну это всем знакомая и известная “земля”, она же ”масса”, и она же минус питания. Данный контакт является общим для всех устройств, которые имеют подключение друг к другу. Если вы соединяете, какие-либо блоки устройства между собой, их земли следует объединить. В данном случае, земля микроконтроллера, объединяется с землей программатора.
MISO. Сокращение от Master – In – Slave – Out. По этой линии передаются данные от микроконтроллера к программатору.
MOSI. Сокращение от Master – Out – Slave – In. По этой линии тоже передаются данные от программатора к микроконтроллеру.
SCK. На этой линии формируется тактовый сигнал.
RESET. Данный вывод используется для сброса микроконтроллера после стирания одиночным импульсом. Если RESET будет отключен, путем ошибочного выставления определенного фьюза, (о выставлении этого, и других фьюзов мы поговорим в следующих статьях) мы не сможем стереть и перепрошить микроконтроллер, через интерфейс SPI.
Достаточно подсоединить эти перечисленные 6 пинов программатора, к 6 ножкам микроконтроллера, и мы сможем прошить МК.
Рассмотрим остальные ножки МК:
У микроконтроллера Tiny2313 3 порта: А (А0-А2, 3 ножки), B (В0-В7, 8 ножек) D (D0-D6, 7 ножек), всего насчитывается 18 используемых в качестве ножек портов ввода — вывода. Каждую из этих ножек можно сконфигурировать отдельно на ввод и на вывод. Не являются ножками портов, только земля (GND) и питание (VCC).
Ниже рассмотрено дополнительное назначение некоторых ножек МК:
OC1A И OC1B. Ножки для формирования ШИМ (Широтно – импульсная модуляция) сигнала, таймер 1.
OC0A и OC0B. Ножки для формирования ШИМ сигнала, таймер 0.
AIN0 и AIN1. Ножки для подачи аналогового сигнала на микроконтроллер.
XTAL1 и XTAL2. Ножки для подключения кварцевого резонатора, для тактирования от него.
RXD и TXD. Линии подключения МК по интерфейсу UART.
Я надеюсь, данная статья будет полезна начинающим любителям микроконтроллеров, и позволит собрать программатор, который будет долгое время радовать вас своей работой.