Схема программатора для atmega8
Поиск новых сообщений в разделах Все новые сообщения Компьютерный форум Электроника и самоделки Софт и программы Общетематический. Нужна схема программаторов для Atmega8, Atmega16 и Atmega Возможность программировать 3В и 5В схемы Светодиодная индикация режимов работы. Данный дивайс можно легко перепрошить и заставить работать как STK или AVR , либо при надобности превратить в виртуальный компорт. С поставленной задачей должен справится любой AVR программатор.
Поиск данных по Вашему запросу:
Схема программатора для atmega8
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
Содержание:
- Программатор AVR своими руками
- Primary Menu
- Программатор atmega8, attiny2313 своими руками
- USB программатор своими руками на микроконтроллере Atmega8.
Схема - Please turn JavaScript on and reload the page.
- Схема USB программатора на Atmega8 своими руками
- Делаем простой USB программатор USBTinyISP
- Делаем COM программатор для AVR микроконтроллеров.
- USBasp программатор микроконтроллеров AVR на Atmega8 своими руками
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: ДОКТОР AVR! 🚑 Лечим микроконтроллеры
Программатор AVR своими руками
Данной информации вполне хватит чтобы прошить большинство моделей AVR микроконтроллеров не только в Linux, но и в других ОС. Для того чтобы записать программу в AVR микроконтроллер вам понадобится программатор. Программатор — это небольшая электронная схема, которая позволяет подключить микроконтроллер к одному из портов компьютера COM, LPT, USB для последующего считывания и записи прошивки программирования.
Существует достаточно много разнообразных конструкций программаторов для AVR микроконтроллеров, которые подключаются к разным портам компьютера. Наиболее надежный и удобный вариант — это программатор что подключается к USB-порту, поскольку в новых настольных компьютерах и ноутбуках уже не устанавливают COM и LPT порты.
В готовых устройствах программатор подключается к микроконтроллеру посредством интерфейса ISP In System Programming — интерфейс внутрисистемного программирования. ISP интерфейс представляет собою несколько проводников по которым поступает тактовый сигнал и данные для связки программатора с микроконтроллером. Как правило ISP интерфейс размещают на платах в виде десяти или шести штырьков, к которым посредством подходящего коннектора через шлейф подключается программатор.
Для внутрисхемного программирования микроконтроллера достаточно всего 4 пина, поскольку питание микроконтроллера может осуществляться от самой схемы где он установлен. Как подключить программатор к микросхеме-микроконтроллеру AVR если он не впаян в схему? Такое устройство есть сейчас в продаже во многих отечественных и зарубежных интернет-магазинах, так что с покупкой проблем не должно возникнуть.
Данный программатор безопасен в использовании, имеет небольшие размеры и поддерживается большинством программ для прошивки микроконтроллеров AVR. Для Linux никаких драйверов устанавливать не нужно, после подключения программатора к USB порту устройство сразу же определится и будет готово к использованию. Ниже приведу распиновку коннекторов программатора USB ISP — она нам потом пригодится при подключении к микроконтроллеру. К тому же в интернете достаточно много ресурсов по данному свободному программатору, есть много готовых разводок печатных плат, в том числе и в программе SprintLayout, поэтому подробно в данной статье останавливаться на этом не будем.
Этот программатор еще называют «программатором Громова», в честь того кто придумал эту схему, создателя программы Algorithm Builder графическая среда для программирования AVR под Windows используя алгоритмический язык — Г.
Для сборки такого программатора потребуется минимум деталей — 3 диода, 7 резисторов, разъем DB-9 или DB в зависимости от того какой ответный разъем установлен у вас в компьютере и коннектор ISP для подключения к микроконтроллеру или же просто несколько проводников к чипу. Диоды в схеме можно использовать любые маломощные. Как мы знаем, LPT порт компьютера предназначен для подключения локального принтера Local Printer Port , но тем не менее его часто используют для подключения различных устройств и самоделок.
В данном случаем мы можем его использовать для программирования AVR микроконтроллеров, собрав для данной цели очень простую схему что приведена ниже. Как видим, схема еще проще чем в варианте с программатором Громова , здесь нам нужны всего лишь 4 маломощных резистора и разъем папа, со штырьками для подключения к LPT порту компьютера.
Все детали и соединения можно разместить в корпусе LPT-разъема, а для подключения к микроконтроллеру вывести шлейф с коннектором под ISP-интерфейс или же просто необходимые проводники для подключения к микро-чипу. В качестве источника питания микроконтроллера можно использовать батарейки или блок питания со стабилизатором, это будет наиболее безопасно как для порта компьютера, так и для чипа. О том как использовать источники питания для AVR микроконтроллера мы уже рассматривали.
Программа UniProf Windows — avr-programming-uniprofjun Будьте предельно внимательны и осторожны при сборке и использовании программаторов с использованием COM или LPT порта компьютера, простой ошибкой можно запросто подпалить эти порты. Для нормальной работы таких программаторов нужно стараться использовать по возможности максимально короткие проводники от разъема к схеме программатора и микроконтроллеру.
Микропроцессор компьютера желательно чтобы имел частоту не более ГГц, а в качестве ОС для программирования чипов желательно использовать Win или WinXP.
В следующей статье мы разберемся как подключить разные модели AVR микроконтроллеров к программатору, узнаем где брать информацию о распиновке микроконтроллеров. Спасибо, Автор! Очень помогла ваша статья. ISP интерфейс на плате. Программатор с использованием COM-порта Этот программатор еще называют «программатором Громова», в честь того кто придумал эту схему, создателя программы Algorithm Builder графическая среда для программирования AVR под Windows используя алгоритмический язык — Г.
Программатор с использованием LPT-порта Как мы знаем, LPT порт компьютера предназначен для подключения локального принтера Local Printer Port , но тем не менее его часто используют для подключения различных устройств и самоделок. Расположение пинов для разъемов LPT-порта. Программное обеспечение и заметки Подключив COM или LPT программатор к микроконтроллеру нужно не забыть подать питание на сам микрочип.
Комментарии к публикации 1 : 1 vibpelm 17 Ноябрь
Primary Menu
С развитием компьютерной техники, с каждым разом становится все меньше и меньше компьютеров оснащенных COM и LPT портами. Это в свою очередь вызывает затруднения, в частности у радиолюбителей, связанные с сопряжением средств программирования микроконтроллеров с персональным компьютером. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK v2. USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита по технологии ЛУТ.
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый . Соединение согласно схеме ниже.
Программатор atmega8, attiny2313 своими руками
Данный программатор не нуждается в первичном программировании — протравил печатную плату, спаял и пользуйся. Автор данного устройства указан в конце статьи, а здесь приведу небольшую выдержку из руководства, чтоб было понятнее, о чём речь: правильный USB-программатор — вещь, фактически, универсальная. Его можно воткнуть в любой современный компьютер и без проблем перешить нужный микроконтроллер с любым объемом FLASH-памяти на довольно высокой скорости. Который не глючит при переходе от одного ПК к другому или смене ОС. Правильный — это такой, драйвера на который есть для любой современной широко используемой версии ОС, и эти дрова неглючные. Каждый определит еще с десяток критериев правильности для себя лично, но вышеперечисленные — основные, без соблюдения которых нормально работать с микроконтроллером невозможно будет в принципе. Условно их можно разделить на две большие группы. Первая группа включает в себя программаторы, построенные на основе микроконтроллеров в частности, AVR. Двое из знакомых, одаренных сиими дывайсами, в восторге.
USB программатор своими руками на микроконтроллере Atmega8. Схема
Самый простой вариант программатора для AVR это пять проводков, припаиваемых к порту контроллера и втыкаемых в LPT порт. Не спорю, можно и так. Но я все же не рекомендую этот способ. Даже схему подключения давать не буду — если надо будет сам найдешь.
Описание программатора.
Please turn JavaScript on and reload the page.
Данной информации вполне хватит чтобы прошить большинство моделей AVR микроконтроллеров не только в Linux, но и в других ОС. Для того чтобы записать программу в AVR микроконтроллер вам понадобится программатор. Программатор — это небольшая электронная схема, которая позволяет подключить микроконтроллер к одному из портов компьютера COM, LPT, USB для последующего считывания и записи прошивки программирования. Существует достаточно много разнообразных конструкций программаторов для AVR микроконтроллеров, которые подключаются к разным портам компьютера. Наиболее надежный и удобный вариант — это программатор что подключается к USB-порту, поскольку в новых настольных компьютерах и ноутбуках уже не устанавливают COM и LPT порты.
Схема USB программатора на Atmega8 своими руками
Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Миниатюрный USB программатор для AVR микроконтроллеров Программирование микроконтроллеров Из песочницы Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам.
Схема USB программатора для микроконтроллеров AVR, выполнена на микроконтроллере Atmega8. Схема очень надежная и имеет одну очень.
Делаем простой USB программатор USBTinyISP
Схема программатора для atmega8
На этой плате хватит места и для программируемых микроконтроллеров в корпусах до DIP Этот программатор заметит Вам плату Arduino, он более удобен для экспериментов с различными микроконтроллерами и микропрограммами для них скетчами. Остальные детали, которые вы увидите на схеме для работы универсального, самодельного, простого программатора не существенны.
Делаем COM программатор для AVR микроконтроллеров.
ВИДЕО ПО ТЕМЕ: лекция 341. Atmega8 прошивка ПЗУ
Как-то на днях делал переходник для своего программатора AVR я ошибся с распиновкой выводов и заметил когда уже протравил печатку, и тогда решил найти распиновку, и опубликовать у себя на сайте что-бы не забывать :. В данной работе описывается конструкция параллельного программатора, единственной задачей которого является восстановление значений фьюзов микроконтроллера «по умолчанию», то есть записанных на заводе. К достоинствам прибора следует отнести его простоту, автономность независимость от ПК , а также возможность постоянно модернизировать и усовершенствовать, в зависимости от поставленных задач. Недостатком является, пожалуй, необходимость задействования достаточно большого количества линий связи с микроконтроллером, но иначе нельзя, ведь это — параллельное программирование. Поиск схем параллельного программатора по интернету и в печати не дал практически ничего, что удовлетворяло бы заданным условиям простоты и повторяемости.
Схема программатора приведена на рисунке ниже. Предохранитель F1 служит для защиты линий питания порта USB от случайного замыкания по цепям питания программатора.
USBasp программатор микроконтроллеров AVR на Atmega8 своими руками
В конце поста размещена ссылка с необходимой документацией для изготовления программатора USBasp своими руками. Программатор USBasp, благодаря своей простоте в изготовлении и использовании недорогих и широкодоступных элементов, стал очень популярным среди радиолюбителей. Его параметры работы не уступают профессиональным и дорогим программаторам микроконтроллеров AVR. Перед началом работы, стоит ознакомиться с последовательностью всех выполняемых действий, а именно:. Существует много версий USBasp программатора, но все они основаны на главной схеме, автором которой является Thomas Fischl. Прошивка микроконтроллера программатора также является его авторством.
Вот продолжение эпопеи по прошивке МК, разбираем подключение программатора. Самый простой и доступный способ прошить микроконтроллер Atmel, например ATtiny13 или ATmega8, это собрать собственными силами программатор stk Очень хорошо и подробно об этом написано здесь и еще здесь.
java | ||||
Карма: 9 |
| |||
OlegTurbin | ||||
Зарегистрирован: Вс мар 13, 2011 13:39:06 |
| |||
kotyk7 | ||||
Карма: 3 |
| |||
Viver | |||
Зарегистрирован: Чт мар 25, 2010 00:28:14 |
| ||
OlegTurbin | ||||
Зарегистрирован: Вс мар 13, 2011 13:39:06 |
| |||
OlegTurbin | ||||
Зарегистрирован: Вс мар 13, 2011 13:39:06 |
|
Топ-10 лучших программаторов и дебаггеров с Алиэкспресс / Подборки, перечисления, топ-10, и так далее / iXBT Live
В современных электронных схемах все чаще и чаще применяются микроконтроллеры. Да что там говорить, если сегодня не найти даже обыкновенную елочную гирлянду без микроконтроллера внутри — он задает различные программы иллюминации.
Я впервые столкнулся с микроконтроллерами, когда собирал свой первый импульсный металлоискатель Клон. Вот тогда-то и выяснилось, что контроллер без прошивки — это просто кусок пластмассы с ножками.
А чтобы залить нужную прошивку в АТМЕГу, никак не обойтись без программатора. Далее мы рассмотрим две самые простые и проверенные временем схемы программаторов.
Схема первая
С помощью этого программатора можно прошивать практически любой AVR-контроллер от ATMEL, надо только свериться с распиновкой микросхемы.
СОМ-разъем на схеме — это «мама».
На всякий случай привожу разводку печатной платы для атмеги8 (), хотя такую примитивную схему проще нарисовать от руки. Плату перед печатью нужно отзеркалить.
Файл печатной платы открывать с помощью популярной программы Sprint Layout (если она у вас еще не установлена, то качайте 5-ую версию или лучше сразу 6-ую).
Как понятно из схемы, для сборки программатора потребуется ничтожно малое количество деталек:
Вместо КТ315 я воткнул SMD-транзистор BFR93A, которые у меня остались после сборки микромощных радиомикрофонов.
А вот весь программатор в сборе:
Питание (+5В) я решил брать с USB-порта.
Если у вас новый микроконтроллер (и до этого никто не пытался его прошивать), то кварц с сопутствующими конденсаторами можно не ставить. Работа без кварцевого резонатора возможна благодаря тому, что камень с завода идет с битом на встроенный генератор и схема, соответственно, тактуется от него.
Если же ваша микросхема б/у-шная, то без внешнего кварца она может и не запуститься. Тогда лучше ставьте кварц на 4 МГц, а конденсаторы лучше на 33 пФ.
Как видите, я кварц с конденсаторами не ставил, но на всякий случай предусмотрел под них места на плате.
Заливать прошивку лучше всего с помощью программы PonyProg ().
Прошивка с помощью PonyProg
Заходим в меню Setup -> Calibration -> Yes. Должно появиться окошко «Calibration OK».
Далее Setup -> Interface Setup. Выбираем «SI Prog API» и нужный порт, внизу нажимаем «Probe», должно появиться окно «Test OK». Далее выбираем микроконтроллер «Device -> AVR micro ATmega8».
Теперь втыкаем микроконтроллер в панельку программатора, и подаем питание 5 вольт (можно, например, от отдельного источника питания или порта ЮСБ). Затем жмем Command -> Read All.
После чтения появляется окно «Read successful». Если все ок, то выбираем файл с нужной прошивкой для заливки: File -> Open Device File. Жмем «Открыть».
Теперь жмем Command -> Security and Configuration Bits и выставляем фьюзы, какие нужно.
Тщательно все проверяем и жмем «OK». Далее нажимаем Command -> Write All -> Yes. Идет прошивка и проверка. По окончании проверки появляется окно «Write Successful».
Вот и все, МК прошит и готов к использованию!
Имейте в виду, что при прошивке с помощью других программ (не PonyProg) биты могут быть инверсными! Тогда их надо выставлять с точностью до наоборот. Определить это можно, считав фьюзы и посмотрев на галку «SPIEN».
Очень многие люди, начиная свое знакомство с микроконтроллерами, испытывают трудности с инструментом для их программирования. И это реально может охладить творческий пыл. Да что там говорить, я и сам после сборки своего первого Arduino долго пытался «вдохнуть» жизнь в «железяку». Здесь очень хорошо описаны мучения. Конечно, самый простой вариант «5 проводков» — это здорово! Но, в моем окружении (как я понимаю, и у многих) дома, на работе в компах и ноутбуках напрочь отсутствует LPT-порт! Да и COM-порт становиться достаточно редкой «экзотикой». Что же делать? Естественно, на сцене появляется вездесущий USB. Да, готовый программатор для AVR легко можно купить. Но цена на них неадекватно завышена (у нас в г. Минске, на радиорынке что-то около 30..50 у.е.). Как говорил Киса Воробьянинов — «ОДНАКО!!!». Хорошо, что есть братья-китайцы, с нормальными ценами. Только придется прилично подождать. Да и судя по последним тенденциям, ОГРОМНЫЙ поток посылок из Китая ОЧЕНЬ заинтересовал государственные органы… И боюсь, что в скором времени превратится в жалкий ручеек
Да и к тому же, как говорит мой хороший друг: «Это не наш метод. Мы сделаем сами, пусть по выходу окажется и в два раза дороже!».Спешу обрадовать, что затраты на изготовление — мизерные. Самые дорогие компоненты — это Attiny2313 (примерно 2$) и разъем USB.
Итак, приступим. Нам нужен программатор который максимально прост и относительно дешев, подключается по USB, и при этом, поддерживается всеми современными ОС (LINUX, WINDOWS, MAC OSX) через программу avrdude. Изначально я рассматривал для повторения самый «примитивный» вариант. Дальнейшие поиски меня привели к — USBTinyISP!!! Стремясь к компактности, я выбрал для «клонирования» версию 1 (без буферной микросхемы). Ниже схема программатора.
Схема осталось оригинальной, за исключением перемычки для программирования (мне эта «фишка» абсолютно не нужна). А вот печатку я переделал под свои нужды.
(Номиналы деталей можно увидеть в SprintLayout при наведении курсора на нужный элемент)
Нам понадобится:
— кусок текстолита 63х33 мм — МК Attiny2312 с колодкой под нее — Разъем USB (тип B) — Разъем 10х2 (как он правильно называется ???? Не знаю..) — 4 резисторa 1.5 кОм (smd, маркировка 152) — 1 резистор 1.5кОм (выводной 0.125Вт) — 2 резисторa 33 Ом (smd, маркировка 330) — 1 резистор 10к (smd, маркировка 103) — 2 стабилитрона на 3.6В — 2 конденсатора 22 pF (smd) — 1 конденсатор 0.1 мF (smd) — 2 светодиода (зеленый и красный) — кварц на 12Mhz — электролитический конденсатор 100x16V — самовосстанавл. предохранитель (я выпаял из старой мат. платы). Если нету, можно поставить перемычку (на www.ladyada.net/ так и сделали). — два штырька для перемычки
Естественно, ЛУТ.
После ЛУТа
После травления:
Мой любимый сплав Розе
Паяем SMD элементы
Теперь перемычки и оставшиеся элементы
Готово!
Небольшое лирическое отступление. Давным давно, в 2000-х годах у меня один приятель жаловался со сложностями в поиске НОРМАЛЬНОЙ работы (он работал водителем). Дело в том, что у него был на тот момент очень маленький стаж вождения :). Чувствуете подвох? На нормальную работу без стажа не берут. Стажа нет, потому что на работу не берут… И так замкнутый круг.
Так и в нашем случае, для изготовления программатора нужно запрограммировать контроллер… т.е. нужен программатор. Слава богу, это нужно проделать всего один раз. Выходов несколько: — берем пиво и навещаем приятеля с программатором
— ищем компьютер с LPT-портом и паяем «5-проводков» — нету LPT, но есть COM? Прекрасно, делаем программатор Громова! — есть люди, предлагающие свои услуги по прошивке МК за небольшую «денюжку» — другие вариантыУ меня ситуация более, чем шикарная — у меня уже был программатор AVR910. Так, что вся процедура заняла не более минуты. «Прошиваем» МК с помощью AVRDUDE. (Все необходимое для этого сложено в архив и находиться в каталоге Firmware
).
avrdude.exe -p t2313 -c avr910 -P COM12 -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m
Кому менее повезло и пришлось прибегнуть к «5 проводкам» (кстати, официально он называется DAPA):
avrdude.exe -p t2313 -c dapa -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m вот, вариант когда программатор USBTinyISP используется для прошивки себе подобного, а-ля «овечка Долли»:
avrdude.exe -p t2313 -c usbtiny -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m
Почему вариант с AVRDUDE более предпочтителен для начинающих? При выполнении вышеприведенных команд сразу же прошиваются и нужные фьюзы, т.е. ухера.. «убить» микроконтроллер достаточно сложно.
Итак, устанавливаем на плату свежепрошитый микроконтроллер. Еще раз советую проверить изготовленную плату на качество пайки, отсутствие «коротышей» и тому подобных неприятностей. И только если ВЫ на 100% уверены, подключаем наш программатор к разьему USB. После сообщения об обнаружении нового оборудования (речь идет о Windows), ставим как обычно драйвера. Они сложены в архиве в папке usbtinyisp w32 driver v1.12
.
Проверяем, что все хорошо, заглянув в список оборудования: Если Вам удалось увидеть такую же картинку, то поздравляю! Все готово. У Вас теперь есть USB программатор для AVR!!! Не знаю как Вы, но мне ОЧЕНЬ захотелось сразу же опробовать изделие в действии. А давайте прошьем бутлодер в Ардуино.
Запускаем Arduino IDE, [Сервис]->[Программатор]->[USBTinyISP]
Жмем [Сервис]->[Записать загрузчик]
Буквально проходит 7 секунд, мерцание красного светодиода на программаторе… и ОПА!!! Все готово. Получите, распишитесь
А теперь небольшой БОНУС, расширяющий область применения нашего программатора. А именно, маленький адаптер для DIP корпусов наиболее распространеных AVR контроллеров. Мне приходилось иметь дело с ATTiny13/45 — 8 ножек, Attiny 2313 (тут смайлик)- 20 ножек, Atmega 8/48/168 — 28 ножек. За основу берем схему соединения колодок (схема откуда-то из инета):
Для простоты я не использовал сигналы тактирования XT1. (Для всяких неприятных случаев, у меня есть собранный FUSE Doctor :)) И еще, я не ставил на адаптер колодку под Atmega16 (DIP-40). Пока у меня не возникало необходимости в программировании таких контроллеров.
Ну, если осилили изготовление программатора, то сделать такой адаптер — вообще плевое дело!
Кстати, некоторые неиспользуемые контакты я просто-напросто удалил, во избежание ненужного контакта
Приклеиваем (для удобства) соответствующие надписи:
И вот, все в сборе, программатор и адаптер! Пользуйтесь на здоровье. Весь материал (печатку, прошивку, драйвера и фото) для повторения можно забрать одним архивом тут.
Схема вторая
Еще одна версия программатора, с помощью которого можно залить прошивку в микроконтроллер АТМЕГа (так называемый программатор Геннадия Громова). Схема состоит всего из 10 детатей:
Диоды можно взять любые импульсные (например, наши КД510, КД522). Разъем — «мама». Питание на МК (+5В) нужно подавать отдельно, например, от того же компьютера с выхода USB.
Все это можно собрать навесным монтажом прямо на разъеме, но если вы крутой паяльник и знаете, что такое smd-монтаж, то можете сделать красиво:
Программировать только программой Uniprof. Тут хорошее описание программы: https://www.getchip.net/posts/025-uniprof-universalnyjj-programmator-dlya-avr/
Алгоритм прошивки с помощью программатора Громова
Программатор с установленной микросхемой подключаем к СОМ-порту компьютера, затем запускаем Uniprof, затем подаем питание на микроконтроллер. И первым делом проверяем, читаются ли фьюз-биты.
Если все ок, выбираем файл с нужной прошивкой и жмем запись.
Будьте предельно внимательны и осторожны, потому что если глюканет при записи фьюзов, то МК либо на выброс, либо паять схему доктора (а она сложная). Если поменяете бит SPIEN на противоположный — результат будет тот же (к доктору).
Программатор avr для windows 10 своими руками.
Миниатюрный USB программатор для микроконтроллеров AVR. Управление платойВ Интернете можно найти много схем USB-программаторов для микроконтроллеров AVR. Всех их можно разделить на три группы: программаторы на базе микроконтроллеров AVR, в которых интерфейс USB реализован программно, программаторы на базе микроконтроллеров AVR с аппаратной поддержкой USB и программаторы на базе микросхем FT232, работающие в режиме BitBang.
Одним из самых простых в воспроизведении USB-программаторов AVR является USBasp. Он построен на микроконтроллере Atmega8 (или Atmega48), требует минимум внешних компонентов, имеет несколько готовых разводок печатных плат и оболочек для программирования, а также может работать под Linux и MacOS.
Правда есть одно НО! Чтобы оживить этот программатор, нужно записать прошивку в микроконтроллер, а значит, у вас уже должен быть какой-то рабочий AVR программатор, или хотя бы возможность его где-то взять.
Схема программатора USBasp представлена на рисунке ниже. Я взял за основу схему с сайта автора http://www.fischl.de/usbasp и немного изменил ее. Диоды VD1 — VD3 добавлены для снижения напряжения питания и согласования логических уровней микроконтроллера и порта USB без стабилитронов. Схемы, подключенные к UART, выкинули, так как не использовались, и добавили перемычку JP1.
Расскажу о назначении светодиодов и перемычек.
HL1 сигнализирует о том, что идет процесс программирования. Горит во время записи прошивки.
HL2 указывает на то, что программатор находится в рабочем состоянии. Он загорается при подаче питания.
JP1 закорачивает цепочку диодов, что позволяет изменять напряжение на разъеме для программирования с 3 до 5 В. Однако без стабилитронов это будет работать не со всеми компьютерами. Многие компьютеры не распознают USBASP, если он имеет 5-вольтовые логические уровни.
JP2 изменяет частоту сигнала SCK. При открытой перемычке частота SCK будет 375 кГц, при закрытой перемычке — 8 кГц. Это требуется для программирования микроконтроллеров с низкими тактовыми частотами (менее 1,5 МГц).
JP3 соединяет контакт RESET с разъемом для программирования. Это необходимо для того, чтобы запрограммировать сам микроконтроллер программатора.
JP4 подключается к разъему для программирования +5 В от порта USB. Эта функция может понадобиться для питания платы программирования от программатора.
Для сборки программатора USBASP потребуются следующие комплектующие:
Изготовление платы методом ЛУТ не представляет особой сложности — плата односторонняя, дорожки широкие. При печати не нужно зеркально отображать рисунок платы.
После сборки платы ее необходимо тщательно проверить на наличие коротких замыканий. Особенно в пищевых цепях. Если все в порядке, то можно писать прошивку в микроконтроллер. Вы можете найти его в конце статьи. На сегодняшний день это самая последняя версия, но на всякий случай загляните на сайт автора.
Вы можете запрограммировать микроконтроллер прямо на плате. Для этого замкните перемычку JP3 и JP4, подключите USBasp к компьютеру для подачи питания и подключите программатор к разъему BH-10. Остальные шаги зависят от того, какой программатор вы используете.
После того, как микроконтроллер запрограммирован, биты Fuse нужно настроить так, чтобы он тактировался от внешнего кристалла. Значения битов Fuse:
atmega8 HFUSE=0xc9 LFUSE=0xef
atmega88 HFUSE=0xdd LFUSE=0xff
Прошил USBASP родным программатором Atmel. В моей Atmel Studio окно с битами Fuse выглядело так.
Если прошивать USBasp программатором FT232, то в SinaProg образ Fuse bits будет таким.
Разницы нет, так что не спрашивайте, какие Fuse биты ставить.
Для работы с программатором под Windows необходимо установить драйвера. Их можно скачать с сайта автора. Для операционных систем Linux и MacOS X USBasp не требует драйвера.
Подключаем собранный и запрограммированный USBasp к компьютеру. Операционная система уведомит нас об обнаружении нового оборудования и предложит установить драйвера.
Выберите вариант — установить из указанного места
Укажите папку, в которой находятся драйвера для программатора.
Система сделает небольшую паузу, после чего начнется процесс установки.
Если все прошло успешно, мастер установки оборудования закроется.
И Windows уведомит нас об установке нового оборудования
Теперь программатор можно использовать.
Описанная процедура может немного отличаться в зависимости от версии операционной системы, но суть одна — подсунуть драйвера из папки.
Есть несколько программ для работы с USBasp — avrdude, eXtremeBurner, Khazama и.. некоторые другие.
На мой взгляд, самой удобной программой для USBaspa является Khazama. Он имеет простой и интуитивно понятный оконный интерфейс. Процесс программирования микроконтроллера осуществляется в три этапа.
Для программирования микроконтроллеров AVR требуется программатор. Проще всего сделать программатор для COM или LPT. Но я работаю на ноутбуке, а сейчас только порты USB ставят. Так что есть необходимость достать программатор для AVR через USB. Сейчас я бы, скорее всего, купил этот программатор. На ebay они стоят недорого, наверное даже дешевле, чем покупать детали, делать плату и все паять. Хотя если посмотреть с другой стороны, то заказ с ebay будет идти по почте минимум месяц, а собрать avr usb программатор своими руками, в силу его простоты, можно за вечер. Более того, если начинающий радиолюбитель сам соберет программатор, то помимо программатора он получит опыт, бесценный опыт, а это дорогого стоит.
Это мой второй USB программатор для AVR, первый сделал программатор USB-asp, но он мне не очень понравился, так как иногда отваливался от компа, хотя на другом компе ничего подобного не наблюдалось. Решил попробовать собрать другой программатор, и мой выбор пал на программатор AVR910. У этого программатора немного другая схема подключения USB, и как потом выяснилось, на моем компьютере все работает очень хорошо. Я забыл о проблемах, которые у меня были с моим прошлым программистом. AVR910 программатор, описанный в этой статье, на данный момент является моим основным программатором AVR.
Схема и прошивка взяты с сайта проекта (http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm).
Программатор питается от порта USB. Чтобы не требовалось соответствие уровням линий данных USB-порта (3,6 В), микроконтроллер питается от 3,6 В. Для получения 3,6В из 5В в порту USB используется схема из двух напрямую соединенных последовательно кремниевых диодов. На каждом диоде падает 0,7В, всего 1,4В. Диоды должны быть кремниевые, использование диодов Шоттки не допускается, так как на них падает менее 0,7В. Выходы разъема программирования подключены через резисторы 330 Ом для согласования уровней. Устройство работает на микроконтроллере AtMega8-16 на тактовой частоте 12МГц. На схеме показаны номера контактов микроконтроллера в DIP-корпусе, хотя я разводил плату в SMD-корпусе под названием TQFP. Программатор имеет индикацию записи, чтения, питания. Также у этого программатора есть выход, на котором всегда присутствует меандр, с частотой 1МГц. Это очень крутая и полезная штука для восстановления микроконтроллеров, у которых из-за ошибочно запрограммированных Fuse-битов настроены часы от внешнего источника. тактовые импульсы. Я восстанавливал микроконтроллеры таким образом несколько раз. Нужно просто посмотреть в даташите на конкретный микропроцессор AVR, какой пин подключен к внешнему источнику тактового сигнала, и припаять к этому пину исток меандра. Подключите программатор и перепрограммируйте предохранитель. Это очень просто, но иногда очень помогает!
Имеющиеся варианты реализации печатных плат для программатора AVR910 меня не совсем устроили, и я начертил свой вариант (скачать файлы проекта можно в конце статьи).
Защитный рисунок на фольгированном стеклотекстолите наносится с помощью лазерного принтера и утюга.
После травления получилась такая красота. Я не сдержался и поцарапал тонер о дорожки между ножками микросхемы. Мне не терпелось увидеть, работают они или нет.
Для простоты использования я отметил назначение каждого вывода программатора AVR910. Для этого я нарисовал небольшую табличку, которую распечатал на глянцевой фотобумаге и наклеил на плату программатора с помощью двустороннего скотча.
Выкладываю групповую заготовку для пластины для печати на фотобумаге размером 10х15 в архиве со всеми файлами для этой записи. Скачать его можно в конце этой статьи.
Прошивку для программатора можно скачать по ссылке в конце статьи.
Fuse биты устанавливаются согласно рисунку ниже:
Как запрограммировать микроконтроллер AtMega8 для программатора AVR910 можно посмотреть в моем видео:
Корпус для программатора AVR910 я не нашел, хотел чтобы программатор оставался небольшой по размеру, и изначально я использовал голую, неизолированную плату. Но потом купил широкую прозрачную термоусадку и воткнул в нее программатор. Что получилось в итоге вы можете видеть на фото. На мой взгляд, это довольно интересно и даже мило.
С термоусадкой вроде все просто, а вот просверлить отверстия под штифты я заморочился. Если проколоть отверстия шилом, то при усадке термоусадочная трубка рвется начиная с этих отверстий. Я даже испортил несколько заготовок, но в конце экспериментов у меня все получилось. В итоге отверстия я не протыкал, а проплавлял горячим паяльником с жалом с иглой. По краям платы припаял концы термоусадочной трубки. Паяются они очень просто — оба конца трубки нагреваются, затем быстро, пока не успели остыть, зажимаются и держат зажатыми до полного остывания. Получается достаточно прочный стык. Я зажала его медицинским зажимом, термоусадка даже оставила следы насечек на губах.
При первом подключении программатора AVR910 к компьютеру в системе появится новое устройство AVR910. Теперь нужно установить драйвера и можно работать.
Я работал с этим программатором на 32-битных системах Windows XP и Windows 7. Все работает очень хорошо и проблем нет. У меня были проблемы, когда я пытался установить драйвера для 64-битной Windows 7. Дело в том, что этот драйвер не имеет цифровой подписи Microsoft, а 64-битная Windows 7, будучи более безопасной, блокирует все драйвера без цифровой подписи. Эту блокировку можно отключить, но это не совсем просто….. Так что имейте в виду.
Заливаю прошивку в микроконтроллер с помощью программы AvrOsp2. Он очень прост, не требует установки, бесплатен, поддерживает программатор AVR910 и огромное количество микроконтроллеров AVR, хорошо работает и имеет очень удобное меню для работы с FUSE битами. В общем классная программа, мне очень нравится, рекомендую! В видео ниже я показал процесс установки драйверов для AVR910, как настроить и пользоваться программой AvrOsp2.
В моей версии программатора я не устанавливал выходной электролитический конденсатор на 22 мкФ, который устанавливается со стороны, противоположной дорожкам, и впаивается в отверстия, которые находятся возле разъема USB. Возможно, потребуется установить дополнительный электролитический конденсатор 10-50 мкФ параллельно припаянному керамическому конденсатору 0,1 мкФ, рядом с зеленым светодиодом PWR. Ниже на картинке от руки показаны точки соединения.
Программатору требуется микроконтроллер, способный работать на частоте до 16 МГц. AVR AtMega8 выпускается в двух сериях работающих до 8 МГц (серия L), они нам не подходят, так как проект работает на кварце 12 МГц. Также есть обычная версия, работающая до частоты 16 МГц. Это то, что нам нужно. Ниже приведен кусок даташита AVR AtMega8, в котором зачеркнуты версии микроконтроллеров, которые не будут работать в этом программаторе, а зеленой рамкой выделены версии микроконтроллеров, которые будут работать в этом проекте.
Микроконтроллеры ATMEL получили широкую популярность. Их программирование перед использованием можно выполнить прямо на плате готового устройства через простой ISP-кабель, подключенный к LPT-порту. персональный компьютер или чуть более сложный кабель, подключенный к COM-порту. Но сейчас все больше материнских плат выпускается без того и другого, а LPT давно исчез в ноутбуках, заменившись интерфейсом USB. Однако программисты для этого интерфейса тоже существуют и доступны.
Для масштаба рядом обычный светодиод 5 мм.
Этот программист USBASP поддерживает следующие микроконтроллеры:
Список поддерживаемых MK
Attiny11, Attiny12, attiny13, attiny15, attiny22, attiny2313, attiny24, attiny25, attiny26, attiny261, attiny28, attiny44, Attiny4, Attinyniny4, Attinyniny4, ATtiny861
AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168,ATmega169, ATmega32, ATmega323,ATmega324, ATmega325,
ATmega3250 ATmega329 ATmega64 ATmega640 ATmega644 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega128 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega103 ATmega406
AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
AT89S51, AT89S52
AT86RF401
В комплекте с программатором поставляется 10-жильный летний кабель с разъемами.
Питание программатора берется от USB порта компьютера.
На плате программатора есть место для выпайки LDO регулятора напряжения на 3,3В, но оно не припаяно.
Программатор поддерживается программой AVRDUDE. Сама программа является консольной, но есть файл . Утилиту avrdude можно найти в папке /hardware/tools/ в дистрибутиве Arduino IDE или скачать из интернета.
Прежде чем приступить к работе с программатором, вам необходимо скачать драйвер с .
Программатор также поддерживается средой разработки Arduino.
Для программатора есть прошивка под названием , которая превращает его в STK500-совместимый и воспринимаемый фирменной средой разработки ATMEL AVR Studio, но в связи с высокой вариативностью китайского железа использовать его можно только на свой страх и риск и риск. Планирую купить +32 Добавить в избранное
Понравился обзор
+17
+42
Сегодня расскажу про недорогой и очень простой программатор USBAsp v.2.0 для микроконтроллеров AVR (на основе разработки Томаса Фишла), с его помощью можно прошивать контроллеры AVR через ISP интерфейс (не выпаивая его из платы ), а самое главное можно прошить загрузочный сектор на контроллерах Arduino.
Технические характеристики Напряжение питания: 5 В постоянного тока
Интерфейс: USB 2.0
Программирование/чтение: Atmel (AVR)
Размеры: 70 мм x 18 мм x 10 мм
Поддержка операционной системы: Windows XP / 7 / 8 / 8.1 / 10.
Программатор USBAsp также распространяется в открытом виде, поэтому при желании вы можете сделать его самостоятельно, скачав печатную плату и прошивку с сайта Томаса, из-за этого в различных интернет-магазинах есть разные версии программатора с одинаковая функциональность. В моем случае речь пойдет о USBAsp V2.0 китайского производителя L.C. Технологии.
Программатор собран на синей печатной плате, слева находится разъем USB, необходимый для подключения к компьютеру. В центре расположен контроллер ATmega8A, рядом установлены кварцевый резонатор на 12 МГц и электропроводка (резисторы, конденсаторы). Справа — 10-контактный разъем (два ряда по пять контактов, шаг 2,54 мм), обеспечивающий обмен данными с прошиваемым микроконтроллером (интерфейс ISP). В комплекте идет кабель, на каждой стороне которого есть разъем IDC (10 контактов), для удобства прошивки некоторых плат (например, Arduino) советую приобрести переходник-переходник с 10-ти контактного на 6-ти контактный штырь. Назначение выводов программатора USBAsp можно увидеть на рисунке ниже, вид сбоку программатора.
ПИНК.
Красный светодиод G — вкл.
Красный светодиод R — связь
Перемычки
JP1- питание, управляет напряжением на разъеме ISP VCC (контакт 2), можно установить на +3,3В, +5В либо вообще убрать перемычку, если программируемое устройство имеет собственный блок питания.
JP2- сервис, обновления прошивки USBasp.
JP3- медленный, программирование на низких скоростях Если программируемое устройство работает на частоте ниже 1,5 МГц, SCK (контакт 7) уменьшит частоту с 375 кГц до 8 кГц.
Принципиальную схему программатора USBAsp V2.0 можно увидеть на рисунке ниже.
List of supported AVR microcontrollers:
Mega Series: ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A ATmega640 ATmega644 ATmega644A ATmega644P ATmega644PA ATmega649 ATmega649A ATmega649P ATmega6490 ATmega6490A ATmega6490P ATmega8515 ATmega8535
Серия Tiny: ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny2313, ATtiny2313A
Classic Series: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
Can Series: AT90CAN128
PWN Series: AT90PWM2, AT90PWM3
Подключите программатор к USB порту компьютера, если все нормально, то на плате загорится красный светодиод. Далее операционная система начнет поиск драйвера
Поскольку в операционной системе нет необходимого драйвера, в « Диспетчере устройств » появляется устройство « USBAsp » с восклицательным знаком. «
Драйвер установлен, в Диспетчере устройств » исчезает восклицательный знак С « USBAsp ».
Установка драйвера на Windows XP и Windows 7 аналогична, программатор готов к работе.
Программа разработана Боднар Сергей », работает не только с китайским программатором USBAsp v.2.0, но и с другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем « AVRDUDEPROG.exe ».
В качестве примера попрошу китайскую плату, в которой установлен чип ATmega328P. В программе нажимаем на вкладку « Микроконтроллеры » и выберите ATmega328P.
Далее нужно выбрать прошивку, в строке « Flash » нажмите « . . . «, заходим в папку « C:\Program Files\Arduino\hardware\arduino\avr\bootloaders\atmega » и выбираем « ATmegaBOOT_168_atmega328. hex «, нажимаем « Open »
3 Подключаем программатор к плате «
Arduino UNO R3 », и нажать кнопку « Programming ».В конце появится диалоговое окно, об успешном завершении программирования.0002
С развитием компьютерных технологий с каждым разом все меньше и меньше компьютеров, оснащенных COM и LPT портами. Это, в свою очередь, вызывает трудности, в частности у радиолюбителей, связанные с сопряжением средств программирования микроконтроллеров с персональным компьютером.
В данной статье приведено описание USB программатора для микроконтроллеров AVR, который можно собрать своими руками. Он построен на микроконтроллере Atmega8 и способен работать от USB-разъема компьютера. Этот программатор совместим с STK500 v2.
Описание USB-программатора
USB-программатор построен на плате из одностороннего фольгированного стеклотекстолита. На плате 2 перемычки: одна находится под разъемом SPI, вторая перемычка возле этого же разъема.
После того, как все детали спаяны, нужно прошить микроконтроллер Atmega8 прошивкой, приведенной в конце статьи. Фьюзы, которые необходимо установить при программировании микроконтроллера Atmega8, должны выглядеть так:
- SUT1 = 0
- САПОГИZ1 = 0
- САПОГИZ0 = 0
- СКОПТ = 0
- SPIEN = 0
Нужно напомнить, что в некоторых программах фьюзы выставляются наоборот. Например, в программе CodeVisionAVR нужно поставить галочки на указанные выше фьюзы, а в программе PonyProg наоборот.
Программирование Atmega8 через LPT порт ПК
Самый быстрый и дешевый способ запрограммировать Atmega8 — использовать LPT-программатор для AVR. Аналогичная схема показана ниже.
Микроконтроллер питается от простого регулятора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.
При первом включении программы и при не подключенном контроллере, по нажатию кнопки «LPTpins» необходимо настроить пины LPT порта следующим образом:
В момент запуска UniProf автоматически определяет тип микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отказываемся от подключения файла EEPROM.
Устанавливаем фьюзы следующим образом (для программы UniProF) нажатием кнопки «FUSE»:
Для сохранения настроек нажимаем все три кнопки «Write». Затем нажатием на «Стереть» предварительно очищаем память микроконтроллера, который необходимо прошить. После этого уже нажимаем на «Prog» и ждем завершения прошивки.
Настройка USB программатора
После прошивки нашего микроконтроллера его необходимо установить на плату USB программатора. Далее подключаем программатор к USB порту компьютера, но питание пока не подаем.
Настройка порта:
Настройка терминала:
Настройка ASCII:
Теперь, после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен мигнуть 6 раз, а затем загореться.
Для проверки соединения USB программатора с компьютером нажмите 2 раза клавишу «Enter» в программе HyperTerminal. Если все в порядке, мы должны увидеть следующую картину:
Если это не так, проверьте установку еще раз, особенно линию TxD.
Далее вводим версию программатора 2.10, так как без него программатор не будет работать с программами «верхнего уровня». Для этого введите «2» и нажмите «Enter», введите «a» (англ.) и нажмите «Enter».
USB-программатор способен распознавать подключение программируемого микроконтроллера. Это сделано в виде управления «подтягиванием» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:
- «0», «Ввод» — режим отключен.
- «1», «Ввод» — режим включен.
Программирование изменения скорости (1МГц):
- «0», «Enter» — максимальная скорость.
- «1», «Ввод» — скорость снижена.
На этом подготовительные работы закончены, теперь можно попробовать прошить какой-нибудь микроконтроллер.
(скачано: 1 203)
Первый контакт с микроконтроллером ATmega8
Во второй части я собираюсь собрать программатор AVR для подключения к параллельному порту ПК. Я пытаюсь обобщить здесь всю информацию, которую я нашел в Интернете. Я считаю, что этот пост стоит прочитать, даже если у вас нет параллельного порта, так как он описывает, как работает программирование AVR.
Перейти к: часть 1, часть 2 , часть 2.1 (видео), часть 3, часть 4 (видео), исходный код.
Что такое программатор AVR ISP?
ATmega8 (как и многие другие микроконтроллеры) имеет функцию, называемую ISP (внутрисистемное программирование), что означает, что их можно программировать, пока они еще подключены к конечной схеме. Вы делаете это, посылая электрические сигналы на микроконтроллер; нет необходимости в УФ-свете, как у многих фишек прошлого века. Другими словами, это означает, что программировать микроконтроллер очень просто.
Под программированием микроконтроллера я подразумеваю запись на него новой прошивки. А прошивка — это программное обеспечение, которое вы собираетесь написать для запуска внутри микроконтроллера.
Доступные программаторы AVR
Существует множество типов программаторов AVR, доступных для продажи повсюду. Большинство из них несколько дороже. Некоторые из них используют параллельный порт, другие используют последовательный порт, а третьи используют порт USB. Некоторым может потребоваться внешний источник питания.
В Cerne-Tec (где я купил ATmega8) продают программатор за 89 реалов0,90 (около 50,50 долларов США), что в девять раз превышает стоимость самого микроконтроллера! Я действительно не знаю, какие особенности у него есть, но я не буду тратить столько денег, если смогу построить рабочий за 8,80 реалов (может быть, даже меньше, если у вас есть некоторые компоненты). Для проектов DIY этого более чем достаточно.
Как работает программирование AVR
ATmega8 (и, вероятно, другие микроконтроллеры AVR) имеет два метода программирования: параллельное программирование и последовательное программирование. Первый использует 17 контактов (плюс 3 для Vcc и GND) для параллельной отправки всех данных и команд управления. Последний использует всего 4 контакта (плюс 3 для Vcc и GND) и отправляет команды и данные последовательно. Это означает, что последовательное программирование требует меньше проводов и может использовать разъем меньшего размера. Кроме того, последовательное программирование выглядит проще, чем параллельное (4 страницы против 11 страниц в даташите на ATmega8).
Последовательное программирование использует почти те же контакты, что и SPI (последовательный периферийный интерфейс); контакт SS (Slave Select) не используется. Он работает, отправляя сигнал RESET на контакт RESET, который… да… перезагрузит микроконтроллер и войдет в режим последовательного программирования. Затем команды отправляются на вывод MOSI (главный выход, подчиненный вход), а тактовый сигнал отправляется на вывод SCK (последовательный тактовый сигнал). Данные, отправляемые микроконтроллером обратно в программатор (или на компьютер), проходят через контакт MISO (главный вход, подчиненный выход). И это все, что вам нужно знать! (см. Раздел Serial Programming в техпаспорте ATmega8, страницы 230-233)
Программатор параллельного порта AVR ISP
Вы должны спросить себя: Почему этот парень описал метод последовательного программирования, если мы собираемся использовать параллельный порт ? Ответ прост: мы собираемся использовать параллельный порт ПК для передачи последовательных данных на последовательные выводы микроконтроллера. Это работает очень хорошо, потому что сложная (ну, не такая уж сложная) логика отправки требуемых битов в точное время и в точном порядке выполняется программным обеспечением. Параллельный порт будет просто получать несколько байтов (которые представляют собой всего пару бит вместе) и устанавливать соответствующие контакты в высокий или низкий уровень, которые будут напрямую (за исключением резисторов) подключены к контактам микроконтроллера. Это означает, что программный ключ для параллельного порта является самым дешевым аппаратным обеспечением для программирования, которое вы можете построить: в нем есть только разъемы, провода и несколько резисторов.
При поиске в Интернете инструкций о том, как его собрать, я нашел множество сайтов с различными способами подключения контактов параллельного порта. Это привело меня в замешательство относительно того, какой из них я должен попытаться построить, а какой из них будет работать. Посмотрев файл /etc/avrdude.conf , я понял, что все они (или по крайней мере большинство из них) будут работать, хоть и разные. Вам просто нужно выбрать правильный тип программатора в своем программном обеспечении (будь то avrdude, uisp (Wayback Machine) или даже PonyProg (Wayback Machine)).
Практически везде я нашел 3 разные схемы. К сожалению, не все из них на первый взгляд выглядели одинаково, а также не все из них имели название, описывающее тип программатора параллельного порта. К счастью для вас, я собираюсь перечислить здесь эти три схемы с соответствующими названиями.
Приведенные ниже схемы были нарисованы мной в Inkscape. Я публикую эти изображения как общественное достояние, но я хотел бы, чтобы меня указывали, если вы их используете. Примечание: эти схемы не являются моим творением.
bsd
Первый из них называется bsd
, вероятно потому, что изначально он был доступен в программе AVRPROG для FreeBSD. (Ну, я не уверен, что это правда, но это лучшее объяснение, которое я могу вам дать.) Позже эта программа была переименована в AVRDUDE , чтобы избежать путаницы с AVRPROG. EXE от Atmel. Вы можете найти описание этого программатора параллельного порта на старой домашней странице AVRDUDE (Wayback Machine).
dapa
Второй называется dapa
, что означает Кабель параллельного доступа прямого AVR . Этот описан в файле uisp-parport-connect.txt
от uisp (Wayback Machine). Его также можно найти на странице ParallelProgrammer Arduino (Wayback Machine) и в статье LinuxFocus 352 (Wayback Machine).
stk200
Третий называется stk200
, потому что он ведет себя как STK200 Starter Kit 9 AVR.0420 . Это схема, используемая в проекте How To… Build A DIY USB Joystick (Wayback Machine), а также доступная по адресу личной домашней страницы, найденному в теме канала #avr (Wayback Machine) на FreeNode.
Другие похожие дизайны
Во время написания этого поста я также нашел еще один дизайн (Wayback Machine). Именно его использует проект SpokePOV (Wayback Machine). В продаже имеется комплект (Wayback Machine). Он работает как плата разработки DT006 AVR (маленький программатор RAVeR) (Wayback Machine) и распознается avrdude и uisp как dt006
. Извините, у меня нет схемы для этого, но вы не думаете, что 3 разных схем более чем достаточно?
Примечания о ключах параллельного порта
Первое, что следует отметить, это отсутствие линии Vcc. Это происходит потому, что параллельный порт не может обеспечить достаточную мощность. Это означает, что при использовании этих ключей микроконтроллер должен питаться от чего-то другого (например, от USB-порта или батарей).
Вы также можете видеть, что я подключил 8 контактов к проводу GND. Я сделал это, потому что параллельный порт имеет 8 контактов GND, но вам не нужно припаивать их все вместе. Вы можете использовать только один контакт GND, и этого будет достаточно.
Следует также отметить резисторы. Я не указал их значения, потому что каждый сайт использовал разные значения (а иногда один и тот же сайт использовал разные значения). В схеме stk200
из How To…Build A DIY USB Joystick (Wayback Machine) (прямая ссылка на изображение (Wayback Machine)) используются 4 резистора по 330 Ом каждый, по одному на каждую линию (разумеется, GND не включен) . С другой стороны, эта личная домашняя страница (Wayback Machine) говорит нам использовать 4 × 220 Ом, но также содержит изображение, на котором показан один резистор 100 Ом для линии MISO и 3 × 330 Ом для других линий.
На странице ParallelProgrammer Arduino (Wayback Machine) и в статье LinuxFocus 352 (Wayback Machine) используется схема dapa
, и обе используют одинаковые значения резисторов: 220 Ом для линии MISO, 470 Ом для линий SCK и MOSI, нет резистора для линии RESET. Кроме того, в статье LinuxFocus 352 (Wayback Machine) сказано, что кабель не должен быть длиннее 70 см.
Старая домашняя страница AVRDUDE (Wayback Machine) даже не дает подробностей об этом: «Обязательно включите последовательные резисторы между сигнальными проводами и параллельным портом. Резисторы 1K должны работать нормально и могут защитить ваш параллельный порт от повреждения в случае неправильного подключения или какой-либо другой аварии».
Наконец, ключ, используемый в проекте SpokePOV (Wayback Machine), который работает как dt006
, использует 3 × 1 кОм и один 47 Ом.
Мой вывод по этому поводу: ставьте резисторы и избегайте слишком длинных кабелей. Я использовал резистор 220 Ом для линии MISO и 3 резистора по 330 Ом для остальных линий. У меня кабель 1 метр.
Если у вас возникли проблемы, прочитайте этот пост на форуме AVR Freaks (Wayback Machine) и попробуйте укоротить длину кабеля, или попробуйте использовать один из других (чуть более дорогих) программаторов, перечисленных ниже.
Мой программатор параллельного порта AVR
Из всех возможных ключей выше (и ниже) вам просто нужно выбрать один для сборки. Все вышеперечисленное очень похоже друг на друга, и все они должны работать как на avrdude, так и на uisp (Wayback Machine) (и обе программы доступны на нескольких платформах).
Я решил собрать bsd
. У меня получился плоский кабель с 14 жилами, но так как нужно было всего 6 (на самом деле всего 5), то я разделил кабель. Чтобы избежать короткого замыкания проводов внутри корпуса DB-25 и снизить вероятность поломки всего внутри корпуса, я нанес немного горячего клея после того, как закончил пайку. Если вы посмотрите на фотографии, ключ выглядит немного грязным и некрасивым, но так как эта приклеенная деталь будет скрыта внутри корпуса DB-25, это не проблема!
Я не использовал стандартный разъем AVR для этого проекта, но буду, если соберу другой программатор. В будущем все будет проще, если вы будете использовать стандартный 6-контактный штекер (или 10-контактный, но я предпочитаю 6-контактный), на случай, если вам случится использовать другой программатор с вашим проектом или ваш программатор с другим проект.
Обновление от 02 декабря 2008 г.: Первоначально 6-контактная распиновка в этом блоге была неправильной. Это было исправлено, поэтому приведенная ниже распиновка верна.
(версия PNG, SVG-версия)Несмотря на то, что я не использовал стандартный разъем, я сохранил тот же порядок проводов, что и 6-контактный. Затем я попытался использовать следующую ручку, чтобы пометить провод 1 как черный:
К сожалению, это был плохой выбор, потому что окрашенная часть этого кабеля теперь оставляет черное пятно везде, где она соприкасается.
Фотографии выше были сделаны на телефон SonyEricsson K750i с полным разрешением (2 мегапикселя). Затем я использовал Gimp для уменьшения изображения после применения слоя → Цвета → Авто → Баланс белого 9.0420 .
Другие программаторы AVR DIY
Обновление от 10 августа 2011 г.: Этот раздел несколько устарел, так как я только что написал часть 2.1, посвященную программатору USBasp. Если хотите, пропустите оставшуюся часть этого поста и сразу переходите к части 2.1.
Буферизованный параллельный порт
Этот адрес личной домашней страницы, найденный в теме канала #avr (Wayback Machine), имеет ссылку на схематическую диаграмму в формате PDF (локальное зеркало) ( Обновление от 02 декабря 2008 г. : будьте осторожны, распиновка в этот PDF-файл неверен), в котором описывается, как создать буферизованный ключ для параллельного порта. Он использует один подтягивающий резистор на 100 кОм, один развязывающий конденсатор на 0,1 мкФ и буферную микросхему 74HC244. Аналогичную схему можно найти в Интернете (Wayback Machine).
Не уверен, но как я понял по схеме, этот ключ будет получать нужный Vcc от разъема микроконтроллера.
Последовательный порт
Самодельный проект MiniPOV3 (Wayback Machine) использует последовательный порт для программирования чипа. Это работает аналогично программированию параллельного порта, но также требует некоторых диодов. Вы можете увидеть принципиальную схему (Wayback Machine) по ссылке «Дизайн» (Wayback Machine). Вы также можете увидеть страницу, посвященную серийному ключу (Wayback Machine) в проекте SpokePOV (Wayback Machine).
Лично я не вижу достаточно веских причин использовать последовательный порт вместо параллельного. Единственная веская причина — это размер (последовательный порт примерно вдвое меньше размера параллельного порта). Однако я предполагаю, что если у ПК нет параллельного порта, то, скорее всего, у него не будет и последовательного порта. Кроме того, программатор последовательного порта требует еще несколько компонентов (3 диода). Наконец, он использует метод под названием «bitbanging». Мне не нравится это имя, для меня оно звучит слишком халтурно и дешево.
Порт USB
Есть так называемый недорогой программатор USB AVR (Wayback Machine). Вы можете купить комплект (Wayback Machine) со всеми необходимыми компонентами за 22 доллара США или воспользоваться инструкцией и найти или купить компоненты самостоятельно.
Этот программатор более сложный. Он использует микроконтроллер AVR и несколько буферов с тремя состояниями. Будет сложно (или невозможно, или, по крайней мере, некрасиво и грязно) построить это без печатной платы или картона. Он также имеет два светодиода (один красный и один зеленый) для отображения текущего состояния. Если вы покупаете комплект, этот программатор выглядит довольно аккуратно из-за корпуса и светодиодов.
Этот программатор хорош еще и тем, что может использовать USB для подачи достаточного питания на программируемый микроконтроллер, избегая необходимости во внешнем источнике питания, в отличие от параллельных/последовательных программаторов.
На мой взгляд, если на вашем ПК нет ни параллельного порта, ни последовательного порта, но есть хотя бы один доступный порт USB, и вы не хотите покупать переходник USB-to-Serial или USB-to-Parallel , то это программатор, который вы должны собрать ( Я передумал, смотрите обновление ниже ).
С другой стороны, у этого проекта есть некоторые недостатки. Во-первых, это цена (22 доллара США против 7,50 долларов США за комплект параллельного/последовательного ключа на том же сайте (Wayback Machine)). Во-вторых, нужен кабель USB A-B. Конечно, у вас должен где-то лежать хотя бы один такой кабель (или хотя бы один, соединяющий ваш принтер или сканер), но параллельным/последовательным программаторам дополнительный кабель не нужен. Хорошо, я знаю, что это легко исправить. Просто возьмите кабель, отрежьте один из разъемов и припаяйте кабель к ключу.
Другим недостатком является глючная libusb на 64-битных архитектурах, как вы можете прочитать в FAQ (Wayback Machine). Также похоже, что вам нужно быть root, чтобы использовать libusb и это устройство (но я не уверен), в то время как это не нужно для параллельных/последовательных программистов (мне нужно получить root один раз, чтобы изменить разрешения устройства /dev/something или добавить моего обычного пользователя в какую-нибудь группу).
Еще одним недостатком является сложность сборки этого ключа без покупки комплекта. Вы должны купить две микросхемы и печатную плату или полосовую плату и спаять все вместе. Буферный чип должно быть легко найти (но я не знаю, так ли это на самом деле). Однако чип ATTINY2313-20PU может оказаться не таким простым. Я нашел ATmega8 и ATmega16 в Cerne-Tec (которая находится в Рио-де-Жанейро, где я живу), но там продаются только эти две модели, ATtiny не продают. Возможно, я смогу заменить ATtiny на ATmega, но это, вероятно, сделает проект немного дороже. Наконец, всякий раз, когда вы получаете микроконтроллер, вам все равно нужно программировать его с помощью прошивки USBtinyISP, но как? (проблема «курицы и яйца») Ну, вы можете использовать чужой программатор, а можете просто использовать последовательный или параллельный программатор. Но в последнем случае, почему бы вам просто не использовать этот программатор для всего остального?
Обновление от 03 января 2008 г.: Я только что нашел еще один программатор USB ISP. Он называется USBasp (Wayback Machine). «Он просто состоит из ATMega48 или ATMega8 и пары пассивных компонентов. Программатор использует USB-драйвер только для прошивки, специальный USB-контроллер не требуется». Прочитав это, я передумал. Если мне когда-нибудь понадобится программатор AVR на ПК без параллельного порта, я соберу его.
На странице с инструкциями по USBasp (Wayback Machine) прочитал, что программатор нужно подключать к порту компьютера, избегая USB-хабов. Я не уверен, что это относится к другим USB-программаторам, но, поскольку современные компьютеры, к счастью, имеют много USB-портов, я надеюсь, что это не будет проблемой.
Обновление от 10 августа 2011 г.: Я купил USBasp, а также собрал его на макетной плате. Все подробно описано в части 2.1.
- Распиновка параллельного LPT-порта ПК (SPP) (Wayback Machine)
- Распиновка параллельного порта ECP LPT (IEEE-1284A) (Wayback Machine)
- Информация об использовании программаторов AVR ISP
Перейти к: часть 1, часть 2 , часть 2.1 (видео), часть 3, часть 4 (видео), исходный код.
Создайте свою собственную плату AVR. Плата AVR — важная разработка… | Ахмад Муджахид
Плата AVR является важным устройством разработки для многих разработчиков MCU. А иногда по какой-то причине это может быть дорого. Но хорошая новость заключается в том, что сделать эту доску не так уж сложно. Вы можете создать свою собственную плату для разработки AVR с некоторыми электронными запасными частями в своей лаборатории.
Предварительный
Чтобы следовать этой инструкции, вам необходимо иметь базовые знания в области пайки, прототипирования с перфорированной платой, чтения схем и чипа AVR Atmega.
Как работает плата AVR?
Перед изготовлением платы AVR обратите внимание, что вам также понадобится программатор для программирования микросхемы AVR. Ваша плата работает только как среда для размещения вашего чипа и обеспечивает связь между вашим чипом и любыми периферийными устройствами или датчиками. Он не может запрограммировать ваш чип. Наиболее распространенным программатором, который используется с отладочной платой AVR, является USBasp.
Программатор USBasp для AVRUSBasp использует протокол связи SPI (последовательный периферийный интерфейс) для программирования микросхемы AVR. SPI — это синхронная связь между двумя устройствами для передачи и получения информации друг о друге. Чтобы узнать больше о связи SPI, вы можете прочитать эту статью от SparkFun.
В этом случае важно знать, как работает SPI. По крайней мере, вы будете знать, какие контакты вы должны подключить к вашему программатору USPasp. USBasp имеет 10 контактов. Мы будем использовать несколько из них для создания соединения с вашим микроконтроллером, чтобы мы могли его запрограммировать.
Контакты USBapsСписок необходимых контактов:
- Контакт 1 (MOSI (главный выход, подчиненный вход))
- контакт 2 (Vcc)
- контакт 5 (RST (сброс))
- контакт 7 (SCK (последовательный тактовый сигнал) ))
- Контакт 9 (MISO (главный в ведомом выходе))
- Один из любых контактов GND
С помощью этого программатора вы можете запрограммировать любые микросхемы AVR, такие как Atmega328p, Atmega8A-16PU, Atmega32A, Atmega16A и т. д., без установки на него загрузчика.
Давайте соберем вашу плату AVR!
После того, как вы немного узнали о USBasp, пришло время подготовить необходимые материалы для этого проекта. Есть:
- 1 Perfboard (рекомендуется 7×5)
- 1 DIP 28 IC Socket
- 1 микроконтроллер AVR (на этот раз мы используем Atmega328p)
- Несколько штыревых разъемов (рекомендуется иметь несколько полос штекерных разъемов 1×40)
- Некоторые перемычки
- 2 Керамические конденсаторы (22 пФ)
- 1 Генератор 16 МГц
- (дополнительно) 1 полоса 1×3 гнездо контактный разъем (закругленный контактный разъем лучше, если вы можете себе это позволить)
Паяльник и паяльник обязательны, иначе вы никогда не закончите этот проект. Пистолет с горячим клеем также рекомендуется использовать для пайки.
Давайте коротко!
Эта схема должна дать вам представление о плате AVR, которую вы собираетесь собрать. На этот раз мы используем Atmega328p, вы также можете использовать Atmega8–16PU. Если вы используете другую версию Atmega, вы должны прочитать техническое описание и получить информацию о ее распиновке.
СхемаНа приведенной выше схеме показано базовое соединение платы AVR. Эта схема охватывает несколько коротких замыканий, которые необходимо создать для подключения микросхемы AVR к программатору USBasp.
Это несколько важных подключений, которые вам необходимо создать:
- Соедините контакт MOSI вашего USBasp с контактом MOSI вашего AVR (контакт 17).
- Соедините контакт MISO вашего USBaps с контактом MISO вашего AVR (контакт 18).
- Соедините контакт SCK вашего USBasp с контактом SCK вашего AVR (контакт 19).
- Соедините контакт RST вашего USBasp с контактом RST вашего AVR (контакт 1).
- Соедините контакт VCC вашего USBasp с контактом VCC вашего AVR (контакт 7).
- Соедините контакт GND вашего USBasp с контактом GND вашего AVR (контакт 8).
Вам также необходимо установить генератор на контакты 9 и 10 вашего Atmega328p.
Еще одна ссылка, которой вы можете следовать (http://www.learningaboutelectronics.com/Articles/Program-AVR-chip-using-a-USBASP-with-10-pin-cable.php)Давайте припаяем!
Ну, я не собираюсь говорить, вы должны следовать тому, как я паял свою собственную плату AVR, потому что пайка — это искусство, которое вы должны проявить. (Да!!)
Но я порекомендую вам вещи, которые вы можете добавить к своей плате AVR, чтобы сделать ее более универсальной. Заранее это мой результат.
Моя плата AVR, подключенная к USBapsМоя плата AVR, вид сверху. Часть пайки (извините, если это выглядит грязным и раздражающим для вас :()Вот мои рекомендации для вашей платы AVR:
- . Вы можете легко изменить его, если это необходимо.