Программатор avr своими руками: Делаем простой USB программатор USBTinyISP / Блог им. Ghost_D / RoboCraft. Роботы? Это просто!

Содержание

Делаем простой USB программатор USBTinyISP / Блог им. Ghost_D / RoboCraft. Роботы? Это просто!

Очень многие люди, начиная свое знакомство с микроконтроллерами, испытывают трудности с инструментом для их программирования. И это реально может охладить творческий пыл. Да что там говорить, я и сам после сборки своего первого 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). Пока у меня не возникало необходимости в программировании таких контроллеров.

Ну, если осилили изготовление программатора, то сделать такой адаптер — вообще плевое дело!

Кстати, некоторые неиспользуемые контакты я просто-напросто удалил, во избежание ненужного контакта 🙂

Приклеиваем (для удобства) соответствующие надписи:

И вот, все в сборе, программатор и адаптер! Пользуйтесь на здоровье.
Весь материал (печатку, прошивку, драйвера и фото) для повторения можно забрать одним архивом тут.

AVR-USB-MEGA16: как сделать STK500-совместимый ISP и HVSP программатор (AVR-Doper) | avr-working-with-usb

Статья посвящена клону программатора STK500. Протокол STK500 разработан изначально фирмой Atmel, и поэтому описанный программатор принимается как «родной» большинством популярных программ — AVR Studio, CodeVisionAVR, BASCOM-AVR, avrdude. Программатор может быть изготовлен в двух вариантах — «облегченном», в этом случае он работает как стандартный ISP-программатор, и «полном», в этом случае дополнительно поддерживается возможность программирования чипа «высоковольтным» методом (

HVSP), позволяющим восстанавливать чипы AVR (в данной версии программатора имеются сокеты для чипов с 8 и 14 ножками), брикнутые неправильной установкой фьюзов.

Программатор работает на основе исходников программатора AVR-Doper (см. ссылки [2]), который был изначально рассчитан на микроконтроллер ATmega8. Портирование программатора AVR-Doper на макетную плату AVR-USB-MEGA16 (микроконтроллер ATmega32) позволило решить проблему «курицы и яйца» (т. е. чем запрограммировать программатор) — благодаря наличию в макетной плате AVR-USB-MEGA16 бутлоадера USBasp. Программатор питается и обменивается данными с компьютером через подключение по USB. Протокол USB обрабатывается программно, с помощью популярной библиотеки V-USB. Далее для краткости я буду называть описываемый программатор просто как AVR-Doper.

Для начала несколько слов о возможностях AVR-Doper — чем он хорош и что умеет.

— HVSP позволяет использовать ножку RESET для ввода и вывода (I/O), что особенно полезно для чипов, у которых мало ножек — с 8 и 14 выводами.
— простая аппаратура программатора позволяет собрать его на односторонней печатной плате. Не требуется никаких специальных чипов для USB.
— совместимость с протоколом STK500 компании Atmel, протокол работает через встроенный преобразователь USB <—> RS232.
— настраиваемая частота тактов ISP позволяет прошивать микроконтроллеры, тактируемые с очень низкой частотой, например 32 кГц.
— частота тактов ISP может быть снижена перемычкой, если программное обеспечение не позволяет менять тактовую частоту ISP clock.
— имеется второй преобразователь USB <—> Serial для обработки отладочного вывода из программируемого устройства.
— коннектор HVSP совместим с программатором HVProg, это другой совместимый с STK500 программатор (см. ссылки [6]).

— Open Source (включая firmware и принципиальную схему).
— использует питание от USB, внешние источники питания не нужны.
— может использоваться как альтернативное firmware для плат metaboard (для построения на ней программатора), см. http://www.obdev.at/goto?t=metaboard-prog
— может использоваться как альтернативное firmware для программатора USBasp, разработанного Thomas Fischl, см. http://www.fischl.de/usbasp/
— список программируемых чипов внушает уважение как минимум, достаточно посетить страницу, посвященную STK500, на сайте Atmel (см. ссылки [4]).

AT90CAN128, AT90CAN128 Automotive, AT90CAN32, AT90CAN32 Automotive, AT90CAN64, AT90CAN64 Automotive, AT90PWM1, AT90PWM2, AT90PWM216, AT90PWM2B, AT90PWM3, AT90PWM316, AT90PWM3B, AT90PWM81, AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4433, AT90S8515, AT90S8535, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82, ATmega103, ATmega128, ATmega1280, ATmega1280R212, ATmega1280R231, ATmega1281, ATmega1281R212, ATmega1281R231, ATmega1284, ATmega1284P, ATmega1284PR231, ATmega1284RZAP, ATmega128A, ATmega128RZAV, ATmega128RZBV, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164A, ATmega164P, ATmega164P Automotive, ATmega164PA, ATmega165, ATmega165P, ATmega165PA, ATmega168, ATmega168 Automotive, ATmega168A, ATmega168P, ATmega168PA, ATmega169, ATmega169A, ATmega169P, ATmega169P Automotive, ATmega169PA, ATmega16A, ATmega16HVA, ATmega16M1, ATmega2560, ATmega2560R212, ATmega2560R231, ATmega2561, ATmega2561R212, ATmega2561R231, ATmega256RZAV, ATmega256RZBV, ATmega32, ATmega323, ATmega324A, ATmega324P, ATmega324P Automotive, ATmega324PA, ATmega325, ATmega3250, ATmega3250A, ATmega3250P, ATmega325A, ATmega325P, ATmega325PA, ATmega328, ATmega328P, ATmega328P Automotive, ATmega329, ATmega3290, ATmega3290A, ATmega3290P, ATmega329A, ATmega329P, ATmega329PA, ATmega32A, ATmega32C1 Automotive, ATmega32HVB, ATmega32M1, ATmega32M1 Automotive, ATmega32U4, ATmega406, ATmega48, ATmega48 Automotive, ATmega48A, ATmega48P, ATmega48PA, ATmega64, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644P Automotive, ATmega644PA, ATmega644PR231, ATmega644R212, ATmega645, ATmega6450, ATmega6450A, ATmega6450P, ATmega645A, ATmega645P, ATmega649, ATmega6490, ATmega6490A, ATmega6490P, ATmega649A, ATmega649P, ATmega64A, ATmega64C1 Automotive, ATmega64M1, ATmega64M1 Automotive, ATmega64RZAPV, ATmega64RZAV, ATmega8, ATmega8515, ATmega8535, ATmega88, ATmega88 Automotive, ATmega88A, ATmega88P, ATmega88PA, ATmega8A, ATtiny11, ATtiny12, ATtiny13, ATtiny13A, ATtiny15L, ATtiny167, ATtiny2313, ATtiny2313A, ATtiny24, ATtiny24 Automotive, ATtiny24A, ATtiny25, ATtiny25 Automotive, ATtiny26, ATtiny261, ATtiny261 Automotive, ATtiny261A, ATtiny28L, ATtiny4313, ATtiny43U, ATtiny44, ATtiny44 Automotive, ATtiny44A, ATtiny45, ATtiny45 Automotive, ATtiny461, ATtiny461 Automotive, ATtiny461A, ATtiny48, ATtiny84, ATtiny84 Automotive, ATtiny85, ATtiny85 Automotive, ATtiny861, ATtiny861 Automotive, ATtiny861A, ATtiny88, ATtiny88 Automotive

 

Короче говоря, программируется все, что шевелится.

[ISP — облегченный вариант AVR-Doper]

Для облегченного варианта программатора (поддерживающего только ISP) необходимо собрать на макетном поле платы AVR-USB-MEGA16 следующую схему:

Коротко о назначении элементов схемы:

1. Микросхема 74HC126N нужна для согласования уровней сигналов при раздельном питании программируемого устройства и программатора.
2. Перемычка JP1 нужна для переключения питания программируемого устройства. Когда перемычка JP1 установлена, то программируемое устройство и микросхема 74HC126N питаются от программатора (в конечном счете от +5 вольт USB). Когда перемычка JP1 снята, то программируемое устройство и микросхема 74HC126N питаются от программируемого устройства, и это напряжение питания может отличаться от +5 вольт (например, быть +3.3 вольта).
3. Резисторы R17 и R19 служат для измерения напряжения питания программируемого устройства.
4. Коннектор SV1 ISP служит для подключения программируемого устройства. На этот разъем также выведены сигналы последовательного порта RXD и TXD микроконтроллера, что позволяет микроконтроллеру служить мостом между отлаживаемым микроконтроллером и виртуальным COM-портом компьютера. Эту возможность при желании можно использовать для отладки программы в программируемом устройстве (например, для отладочного вывода printf). Резисторы R10 и R11 нужны как ограничители тока (по крайней мере R11), так как в стандартном коннекторе ISP10 ножки 8 и 10 могут соединяться в землей GND.
5. На контакт 3 разъема SV1 ISP выводится тактовая частота для программируемого микроконтроллера, которая может использоваться для оживления микроконтроллера, тактовый генератор которого не может запуститься из-за ошибки в установке фьюзов. Тактовая частота CLK может быть изменена под управлением программы на компьютере (например, в AVR Studio).
6. Перемычка JP2 Slow SCK служит для снижения частоты тактов программирования ISP, если программное обеспечение не позволяет менять частоту тактов ISP.
7. Перемычка JP3 USB HID служит для перевода программатора AVR-Doper из стандартного режима USB CDC (виртуальный COM-порт) в нестандартный (по отношению к протоколу STK500) режим USB HID. Этот режим не поддерживается AVR Studio, однако может понадобиться на операционных системах типа Linux или FreeBSD, где иногда могут быть проблемы с программным обеспечением в режиме USB CDC для AVR-Doper. Например, популярный консольный программатор avrdude поддерживает режим USB HID программатора AVR-Doper. Если перемычка USB HID установлена (состояние перемычки считывается при включении питания программатора), то активируется режим USB HID.

Больше никаких особенностей схема не имеет, все тупо и просто. Внешний вид собранного программатора:

Назначение установленных на плату деталей:

JP1 Power переключает тип питания программируемого устройства (см. описание принципиальной схемы).
JP2 Slow SCK переключает частоту тактов ISP (см. описание принципиальной схемы).
JP3 USB HID переключает тип интерфейса программатора (см. описание принципиальной схемы).
SV1 ISP разъем для подключения программируемого устройства (см. описание принципиальной схемы).

12-выводный коннектор мама у нижнего края платы пока никуда не подключен. Он предназначен для расширения функционала программатора — добавления возможности HVSP.

Правильно собранный и прошитый (с помощью встроенного в макетную плату bootloader-а USBasp) программатор никакой наладки не требует и начинает работать сразу.

Внимание! Чтобы правильно работал ADC для измерения напряжения, нужно не забыть выпаять резистор R3 платы AVR-USB-MEGA16 (т. к. используется внутренний источник опорного напряжения 2.56 вольт).

Программатор AVR-Doper в «боевом положении» — считывается память flash у микроконтроллера ATmega32, установленного на макетной плате AVR-USB-MEGA16.

[Установка AVR-Doper в операционной системе Windows]

Процесс несложный, разберем его по шагам.

1. Снять перемычку JP3 USB HID (если она установлена). Программатор у нас будет работать в режиме USB CDC (виртуальный COM-порт), этот режим работает по стандартному протоколу STK500, что позволит использовать программатор в большинстве популярных IDE для программирования AVR (AVR Studio, CodeVisionAVR, BASCOM-AVR и др.).
2. Подключить программатор по USB к компьютеру. При первом подключении операционная система обнаружит новое устройство и запросит драйвер. В качестве драйвера нужно подсунуть файл avrdoper.inf или avrdoper-vista.inf (эти файлы можно найти в архиве по ссылке [5]). При предупреждении о неподписанном (unsigned) программном обеспечении выбрать «установить все равно».
3. После установки в системе появится еще один COM-порт, его номер можно подсмотреть в Диспетчере Устройств. Номер COM-порта нужно знать, чтобы правильно запустить STK50/AVR-Doper в популярных программах (AVR Studio, CodeVisionAVR, BASCOM-AVR и др.).

[HVSP — полный вариант AVR-Doper]

Этот вариант схемы немного сложнее, но зато он поддерживает сразу 2 режима программатора STK500 — ISP и HVSP.

Схема взята почти один-в-один с оригинального варианта, с минимальными переделками — поменял силовой транзистор преобразователя на MOSFET, и добавил индикационный светодиод REG_LED LED1, показывающий нагрузочный режим регулятора напряжения преобразователя (устанавливать этот светодиод необязательно). Схема состоит из двух частей — PARTA и PARTB. Часть PARTA целиком собрана на макетной плате AVR-USB-MEGA16 и почти полностью повторяет схему облегченного варианта AVR-Doper, так что облегченный вариант можно легко допаять, подключив коннектор-маму JP4. Часть PARTB собрана на отдельной подсоединяемой плате и содержит преобразователь напряжения, транзисторные ключи и сокет для подключения программируемых микросхем в корпусах DIP8 и DIP14. Схема никаких особенностей не имеет и наладки не требует — правильно собранная, начинает работать сразу. На фото показан внешний вид дополнительной платы PARTB и программатор в сборе. Два маленьких коннектора ISP и JTAG на макетной плате AVR-USB-MEGA16 используются только для жесткости — как механическое крепление платы PARTB.

Самое сложное в изготовлении было найти дроссель (в описании сказано, что подойдет любой 0.3 .. 3 мГн). Я поступил просто — взял готовый дроссель от материнской платы с ферритовым сердечником (внимание: кольцевой, тороидальный сердечник не подойдет), замерил его индуктивность, снял обмотку, при этом посчитав витки. Далее просто намотал новую обмотку на требуемую индуктивность подходящим проводом (индуктивность катушки прямо пропорциональна квадрату числа витков, поэтому рассчитать количество витков просто). У меня получился отличный дроссель на 1.7 мГн (216 витков эмалированного провода диаметром 0.12 мм). Сверху надел термоусадочную трубку и прогрел феном (воздушный поток 150 градусов Цельсия).

В режиме HVSP программатор работает в несколько раз быстрее, чем в режиме ISP (с чем связано — не знаю, наверное с особенностью протокола). Кроме того, есть полный доступ к фьюзам, позволяющим использовать ножку RESET чипа как порт ввода/вывода, что весьма полезно, если для разработки устройства на микроконтроллере Вам не хватает ножек. 

[Программное обеспечение для AVR-Doper]

Как я уже упоминал, выбор программного обеспечения богатый — как минимум AVR Studio, BASCOM-AVR и кроссплатфоменный avrdude. Сначала ничего не хотел про это писать, все вроде и так понятно, но потом все-таки решил сделать краткий обзор. Фаворит, ИМХО, среди всех программ — оболочка программатора AVR Studio. У CodeVisionAVR наблюдались глюки — после обращения к программатору программа отказывалась видеть программатор до его перетыкания в USB. Неплохая программная оболочка у программатора в BASCOM-AVR — есть возможность навигации по данным прошивки (простейший HEX-редактор). Для постоянно повторяющихся операций лучше всего подойдет консольная программа avrdude.

Все программы объединяет необходимость перед первым использованием программатора выбрать в настройках его тип (STK500 или AVRISP) и настроить COM-порт, к которому подключен программатор. Особых трудностей это не вызывает — все делается в соответствующем меню настроек, а номер COM-порта легко узнать через Диспетчер Устройств.

AVR Studio

Набор возможностей программы впечатляет. Есть доступ к всем режимам программирования, фьюзам, битам защиты, имеется настройка частот SCK ISP и частоты тактирования чипа CLK, считывание уровня напряжения питания чипа, калибровка встроенного тактового генератора и проч. Бегло рассмотрим возможности программы, пробежавшись по закладкам.

Первая закладка Main позволяет выбрать из выпадающего списка тип программируемого чипа, выбрать режим программирования (ISP или HVSP), полностью стереть чип, прочитать его сигнатуру.

Есть также возможность установить частоту тактов SCK ISP, выбрав её из ряда частот.

Закладка Program позволяет программировать flash и eeprom чипа (для этого есть кнопки Program и система выбора файла), сверить память чипа с файлом (кнопки Verify), а также скидывать в hex-файл содержимое памяти (кнопки Read). Можно также сохранить состояние фьюзов и бит защиты в файл формата ELF, а также записать фьюзы и биты защиты данными из ELF-файла.

Переход на закладку Fuses автоматически считывает состояние перемычек, и показывает их в виде чекбоксов и в HEX-формате. В этом окне можно перемычки записывать, проверить, прочитать.

Закладка LockBits позволяет манипулировать битами защиты. Принцип работы и возможности тут те же самые, что и для закладки Fuses.

Закладка Advanced позволяет считывать или менять калибровочные данные для внутреннего тактового генератора RC.

Закладка HW Settings позволяет узнать напряжение питания программируемого чипа, а также установить тактовую частоту генератора CLK. Генератор применяемого для чипа, у которого нет кварца, либо если по каким-то причинам у чипа не работает тактовый генератор. Тактовая частота CLK выводится на ножку 3 разъема SV1 ISP программатора AVR-Doper. Я обычно этот сигнал не использую.

Закладка HW Info позволяет получить информацию по железу и прошивке программатора AVR-Doper. Сюда заглядывать нет особой необходимости.

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

CodeVisionAVR

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

BASCOM-AVR

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

avrdude

Программатор AVR-Doper поддерживается консольной утилитой avrdude в режиме USB HID, начиная с версии 5.3 (более ранние версии требуют патча и перекомпиляции). Утилита работает и под Windows, и под *nix (Linux, FreeBSD). Для Windows avrdude можно скачать в составе пакета WinAVR. Версия avrdude, с которой я экспериментировал, была 5.5 (версию можно узнать командой avrdude -v). Для работы с avrdude нужно установить перемычку JP3 USB HID и переподключить USB-интерфейс программатора. Для проверки работоспособности программатора можно ввести команду avrdude -c stk500v2 -P avrdoper -p atmega32 (для чипа atmega32):

А вот пример сохранения памяти flash в файл на диске c:\001.hex:

В режиме USB HID программатор работает намного быстрее, чем в режиме USB CDC с программами AVR Studio и BASCOM-AVR. Поэтому для часто повторяющихся операций лучше всего выбрать avrdude. Имеется также написанная для avrdude графическая оболочка avrdude-gui.exe.

Еще пробовал программатор AVR-Doper с программой CrossStudio/CrossWorks AVR 1.3. Программатор определяется и работает, однако подробно не тестировал, поскольку опыта работы с CrossStudio/CrossWorks у меня нет.

[Словарик терминов]

AVR популярное семейство микроконтроллеров компании Atmel. Разделяется на подгруппы AVR Classic, AVR Tiny и AVR Mega. Последние два семейства самые современные и как правило поддерживают технологию аппаратной отладки debugWIRE через ножку RESET, либо отладку через JTAG.

firmware программное обеспечение для микроконтроллера. Обычно термин применяется отдельно от термина software, чтобы подчеркнуть, что программа работает не на PC, а в «железячном» устройстве.

fuses фьюзы, перемычки. Под этим термином понимаются энергонезависимые настройки (т. е. сохраняющиеся между выключениями питания), влияющие на потребительские свойства микроконтроллера AVR. Например, фьюзами может быть запрограммирован тип тактового генератора (кварцевый или внутренний), включение по умолчанию сторожевого таймера, коэффициент деления тактовой частоты и многие другие опции. 

ISP аббревиатура In System Programming. Означает возможность записи программы firmware в чип (микроконтроллер) прямо на плате, на которой чип установлен.

HVSP аббревиатура High Voltage Serial Programmer — программатор, поддерживающий программирование чипа повышенным напряжением.

STK200 название уже несколько устаревшего протокола (разработан Atmel) обмена данными с программатором.

STK500 название популярного открытого протокола (разработан Atmel) обмена между программатором и компьютером, к которому программатор подключен. Протокол работает поверх подсоединения программатора через стандартный COM-порт (обычный, или виртуальный, работающий через USB).

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

[Ссылки]

1. STK200-совместимый программатор, собранный на базе макетной платы AVR-USB-MEGA16.
2. AVR-Doper — STK500 compatible In-System Programmer (ISP) and High Voltage Serial Programmer (HVSP) site:obdev.at.
3. Программаторы для AVR.
4. STK500 site:atmel.com.
5. 101229AVR-Doper.2008-11-27.zip — исходный код программатора AVR-Doper (ISP и HVSP версия, собранная на макетной плате AVR-USB-MEGA16), документация, принципиальная схема, драйвер (avrdoper.inf, avrdoper-vista.inf), фотографии.
6. HVProg site:der-hammer.info — еще один клон STK500 (подключается к компьютеру не через USB, а через RS-232, т. е. обычный COM-порт).

USBasp программатор AVR микроконтроллеров делаем сами

В инете сказано, что USBasp — один из наиболее простых для повторения AVR USB программаторов. + требует минимум внешних компонентов, имеет несколько готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.

То что нужно! Делаем )))

Процесс изготовления

1. Нашел схемку программатора на контроллере Mega8. Требуется минимум навестных элементов


2. Модифицировал печатную плату под свой корпус. Пришлось немного попотеть, чтоб впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Результат превзошел мои ожидания )

3. Переносим рисунок с чудо-бумаги на плату. Дорожки немного расплылись — не беда. Исправим это с помощью иголки (булавки, или еще чего острого).

4. Процесс травления уже позади. Плата промыта и просушена.

5. Стираем растворителем тонер — получаем готовые дорожки для будущего устройства

6. Далее слесарно-монтажные работы — пилим, сверлим, точим, лудим (последовательность выбирайте сами)

7. Получилась компактная плата, пока еще без элементов.

8. Пичкаем плату нужными элементами. Пока без светодиодов и разъем IDC-10 слишком длинный (торчит из корпуса)

9. Выпаиваем Г-образный IDC-10 разъем. Вместо оплетки для лужения (и прочих премудростей) использовал обычный многожильный провод. Получилось аккуратно и быстро )))

10. Припаиваем SMD-компоненты. Вид со стороны дорожек. Все делалось паяльником на 60Вт с жалом 5мм в диаметре. Таким нужно еще наловчиться…

11. Не все резисторы получилось перевести на SMD. Вид со стороны компонентов.
Как видно, контроллер — USB — IDC-10 плотно расположены… Кварц взял обычный, благо высота корпуса позволяет.

12. А вот и корпус, куда будет помещен программатор. Очень полезная штука )

13. Устройство благополучно внедрено в «шкурку сплиттера». Компактно вышло.

14. Размер платы по сравнению с 5 рубленными «монетками»

16. Конечный итог…

Доработанная печатная плата USBasp программатора: СКАЧАТЬ в формате Lay [13,91 Kb] (cкачиваний: 408)
Программирование микроконтроллера Mega8
1. Прошиваем микроконтроллер с помощью этого программатора:
Простой LPT программатор AVR микроконтроллеров (5-ть проводков)
Заливаем файл прошивки под названием «usbasp.atmega8.2007-10-23.hex» из архива в конце статьи…

Подключаем к программатору адаптер для программирования микроконтроллеров.


Данные для самостоятельного изготовления можно взять здесь…

Печатная плата адаптера в формате lay для Sprintlayout [12,78 Kb] (cкачиваний: 672)


При подключении USB будет постоянно светиться зеленый (красный) светодиод

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

1. Можно было запрограммировать и в самом USBasp программаторе, подключив к нему простой программатор согласно распиновке. Если все собрано и запрограммировано верно, то устройство при подключении к ПК определится и «попросит» установить двайвер.


2. На что ему вежливо ответим выбрав папку со скаченными и разархивированными двайверам

3. Драйвера успешно установятся, если схема собранна верно и МК тоже прошит верно.

4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device.
Радуемся, и тестируем )

Проверка работоспособности программатора

1. В качестве програмки использовал avrdude в оболочке Sinaprog1.5.5.10.
Можно использовать и приложенное к архиву оболочкуUSBASP_AVRDUDE_PROG
Для проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, можно заливать прошивку в Attiny13A .


Необходимые данные для повторения устройства находятся в этом архиве:

Прошивка, программа, печатка, драйвер [992,87 Kb] (cкачиваний: 1258)

Всем удачи!

описание, назначение. Интерфейс внутрисистемного программирования ISP

Данный программатор не нуждается в первичном программировании — протравил печатную плату, спаял и пользуйся. Автор данного устройства указан в конце статьи, а здесь приведу небольшую выдержку из руководства, чтоб было понятнее, о чём речь: правильный USB-программатор — вещь, фактически, универсальная. Его можно воткнуть в любой современный компьютер и без проблем перешить нужный микроконтроллер с любым объемом FLASH-памяти на довольно высокой скорости. Но ключевое слово здесь — «правильный», который нормально работает без настройки и танцев с бубном над ним сразу же после установки и монтажа деталей. Который не глючит при переходе от одного ПК к другому или смене ОС. Правильный — это такой, драйвера на который есть для любой современной широко используемой версии ОС, и эти дрова неглючные. Каждый определит еще с десяток критериев правильности для себя лично, но вышеперечисленные — основные, без соблюдения которых нормально работать с микроконтроллером невозможно будет в принципе.

В настоящее время в Интернете полно различных схем . Условно их можно разделить на две большие группы.

Первая группа включает в себя программаторы, построенные на основе микроконтроллеров (в частности, AVR). Собирал несколько штук программаторов от Prottoss’а (AVR910), себе и своим знакомым, а также несколько штук USBasp. Двое из знакомых, одаренных сиими дывайсами, в восторге. Удачно шьют камни в течение уже нескольких лет. У остальных (в частности — у меня лично) собранные программаторы особой радости не вызвали. Не говорю, что они плохие, просто вот так складывались обстоятельства: на одном компьютере работает, на другом нет. Или, проработав пару часов, оказывались невидимыми для софта, через который шьется камень. И много еще чего. Сразу оговорю — я не разбирался с прошивкой контроллеров, на которых данные программаторы собраны. Правда, перепробовал кучу программ-прошивальщиков, через которые данные программаторы, вроде как без проблем должны шить камни. Однако, результат в виде частых глюков меня не особо удовлетворил. Исключение составила только программа AVRDUDE в комплексе с графической оболочкой SinaProg, но о ней я узнал слишком поздно. Кстати, заметил такую тенденцию: чем древнее железо ПК, тем лучше работают данные программаторы. Ну и самый неприятный момент для тех, кто выбрал второй вариант знакомства с микроконтроллерами AVR — чтобы программатор заработал, нужно чем-то прошить входящий в его состав камень. То есть получается так: чтобы пользоваться программатором нужно сделать/найти программатор, чтобы прошить мозги этого программатора. Вот такой вот замкнутый круг.

И вторая группа USB-программаторов включает в себя решение на базе специализированной микросхемы FT232Rx. В свое время данная микросхема стала своего рода революцией. Мало того, что она без особых заморочек для разработчика преобразует USB в UART (и, наверное, 95% разработчиков используют ее именно в этих целях). Она еще умеет эмулировать полноценный COM-порт, причем состояние «второстепенных» линий (таких, как RTS, CTS, DTR и т.д.) можно задать/считать не из виртуального COM-порта, а напрямую через драйвер FTDI (разработчика FT232Rx). Таким образом, появилось новое, без необходимости первичной прошивки мозгов программатора, решение, для прошивки микроконтроллеров, причем, довольно быстрое.

Принципиальная схема программатора USB

Данная схема просто направляет сигналы MOSI, MISO, SCK и RESET, которые формируются на выводах DCD, DTR, RTS и DSR микросхемы DD1 (FT232RL) соответственно, на нужные выводы прошиваемого микроконтроллера (т.е., фактически является аналогом «древних» программаторов). Причем, делает это только в момент программирования камня, в остальные моменты времени программатор отключен от прошиваемой платы за счет 4-х буферных элементов микросхемы DD2 (74HC125D). Состояние линий MOSI, MISO, SCK и RESET устанавливается/считывается прошивающим софтом на компьютере. Передача данных между ПК и микросхемой FT232RL идет по шине USB (от которой еще и получает питание программатор).

Светодиод HL2 («PWR») сигнализирует о подаче на программатор напряжения питания с шины USB. Светодиод HL1 («PROG») индицирует процесс прошивки микроконтроллера (горит только во время прошивки). Вот, в принципе, и все описание собственно схемы электрической принципиальной. Единственное что хотелось бы отметить: во-первых, для подключения программатора к прошиваемой плате используется разъем IDC-10MR (XP2 «ISP»), распиновка которого совпадает с широко распространенной распиновкой разъема программатора
STK200/STK300:

XP2 «ISP» разъем для подключения устройства к программируемому микроконтроллеру

XP3 «MISC» разъем для использования дополнительных функций программатора

В общем микросхема FT232RL имеет довольно серьёзный потенциал для разработчика (например, линии шины CBUS можно использовать как обычные линии ввода-вывода микроконтроллера), поэтому неплохо бы иметь доступ ко всем ее выводам. Ну и доступ к напряжениям +5,0 В и +3,3 В тоже лишним никогда не будет. В приклеплении печатная плата и полное подробное описание. Разработка и мануал — [email protected] , испытание — SssaHeKkk .

Обсудить статью USB ПРОГРАММАТОР

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

В данной статье приведено описание USB программатора для микроконтроллеров AVR, который можно собрать своими руками. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK500 v2.

Описание USB программатора

USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита . На плате есть 2 перемычки: одна расположена под разъё­мом SPI, вторая перемычка расположена неподалеку от того же разъема.

После того как все детали будут запаяны нужно прошить микроконтроллер Atmega8 прошивкой приведенной в конце статьи. Фьюзы, которые необходимо выставить при программировании микроконтроллера Atmega8, должны выглядеть следующим образом:

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

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

Программирование Atmega8 через LPT-порт компьютера

Самый быстрый и дешевый способ запрограммировать Atmega8 – применить LPT-программатор для AVR. Подобная схема приведена ниже.

Питание микроконтроллера осуществляется от простого стабилизатора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.

При первом включении программы и при не подключенном контроллере, нажав кнопку «LPTpins», необходимо настроит выводы LPT-порта следующим образом:

В момент запуска UniProf, она автоматом определяет вид микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отклоняем подключение файла EEPROM.

Выставляем следующим образом фьюзы (для программы UniProF), нажав кнопку «FUSE»:

Для запоминания установок нажимаем все три кнопки «Write». Затем нажав на «Erase» предварительно очищаем память прошиваемого микроконтроллера. После этого уже жмем на «Prog» и дожидаемся завершения прошивки.

Настройка USB программатора

После того как наш микроконтроллер прошит, его необходимо установить в плату USB программатора. Далее подключаем программатор к USB порту компьютера, но пока питание не подаем.

Настройка порта:

Настройка терминала:

Настройка ASCII:

Теперь после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен промигать 6 раз и затем светится постоянно.

Для проверки связи USB программатора с компьютером 2 раза нажимаем клавишу «Enter» в программе HyperTerminal. Если все в порядке мы должны увидеть следующую картину:

Если это не так проверяем еще раз монтаж, особенно линию TxD.

Далее вводим версию программатора 2.10, так как без этого програм­матор не будет работать с программами «верхнего уровня». Для этого вводим «2» и нажимаем «Enter», вводим «а» (английская) и нажимаем «Enter».

USB программатор способен распознавать подключение программируемого микроконтроллера. Выполнено это в виде контроля «подтяжки» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:

  • «0», «Enter» — режим выключен.
  • «1», «Enter» — режим включён.

Изменение скорости программирования (1МГц):

  • «0», «Enter» – максимальная скорость.
  • «1», «Enter» – сниженная скорость.

На этом подготовительная работа завершена, теперь можно попробовать прошить какой-нибудь микроконтроллер.

(скачено: 1 203)

Плата с панелькой для AVR

Плата имеет минимальное количество компонентов и используется для программирования микроконтроллеров вне целевого устройства.


Плата включает в себя 28 выводную DIP панельку, кварцевый резонатор на 4 МГц или резонатор с двумя конденсаторами по 22 пФ, и два разъема. Двухконтактный разъем служит для подключения к AVR микроконтроллеру питания +5 В, а 6-контактный — для подключения программатора.

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

ПО PonyProg

Чтобы иметь возможность загружать hex файлы из компьютера в микроконтроллер, вам потребуется скачать и установить ПО . После установки, первое, что предстоит сделать, это сконфигурировать PonyProg для работы с AVR программатором. Для того, чтобы сделать это, войдите в меню «Setup» и выберите пункт «Interface Setup». Ниже на рисунке подсвечены именно те опции, которые вам следует выбрать.

Следующим шагом выберите «AVR micro» и тип микроконтроллера, который хотите запрограммировать (например ATmega8).

Теперь конфигурирование PonyProg завершено, и мы можем открыть hex файл с программой, которая будет зашита в микроконтроллер. Перейдите в меню «File», выберите «Open Program (FLASH) File …» и укажите на hex файл, который надо зашить. Вы должны увидеть шестнадцатеричные значения, примерно такие, как показаны на рисунке ниже. Если вы все еще не подключили программатор к последовательному порту компьютера, то сейчас самое время это сделать. Убедитесь, что ваш программатор физически подключен к AVR микроконтроллеру через плату с панелькой или 6 контактный разъем ICSP. Наконец, кликните на подсвеченной иконке «Write Program Memory (FLASH)» или идите в меню «Command» и выберите «Write Program (FLASH)».

Кликните на кнопке «Yes», чтобы подтвердить запись.

Теперь сядьте поудобнее, расслабьтесь и наблюдайте за процессом программирования по индикатору состояния. PonyProg прошьет AVR микроконтроллер и проверит, загрузился ли hex файл без ошибок. Этот процесс обычно занимает от 10 до 30 секунд, в зависимости от размера программы, которую вы будете зашивать в микроконтроллер.

06-01-2011

Описание

Этот простой AVR программатор позволит вам безболезненно загружать программы в формате hex в большинство AVR микроконтроллеров от ATMEL, не жертвуя своим бюджетом и временем. Он более надежен, чем большинство других простых доступных AVR программаторов, и на его сборку уйдет гораздо меньше времени.

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

Вы также можете использовать этот программатор только как внутрисхемный, с помощью которого можно легко программировать AVR микроконтроллер, не извлекая его из устройства.

Весь AVR программатор собирается из широко распространенных компонентов и умещается в корпусе разъема COM порта. Печатная плата с DIP панелькой позволяет вставлять в нее 28-выводной AVR микроконтроллер ATmega8 в корпусе DIP, но вы можете изготовить печатные платы для микроконтроллеров в любых других корпусах. Этот программатор совместим с популярным ПО PonyProg, которое показывает вам ход процесса прошивки в виде шкального индикатора статуса.

Внутрисхемный последовательный программатор AVR

После программирования появится окно «Write successful», показывающее, что AVR микроконтроллер был запрограммирован и теперь готов к использованию.

  • Проверяйте монтаж и подключение к целевому микроконтроллеру.
  • ну в этой схеме нет ничего военного и изготовлять ее не надо а включил ком порт лоника в комп и вперед,правда в моем еще по ком порту стоит буфер чтобы случайно не сжечь.А что касаеться по пользованию прогой пони -забыли про одно из главного сказать-про фьюзы.ведь неправильно установишь и микросхема залочиться
  • ком порт устарел. если есть только usb то работу с контроллерами можно считать оконченой даже не начав???? usb-com ни кто в сети не предлогает.а если и предлогают то в схеме как раз стоит контроллер. если уж собирать самому то с нуля. а не так как сейчас многие делают, заказал конструктор, напихал в дырки элементов,запаял,и всё.таких гениев на службе хватает. а подойдёш к такиму с вопросом он и толком знать не знает. а ведь хочется знать подробно.
  • Ну конечно никто (пишется слитно!) не предлАгает. Поскольку куча готовых микросхем есть в типовом включении — мостов USB-COM на 5В и 3.3В питания. Но шибко грамотные граждане естественно об этом не знают. Про AVR910-аналог от Проттоса тоже не знают, в котором МК по USB виртуальный COM-порт изображает и программирует по ISP. Например. У буржуев тоже куча аналогичных конструкций. И описаний подробных конечно нет — это же искать надо. А хочется сразу готовенького — нажал на одну кнопку и все-все на блюдечке с голубой каемочкой. А может лучше уроки учить?
  • много уважаемый SergeBS этот форум не для орфографических ошибок и тем более не для поучений о том что оно есть. тут помощи и совета просят у людей которые знают и сталкивались с той или иной проблеммой. а то что есть готовое и можно купить и не напрягаться это конечно круто. P.S тем не менее спасибо ВАМ за участие в проблемме. И ОТДЕЛЬНОЕ ЗА ОЧЕНЬ ПРИГОДИВШИЕСЯ ПОУЧЕНИЯ. буржуям привет, а то что у них до?рена чего есть этого то я и знать не мог. куда нам крестьянам.
  • Угу. Типа «крютые», которые как хотят так и пишут. Причем «проблемму» и сформулировать не могут. Сопли типа:»хачу чавой-то знать, а чаво — ня знаю самм» — не в счет.:)
  • Вы ещё не знаете из чего всё это делается… На китайской барахолке детали для ваших схем продают на вес килограммами и никакие стандарты качества к таким деталям не имеют отношения. Покупайте только фирменные товары в соответствующих фирмах.
  • Заказываю в Интернет-магазинах (российских). Пока (тьфу * 3) на брак/халтуру и т.п. не налетал.
  • Здравствуйте! Всех с наступающим Новым Годом! 🙂 Собрал программатор для AVR по указанной схеме (проверял 3 раза все). Но понипрог 2000 отказывается видеть и программировать контроллер ATMega168-20PU — выдает ошибку device missing or unknown device (-24). Использовал стабилитроны КС407Г, Транзистор КТ3102АМ и диод КД522Б. Кварц у меня был на 4.032 МГц. Питание от L7805. Перед возникновением ошибки успевают придти сервисные сообщения, которые я мониторю с помощью Advanced Serial Port Monitor, но там только включение и выключение Break в процессе записи. Никакие данные не уходят. Настраивал ПониПрог2000 все по инструкции. Шаг за шагом. С чем эта ошибка может быть связана? Нужно ли подсоединять 22 ножку к земле и 20 к питанию (аналоговые земля и питание)? Почему не используется чип-селект (SS ножка 16 контроллера)? Спасибо за помощь!
  • Я собрал этот программатор и использовал: Резисторы — указанных номиналов Транзистор — KT3102ГМ Диод h58 это аналог 1N4148 Стабилитроны — BZX55C 5.1 вольта Также кварц на 4Мгц и 2 керамических конденсатора на 22 пФ, но я не думаю что они обязательны т.к. использование кварца внутренний/внешний мы устанавливаем программируемыми битами, с завода микрухи запрограммированы использовать внутрений кварц(если я не ошибся) Внешнее питание от +5В обязательно.Я подключил от БП того же ПК с которого заливал прошивку. Диод h58 (такая маркировка на присутствует на корпусе этого диода) на просторах интернета говорят что это аналог 1N4148. У меня всё работает, ПониПрог 2000 успешно залила прошивку в ATmega8. Фото
    View post on imgur.com
    http://i.imgur.com/gCzAuzA.jpg
  • Посоветую один из проектов avr mk ii clone, на базе либы и примера от lufa. Контроллер at90usb168 обычно идет с бутлоадером, позволяющим после сборки залить прошивку через usb без внешнего программатора. Поддерживает все нынешние avr, включая xmega и новые тиньки, pdi/tpi протокол. Работает с avrstudio и dude, разные прошивки для них. Исходники открыты, шишки отработаны. Например, для новых студий достаточно инкрементить версию fw в настройках прошивки. Собирается прошивка под winavr. Мой вариант в этой теме, от 12 года. С фоточкой. http://m.radiokot.ru/forum/viewtopic…rt=700&t=26417
  • Здраствуйте.собрал этот прогроматор для прошивки ATtiny 2313 все работае прог.читаем МК без проблем но вот такая проблема атор схемы для которой я прошиваю МК написал что первый раз можно прошивать без внешнего кварца,но при этом сперва заливать прошивку МК,а потом менять Fuse короче я залил прошивку,встала нормально,потом поменял Fuse и нажал Write но после таго как я нажал Write вылезла вот это Device missing or unknown device (-24) и после этого больше МК не читаеться в чом может быть проблема
  • это обратно я подскажите пожалуста попробывал прошить ATtiny 2313 с внешним кварцем ипоставил 2 конденсатора,кварц на 8 МГц,подк. прогром.он прочитал МК открыл прошивку в пони выставил Fuse какие надо вот это заводские
    View post on imgur.com
    а вот такие надо прошить
    View post on imgur.com
    но еще что я заметил в заводских стоит одна галочка которую нельзя убрать называеться SPIEN ,а какие надо прошить там нет этой галочки ну ладно дальше продолжу свою проблему после таго как я откры прошивку и выставил Fuse как на второй картинке я нажал READ DEVICE пошол процес прошивки и в завершении вышло вот это
    View post on imgur.com
    потом я закрыл пони и открыл снова и нажал прочитать МК и получил вот это Device missing or unknown device (-24) такое же что я прошивал без внешнего кварца,выше описанное,и после этого этот МК больше не читался кто может сказать в чом дело,что я зделал не так Просто уже 3 МК убил большое спасибо прото я в этом новичок
  • У меня эта ошибка вылазила только когда я внешнее питанее не подключал, ну естественно у тебя в схеме могут быть ошбки, может ты не на ту микруху пони прог настроил(но маловероятно ведь прошивка залилась я сам новичёк.) SPIEN – фьюз, который разрешает работу МК по интерфейсу SPI. Все микроконтроллеры выпускаются с уже установленным битом SPIEN. Считается опасным фьюзом…
  • Fuse-бит SPIEN установлен по умолчанию в микроконтроллерах AVR (режим внутрисхемного программирования) и с помощью PonyProg его убрать не получится. Да и вообще его лучше не трогать… Установив и запрограммировав Fuse-биты как на последней картинке, вы настроили мк на работу от внешнего кварца 8 Мгц, отключили внутренний делитетель тактовой частоты на 8 и включили Brown-Out Detector (модуль контроля питания) с уровнем 2.7 В. И после этого программатор микроконтроллер не увидел, поэтому логично было бы подать на микроконтроллер внешнее питание (не от PonyProg) и попробовать прочитать его снова. PS: Конечно, если изначально все было сделано корректно (тип микроконтроллера в программаторе ри программировании был выбран правильно и Fuse-биты были правильно установлены)
  • спасибо за ответ просто я прошил на 3 МК нету прошивку и теперь прогром.не видет их и мне надо их перешить и я всегда подовал внешние питание при прошивки но пони всеравно его не видит,но МК работает,я вставлял ее на прибор для кокого я ее прошивал все три рабочие,но мне надо туда другие залить Я спросил у автора схемы для которой я их прошивал как их перешить он мне сказал что если с внешним кварцем неопределяеться то надо еще внешний генератор тактовой частоты делать и подовать сигнал на МК XTAL 1 и тогда прогром. увидет МК если кто может кинте не сложную схемку внешний генератор тактовой частоты сколько гуглил не чего чот не нашол или может кто другой способ а Fuse мне обезателно надо было помннять как на второй картинке потомучто с заводскими работать не будет спасибки за помощь
  • Спасибо за статью! Отличный адаптер. Работает шустро, без ошибок. Я первым делом под LPT порт спаял, не было под рукой COM штекера. Дак LPT порт сгорел на первой же заливке. Пришлось бежать за COM штекером в магаз. Так же рекомендую спаять фьюз доктора — очень полезная штука. Я первый-же кристал так отфьюзил, казалось что он выпустил свою душу (синий дымок), а нннет! — Дохдур фьюз его моментально вернул к жизни. Вот и выходит: этот адаптер + док фьюз = полноценный параллельный программатор.
  • После «синего дымка» ни один доктор его бы к жизни не вернул. А «Доктор фьюз» — да, наверное, иногда может быть полезным. Но почти всегда удается обойтись и без него, нужно только затактировать МК не от кварца, а от внешнего генератора…
  • А вот мне посчастливилось, при первом же конфигурировании фьюзов, захлопнуть так, что ни один генератор не спасёт. Я не знал, что бывают 2 варианта отображения фьюзов: Прямой (исторический, канонический) и инвертированный (интуитивно удобный). Вот я и выставил в каноническом галки с фото инвертированного. Кстати, PonyProg, оперирует фьюзами в инвертированном представлении.
  • Читать всем:

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

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

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

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


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

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

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

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

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

Заключение:

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

В данной статье мы опишем „шаг за шагом” этапы изготовления USBasp программатора для микроконтроллеров AVR . В отдельных статьях приведем описание установки драйверов для операционных систем Windows XP и Windows 7 (x64/x86). В конце поста размещена ссылка с необходимой документацией для изготовления программатора USBasp своими руками.

Программатор USBasp, благодаря своей простоте в изготовлении и использовании недорогих и широкодоступных элементов, стал очень популярным среди радиолюбителей. Его параметры работы не уступают профессиональным и дорогим программаторам микроконтроллеров AVR.

Основные характеристики программатора USBasp

  • Работает с несколькими операционными системами – Linux, Mac OS X и Windows – включая Windows 8!
  • Не требует внешнего питания.
  • Умеет программировать со скоростью вплоть до 5kB/s
  • Есть вариант (Switch 2) снижения скорость программирования – для процессоров с кварцем меньше 1,5 Мгц
  • Обеспечивает напряжение для программирования (Switch 1) 5 вольт
  • Указание работы программатора с помощью светодиода

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

  1. Выбор схемы/рисунка печатной платы
  2. Перенос рисунка печатной платы на фольгированный стеклотекстолит
  3. Травление печатной платы в растворе хлорного железа
  4. Сверление отверстий
  5. Монтаж элементов (пайка)
  6. Программирование Atmaga8 программатора
  7. Подключение программатора к компьютеру
  8. Установка драйверов – Windows XP, Windows 7
  9. Выбор программы с поддержкой USBasp

Существует много версий USBasp программатора, но все они основаны на главной схеме, автором которой является Thomas Fischl . Прошивка микроконтроллера программатора также является его авторством.

Оригинальная схема программатора:

В данном случае за основу была выбрана оригинальная схема. Поскольку использование перемычек в оригинальной схеме не совсем удобно, было принято решение использовать DIP переключатели. Так же были изменены некоторые значения резисторов.
Более того, в оригинальной схеме линии TxD и RxD выведены на разъем ISP, хотя это не нужно (точнее не используются на практике).

Ниже приведена схема с внесенными изменениями:

Строительство USBasp программатора

Существует много версий печатной платы данного программатора, некоторые можно найти на официальном сайте USBasp. Однако, была сделана своя на основе выше представленной схемы.

К сожалению, из-за применения DIP переключателей, рисунок платы стал немного сложнее, что привело к применению 2 коротких перемычек, с целью чтобы печатная плата была по-прежнему односторонней.

Ниже результат печатной платы:

Как видно на рисунке, в программаторе не применялись SMD элементы. Пустое пространство на плате „залито” полем массы, главным образом для того, чтобы не вытравливать большое количество меди, а также снизить влияние помех на программатор.

Список элементов используемых в USBasp программаторе:

  • R1: 10к
  • R2: 180
  • R3: 100
  • R5, R6: 68
  • R7: 2к2
  • C1, C2: 22п
  • C3: 10мк
  • C4: 100н
  • LED1: Красный светодиод на 20мА
  • LED2: Зеленый светодиод на 20мА
  • D2, D3: стабилитроны на 3,6В
  • X1: Разъем USB, тип B
  • SV1: Гнездо под разъем IDC-10
  • Q1: Кварц 12МГц, корпус HC49-S
  • SW1: Dip переключатель трехпозиционный
  • IC1: Atmega8 (ПРИМЕЧАНИЕ: Не следует использовать микроконтроллер Atmega8 — PU из-за его ограничение максимальной тактовой частотой до 8 МГц!)

Перенос рисунка печатной платы USBasp программатора на стеклотекстолит выполнен с помощью метода ЛУТ (). Как это делать описывать не будем, поскольку данной информации в сети много.

Вкратце скажем, что сначала рисунок в масштабе 1:1 печатается на глянцевой бумаге, затем он накладывается на очищенную и обезжиренную медную сторону стеклотекстолита и фиксируется с помощью бумажного скотча. Далее бумажная сторона тщательно разглаживается утюгом на 3-ке. После все это дело вымачивается в воде и аккуратно очищается от бумаги.

Следующий этап – вытравливание платы в растворе хлорного железа. Во время травления желательно поддерживать температуру раствора не ниже 40 C, поэтому банку с раствором погружаем в горячую воду:


После завершения процесса травления необходимо удалить тонер ацетоном.

Остается теперь только просверлить отверстия. После завершения процесса изготовления платы можно приступать к пайке элементов USBasp программатора, начиная с перемычек.

Готовые к печати (в формате PDF) рисунок печатной платы находится в конце статьи. Вы также можете найти несколько вариантов на официальном сайте проекта.

Первый запуск USBasp программатора

Теперь, когда все детали спаяны, остается только «прошить» микроконтроллер Atmegę8 самого программатора. Для этого нужен отдельный программатор, это может быть, например, STK 200 (LPT порт), STK500 и т. д. LPT программатор подключается к USBasp через разъем IDC-10.

Обратите внимание, что распределение пинов в разъеме оригинального программатора (USBasp) находится справа, в то время как в версии, описываемой в этой статье – слева:

Распределение, показанное на рисунке справа, соответствует тем, которые применяет компания Atmel в своих оригинальных программаторах. Такое распределение уменьшает риск возникновения помех во время программирования в случае применения длинных проводов от программатора к контроллеру, так как каждая сигнальная линия экранирована массой, кроме MOSI.

На время программирования включите режим SELF путем переключения DIP переключателя № 3 в положение ON. Благодаря этому появляется возможность запрограммировать Atmega8. После завершения программирования, положение переключателя (3) должна быть переведено в состоянии OFF.

Последнюю версию прошивки можно скачать с официального сайта. Рекомендуем версию для Atmega8, которая находится в архиве: usbasp.2011-05-28.tar.gz.

Обратите внимание, чтобы перед программированием Atmega8 необходимо выставить фьюзы которые имеют следующие значения:

  • # для Atmega8: HFUSE=0xC9 LFUSE=0xEF
  • # для Atmega48: HFUSE=0xDD LFUSE=0xFF

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

Установка драйверов USBasp программатора

Способ установки драйверов программатора описан в отдельных статьях, там же имеются и сами драйвера. Ниже приведены прямые ссылки на эти статьи:

  • Установка драйверов для программатора USBasp под Windows XP
  • Установка драйверов для программатора USBasp Windows 7 x64/x86

Программы для работы программатора USBasp

Самой популярной программой, поддерживающей программатор USBasp, это консольная программа AVRdude. Так же существует множество производных программ, использование которых намного удобнее. Они представлены в статье Сравнение программ для поддержки программатора USBasp.

Робот своими руками — Простой программатор AVR. AVRDUDE.


Для того чтобы запрограммировать («прошить») микроконтроллер, необходим программатор. Программатор представляет собой программно-аппаратный комплекс, состоящий непосредственно из устройства, связывающего микроконтроллер с компьютером, и программы, которая этим устройством управляет. Программатор заносит подготовленную для микроконтроллера программу в его память.

Наиболее распространенным способом программирования для AVR является внутрисхемное программирование (функция ISP — in-cirсuit serial programming) через коммуникационный интерфейс SPI. Этой возможностью обладают все микроконтроллеры AVR, кроме Tiny11 и Tiny28. Данный режим удобен тем, что позволяет программировать AVR, расположенный в готовом устройстве, то есть вам не нужно вытаскивать микроконтроллер из платы каждый раз, когда вы хотите его перепрограммировать.

Интерфейс SPI (Serial Peripheral Interface) представляет собой 3 линии: SCK, MISO и MOSI.

SCK (SPI ClocK)
Тактовый сигнал, который программатор формирует на линии SCK.

MOSI (Master Out, Slave In — вход ведомого, выход ведущего)
Линия передачи данных от программатора (ведущий), к программируемому микроконтроллеру (ведомый). Во время каждого импульса на линии SCK передается один бит от программатора к программируемому микроконтроллеру по линии MOSI.

MISO (Master In, Slave Out — выход ведомого, вход ведущего)
Линия передачи данных от программируемого микроконтроллера (ведомый) к программатору (ведущий). По каждому импульсу на линии SCK передается один бит от микроконтроллера к программатору по линии MISO.

Для обеспечения нормальной связи по трем SPI линиям необходимо соединить общую землю (GND) на программаторе и программируемом устройстве.

Для входа и нахождения в режиме последовательного программирования используется линия сброса (RESET). Она должна удерживаться в активном состоянии (низкий уровень) во время программирования AVR. Также при стирании чипа на линии RESET должен быть сформирован импульс в конце цикла стирания.

Кроме того, может использоваться вывод контроллера XTAL1 для тактировки контроллера программатором при отсутствии кварцевого резонатора.

При программировании AVR программатор всегда функционирует как ведущее устройство, а микроконтроллер как ведомое.

Программная часть

В интернет можно найти множество программ, работающих с теми или иными типами устройств для программирования микроконтроллеров AVR. Большинство из этих программ совершенно бесплатны.

AVRDUDE
В состав пакета WinAVR входит мощная утилита AVRDUDE. Она позволяет загружать программы и данные в память микроконтроллера, а также считывать их оттуда. AVRDUDE использует SPI-интерфейс. Существуют версии для Windows и Linux. Первоначальный код был написан Брайеном Дином (Brian S. Dean) и имел название avrprog.

AVRDUDE может использоваться через командную строку, чтобы читать или записать все типы памяти кристалла, или при помощи графического интерфейса. Использование AVRDUDE из командной строки удобно для полного программирования всей памяти кристалла, в то время как графический интерфейс полезен для исследования содержания памяти, изменения отдельных байтов EEPROM, fuse и lock битов и т.д.

AVRDUDE поддерживает множество типов программирующих устройств, работающих как через интерфейс параллельного (LPT) порта, так и через последовательный (COM) порт, и может быть сконфигурирован для использования практически с любым LPT-устройством.

AVReAl
Предназначен для программирования AVR с использованием SPI-интерфейса. Отличается простотой использования и поддерживает несколько основных типов популярных простых программаторов, подключаемых к параллельному порту (LPT). Существуют версии для DOS и Windows (существует версия и для Linux). Во всех вариантах запускается только из командной строки с необходимыми ключами, графический интерфейс отсутствует. Написан Александром Редчуком. Сайт программы: http://ln.com.ua/~real/avreal/

IcProg
Поддерживает полтора десятка популярных LPT-программаторов, в том числе самых простых. Осуществляет программирование кристалов через SPI. Имеет удобный графический интерфейс, переведенный на русский язык. Автор Bonny Gijzen. Свободно распространяется в Интернете на сайте http://www.ic-prog.com/. PonyProg
Свободная GNU-утилита с открытым исходным кодом для программирования Flash-микросхем с последовательным доступом. PonyProg написан Клаудио Ланконелли (Claudio Lanconelli) и существует в Windows и Linux версиях. Имеет поддержку русского языка. Может использовать стандартный последовательный порт (COM) или параллельный (LPT) порт. Поддерживает ряд популярных программаторов.
Аппаратная часть
Простой программатор AVR

Схема простого программатора AVR
Разъем, подключаемый к параллельному порту ПК, показан со стороны пинов
Один из самых простых программаторов состоит из 25-контактного разъема для параллельного (LPT) порта, 4-х резисторов (150 Ом) и соединительного кабеля, длина которого не должна превышать 1,5 метра. Резисторы необходимы для предохранения параллельного порта в случае неправильного монтажа и некоторых других неприятностей.

Схема получила свое название от отладочных плат Atmel для быстрого начала работы с микроконтроллерами AVR. Если вы хотите, чтобы ваш программатор почти в точности соответствовал классическому программатору STK200, то следует поставить перемычку для определения программатора программным обеспечением (для AVRDUDE не обязательно). Перемычка должна соединять выводы 2-12.

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

Настройка AVRDUDE

В Windows 2000 и Windows XP запрещена прямая работа с параллельным (LPT) портом, поэтому для нормальной работы AVRDUDE необходимо установить драйвер giveio.sys. Для установки этого драйвера зайдите в папку WinAVR\bin и запустите файл install_giveio.bat (удалить драйвер из системы можно, запустив файл remove_giveio.bat).
В Windows 98 никаких специальных настроек не требуется.

Универсальный программатор для микроконтроллеров AVR и PIC. Радиотехника, электроника и схемы своими руками. Схемы и материалы

USBasp — простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.

Особенности программатора:
— работа под любой платформой: Windows, Linux и Mac OS X
— какие-либо специальные компоненты или smd не нужны
— скорость программирования до 5 кБ/сек
— SCK-джампер позволяет программировать низкоскоростные контроллеры ( — в планах: последовательный интерфейс (например для отладки)

Схема программатора

Схема предназначена для программирования только 5В кристаллов. В других случаях, уровни должны быть преобразованы!

Заливка прошивки

Т.к. в схеме программатора используется микроконтроллер, то его необходимо предварительно прошить. Для этого подключите другой рабочий программатор и установите джампер J2, для активации функции обновления прошивки.
Прошейте программатор при помощи прошивки: «bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex» или «bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex»
Необходимо будет установить фьюзы для подключения внешнего кварца
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff

Установки джамперов

J1 — источник питания (от USB, либо внешний источник). Будьте аккуратнее, т.к. схема не содержит какой-либо защиты от КЗ.
J2 — обновление прошивки (сам себя обновлять не может!). Установленный джампер позволяет программировать контроллер программатора другим рабочим программатором.
J3 — если программируемый МК низкоскоростной

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

Подключите программатор USBasp к USB. Windows найдет устройство и попросит указать драйвер, укажите ему папку «bin/win-driver». Windows установит драйвер.
Теперь можно запустить avrdude, к примеру:
1. Войти в терминальный режим, МК: AT90S2313: avrdude -c usbasp -p at90s2313 -t
2. Записать main.hex в flash-память МК ATmega8: avrdude -c usbasp -p atmega8 -U flash:w:main.hex

Сборка их исходников (под Linux)

Компиляция прошивки:
1. Установите GNU toolchain для микроконтроллеров AVR (пакеты avr-gcc, avr-libc)
2. Войдите в директорию firmware/
3. Выполните команду «make main.hex»
4. Прошейте «main.hex» ATMega(4)8. Например при помощи uisp или avrdude (используйте
Makefile с опцией «make flash»). Для прошивки установите джампер J2 и подключите USBasp к рабочему программатору.
Также нужно установить фьюзы для работы от внешнего кварца (используйте Makefile
с опцией «make fuses»).

Компиляция avrdude:
ПО AVRDUDE поддерживается программатором USBasp начиная с версии 5.2.
1. Установите пакет libusb: http://libusb.sourceforge.net/
2. Скачайте последнюю версию avrdude: http://download.savannah.gnu.org/releases/avrdude/
3. cd avrdude-X.X.X
4. Сконфигурируйте:
./bootstrap
./configure
5. Компиляция:
make
make install

Фото программатора USBasp

Программы для работы с программатором

AVRDUDE — поддерживается USBasp начиная с версии 5.2
BASCOM-AVR — поддерживается USBasp начиная с версии 1.11.9.6
Khazama AVR Programmer — Windows XP/Vista GUI приложение для USBasp и avrdude

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

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

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


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


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


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

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


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

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

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


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


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


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


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

Khazama AVR Programmer

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


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


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

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

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

В данной статье приведено описание USB программатора для микроконтроллеров AVR, который можно собрать своими руками. Построен он на микроконтроллере Atmega8 и способен работать от USB разъема компьютера. Данный программатор совместим с STK500 v2.

Описание USB программатора

USB программатор построен на плате, сделанной из одностороннего фольгированного стеклотекстолита . На плате есть 2 перемычки: одна расположена под разъё­мом SPI, вторая перемычка расположена неподалеку от того же разъема.

После того как все детали будут запаяны нужно прошить микроконтроллер Atmega8 прошивкой приведенной в конце статьи. Фьюзы, которые необходимо выставить при программировании микроконтроллера Atmega8, должны выглядеть следующим образом:

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

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

Программирование Atmega8 через LPT-порт компьютера

Самый быстрый и дешевый способ запрограммировать Atmega8 – применить LPT-программатор для AVR. Подобная схема приведена ниже.

Питание микроконтроллера осуществляется от простого стабилизатора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.

При первом включении программы и при не подключенном контроллере, нажав кнопку «LPTpins», необходимо настроит выводы LPT-порта следующим образом:

В момент запуска UniProf, она автоматом определяет вид микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отклоняем подключение файла EEPROM.

Выставляем следующим образом фьюзы (для программы UniProF), нажав кнопку «FUSE»:

Для запоминания установок нажимаем все три кнопки «Write». Затем нажав на «Erase» предварительно очищаем память прошиваемого микроконтроллера. После этого уже жмем на «Prog» и дожидаемся завершения прошивки.

Настройка USB программатора

После того как наш микроконтроллер прошит, его необходимо установить в плату USB программатора. Далее подключаем программатор к USB порту компьютера, но пока питание не подаем.

Настройка порта:

Настройка терминала:

Настройка ASCII:

Теперь после всех проделанных процедур, подаем питание на USB программатор. Светодиод HL1 должен промигать 6 раз и затем светится постоянно.

Для проверки связи USB программатора с компьютером 2 раза нажимаем клавишу «Enter» в программе HyperTerminal. Если все в порядке мы должны увидеть следующую картину:

Если это не так проверяем еще раз монтаж, особенно линию TxD.

Далее вводим версию программатора 2.10, так как без этого програм­матор не будет работать с программами «верхнего уровня». Для этого вводим «2» и нажимаем «Enter», вводим «а» (английская) и нажимаем «Enter».

USB программатор способен распознавать подключение программируемого микроконтроллера. Выполнено это в виде контроля «подтяжки» сигнала Reset к источнику питания. Этот режим включается и выключается следующим образом:

  • «0», «Enter» — режим выключен.
  • «1», «Enter» — режим включён.

Изменение скорости программирования (1МГц):

  • «0», «Enter» – максимальная скорость.
  • «1», «Enter» – сниженная скорость.

На этом подготовительная работа завершена, теперь можно попробовать прошить какой-нибудь микроконтроллер.

(скачено: 1 203)

Когда-то давно пару лет назад, в очередной раз пересмотрел подшивку како-го радиотехнического журнала и задумался: а не пора ли осваивать микроконтроллеры? С этим проблем не было, литературы много, примеров достаточно. Изучил матчасть, написал свою первую ПРОГРАММУ. Потом начались поиски того, чем эту программу запихнуть в контроллер, тоесть программатора. Нужна была схема простая, чтоб собрать из того, что под рукой и надежная, без глюков так сказать. После долгих поисков выбор пал на схему программатора из журнала «РАДИО» №10 2007г. ст. 31. Описывать эту схему не стану, для желающих в архиве есть оригинал статьи. Скажу лишь, что схема отлично работала, шила все подряд без проблем, только почему-то иногда вилетал МАХ232 (заменил 3 шт., может бракованые попались). Тот программатор подарил коллеге и решил собрать себе такой-же, но у меня не оказалось еще одного управляемого стабилизатора K78R12C, опять начались поиски замены… В результате родилась вот такая схема, это результат «скрещивания» журнальной схемы и фирменного программатора SI-PROG:

MAX232 заменил на более быстродействующий ST232, управляемый стабилизатор заменил обычным 7812 и транзисторным ключем после него, транзисторы — ВС547, все остальные детали — по рекомендациям из оригинальной статьи. Также добавил отдельную подключаемую плату с панельками для разных типов контроллеров (так как в основном юзаю РІС-и, то плата пока только под них, а если нужно прошить AVR — то проводочками:-)). Монтируется все это на вот такой плате:

А это сменная плата для ПИК-ов и микросхем памяти:

Из панелек все неиспользуемые контакты удалить, чтобы не сверлить много лишних отверстий. Вот фото собраной платы:

Программатор собрал в поляцком корпусе, который обозначается Z50, собственно под него и проектировалась плата, ниже несколько фото:

На фото видно в корпусе трансформатор питания, я его потом выкинул, так как он оказался слабоват (сделал светодиодную подсветку передней панели из сверхярких светодиодов, и трансформатор не осилил:-). Сейчас используется внешний блок питания 15В, и током до 1А. Программатор работает с программами PonyProg, Si-prog, WinPic800. Используя для управления программу PonyProg следует выбрать в соответствующем ее окне программатор SI Prog I/O и задать инверсию сигналов в соответствии с таблицей 1, для программ Si-Prog и WinPic 800 следует выбрать программатор JDM Programmer, а инверсию сигналов задать в соответствии с таблицами 2 и 3.

Программатор своими руками. Программатор для PIC своими руками :: SYL.ru

Вот есть микроконтроллер, есть написанная программа. Что ещё нужно? Программатор! Ведь без помощи аппаратуры, которая сможет записать последовательностью сигналов процесс, который хочет реализовать человек, сложно будет что-то сделать. А как здорово сделать программатор своими руками!

Также здесь вы найдете описание программаторов и из другого семейства – АВР, но исключительно в сравнительных целях. Приступим к статье, где рассказывается, как сделать программатор-flash своими руками.

Для чего необходим программатор

Так как статья пишется в том числе и для читателей, не слишком осведомленных в этом вопросе, то необходимо взять во внимание и такой пункт. Программатор – это специальное устройство, которое посредством получаемых от компьютера сигналов программирует микроконтроллер, который будет управлять схемой. Качественное устройство является очень важным, ведь в таком случае можно будет быть уверенным в том, что МК не выйдет из строя, или, что важнее, из строя не выйдет компьютер. Есть небольшое уточнение: программатор для PIC своими руками делают только те, у кого есть микроконтроллеры этого семейства. Другие из-за другой архитектуры могут не работать. Но можно попробовать своими силами усовершенствовать представленные схемы и собрать программатор AVR своими руками.

Платные против самодельных

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

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

Драйвера

Первоначально следует подобрать программное обеспечение. В зависимости от схемы программатор может быть заточен или под один микроконтроллер, или под большое их количество. Тот, что будет далее рассматриваться, рассчитан примерно на 98 программаторов от 12-го до 18-го семейств. Для тех, кому понравится вариант сборки, следует уточнить, что в качестве драйверного программного обеспечения использовалась программа IC-PROG. Можете попробовать работать и с другой, но уже на свой страх и риск. Это информация для тех, кто хочет создать программатор для AVR своими руками. Далее будет указано, для каких семейств микроконтроллеров РІС он рассчитан. Если есть желание сделать программатор AVR своими руками или какой-то другой тип МК, то вы всегда можете попытаться.

Схема программатора

Вот тут уже можно попробовать сделать программатор для PIC своими руками. В качестве гнезда необходимо использовать разъем DB9. Можно сделать и USB-программатор своими руками, но для него понадобятся дополнительные элементы схемы, которые усложнят и без того довольно сложную плату. Также внимательно рассмотрите рисунок с различными прямоугольниками (чтобы знать, какие части за что отвечают). Выводы должны подключатся именно туда, куда нужно, иначе микроконтроллер превратится в небольшой кусочек пластика и железа, который можно поставить на стеночку как напоминание о былых ошибках. Процесс сборки и использования программатора таков:
  1. Собрать сам программатор так, как написано на схемах. Просмотреть на наличие некачественной пайки, а также потенциальных мест замыкания. Программатор рассчитан на работу с напряжением 15-18В, больше категорически не рекомендуется.
  2. Подготовьте среду управления прошивкой (выше было упоминание одной программы, с которой программатор точно работает).

Процесс прошивки микроконтроллера

Процесс прошивки микроконтроллера данными можно считать продолжением предыдущего списка:
  1. Произвести необходимые для работы программы настройки.
  2. Установить микроконтроллер в программатор так, как отмечено на схеме. Лучше лишний раз убедиться, что всё так, как должно быть, чем ехать за новым МК.
  3. Подключить питание.
  4. Запустить выбранное программное обеспечения (для этого программатора ещё раз посоветуем IC-Prog).
  5. В выпадающем меню вверху справа выбрать, какой именно микроконтроллер следует прошить.
  6. Подготовленный файл выбрать для программирования. Для этого перейдите по пути «Файл» – «Открыть файл». Смотрите, не перепутайте с «Открыть файл данных», это совсем другое, прошить микроконтроллер с помощью второй кнопки не получится.
  7. Нажать на кнопку «Начать программировать микросхему». Примерное время, через которое она будет запрограммирована – до 2 минут. Прерывать процесс программирования нельзя, это чревато выведением из строя микроконтроллера.
  8. И в качестве небольшого контроля нажмите на кнопку «Сравнить микросхему с буфером».

Не очень сложно, но эта последовательность действий позволяет получить качественный программатор, своими руками сделанный, для различных типов микроконтроллеров РІС.

Какие микроконтроллеры поддерживаются и могут быть прошиты программным обеспечением

Как уже выше упоминалось, этот программатор может работать как минимум с 98 моделями. Как можно заметить по схематическим рисункам и платам, он рассчитан на те МК, что имеют 8, 14, 18, 28 и 40 выводов. Этого должно хватить для самых различных экспериментов и построения самых разных механизмов, которые только можно сделать в пределах скромного бюджета среднестатистического гражданина. Можно выразить уверенность, что сделанный программатор своими руками сможет удовлетворить самых требовательных радиолюбителей — при условии, что он будет сделан качественно.

Программатор AVR

О компании Программатор AVR



Это простой программатор AVR позволит вам безболезненно передавать шестнадцатеричные программы на большинство микроконтроллеров ATMEL AVR без ущерба для бюджета и времени.это более надежен, чем большинство других простых программаторов AVR доступны и могут быть построены в очень короткие сроки количество времени.

Программатор

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

Вы также можете использовать этот программатор как автономный программатор последовательного интерфейса, который может использоваться для удобного программирования микроконтроллеров AVR не удаляя их из целевой цепи.

Весь программатор AVR был строить с использованием общих деталей и умещается в корпусе последовательного разъема.Плата гнезда была создан для микроконтроллера 28-DIP AVR ATmega8, но вы можете собрать плату с разъемом для любого другого AVR микроконтроллер там. Этот программатор AVR совместим с популярным программным обеспечением PonyProg, которое показывает строку состояния процесса программирования.

АРН Внутрисхемный последовательный программатор




Печатная плата программатора AVR (передняя) с 9-контактным гнездом Последовательный разъем RS232.


Печатная плата программатора AVR (задняя)


Установка печатной платы программатора AVR в корпус с последовательным интерфейсом RS232.


Готовый программатор AVR со стандартным 6-контактным ICSP разъем.

АРН Розетка PCB


Socket PCB имеет очень минимальное количество компонентов и используется для программирование желаемого микроконтроллера AVR снаружи вашей целевой цепи.


Socket PCB с 28-DIP микроконтроллером AVR ATmega8.



Есть два подключения; ICSP, который подключается к Программатор AVR и внешнее питание +5 В.


Socket PCB состоит из печатная плата, разъем 28-DIP, кварцевый резонатор 4 МГц, или кристалл с двумя развязывающими конденсаторами 22 пФ, и два соединителя заголовка.Двухконтактный разъем питания Напряжение + 5В на микроконтроллер AVR и 6-контактный ICSP подключается к ключу программатора AVR.

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



Разъем для микроконтроллера 28-DIP AVR ATmega8.

Напряжение + 5В питание микросхемы AVR может осуществляться от внешнего блок питания или даже лучше — прямо с USB связь.


Уметь отправить шестнадцатеричный файл со своего компьютера на микроконтроллер AVR вам нужно будет загрузить и установить PonyProg2000.После установки первым делом вы необходимо настроить PonyProg для работы с нашим Программист AVR. Для этого зайдите в «Настройка». меню и выберите «Настройка интерфейса». В следующее окно будет показано и выделены области покажет вам, какие именно варианты следует выбрать.



На следующем шаге выберите «AVR micro» и тип вашего микроконтроллера, который вы будете программировать (бывший.ATmega8).


На этом настройка PonyProg завершена. и мы можем открыть шестнадцатеричную программу, с помощью которой микроконтроллер AVR будет мигать. Перейдите в меню «Файл», выберите «Открыть файл программы (FLASH) …» и указать в шестнадцатеричный файл, чтобы открыть его. Вы должны увидеть шестнадцатеричный числа, как показано на экране ниже.Если у вас нет подключил ключ программатора AVR к компьютеру последовательного порта пока нет, то самое время. Убедись что программатор AVR физически подключен к вашему Микроконтроллер AVR через Socket PCB или через 6-контактный разъем ICSP. Наконец нажмите на выделенный значок «Запись программной памяти (FLASH)», или перейдите в меню «Команда» и выберите «Написать» Программа (FLASH) ».



Нажмите кнопку «Да», чтобы подтвердить программирование.


Теперь посидите, расслабьтесь и наблюдайте за прогрессом программирования на статус бар. PonyProg запрограммирует микроконтроллер AVR и проверьте, был ли передан шестнадцатеричный файл без никаких ошибок.К вашему сведению, этот процесс не должен действительно занимает более 10-30 секунд. Это зависит от размера программы, которую вы пытаетесь вспышка.


После завершения программирования «Запись прошла успешно» появится окно, сообщающее, что микроконтроллер AVR был запрограммирован и теперь готов к использованию.





Accurate LC Meter

Создайте свой собственный Accurate LC Meter (измеритель индуктивности емкости) и начните создавать свои собственные катушки и индукторы. Этот LC-метр позволяет измерять невероятно малые индуктивности, что делает его идеальным инструментом для изготовления всех типов ВЧ-катушек и индукторов.LC Meter может измерять индуктивность от 10 нГн до 1000 нГн, 1 мкГн — 1000 мкГн, 1 мГн — 100 мГн и емкости от 0,1 пФ до 900 нФ. Схема включает автоматический выбор диапазона, а также переключатель сброса и обеспечивает очень точные и стабильные показания.

PIC Вольт-амперметр

Вольт-амперметр измеряет напряжение 0-70 В или 0-500 В с разрешением 100 мВ и потребляемый ток 0-10 А или более с разрешением 10 мА. Счетчик является идеальным дополнением к любым источникам питания, зарядным устройствам и другим электронным устройствам, в которых необходимо контролировать напряжение и ток.В измерителе используется микроконтроллер PIC16F876A с ЖК-дисплеем с подсветкой 16×2.


Частотомер / счетчик 60 МГц

Частотомер / счетчик измеряет частоту от 10 Гц до 60 МГц с разрешением 10 Гц. Это очень полезное стендовое испытательное оборудование для тестирования и определения частоты различных устройств с неизвестной частотой, таких как генераторы, радиоприемники, передатчики, генераторы функций, кристаллы и т. Д.

1 Гц — 2 МГц XR2206 Функциональный генератор

1 Гц — 2 МГц Функциональный генератор XR2206 выдает высококачественные синусоидальные, квадратные и треугольные сигналы с высокой стабильностью и точностью. Формы выходных сигналов могут модулироваться как по амплитуде, так и по частоте. Выход 1 Гц — 2 МГц Функциональный генератор XR2206 может быть подключен непосредственно к счетчику 60 МГц для настройки точной выходной частоты.


BA1404 HI-FI стерео FM-передатчик

Будьте в прямом эфире со своей собственной радиостанцией! Стерео FM-передатчик BA1404 HI-FI передает высококачественный стереосигнал в диапазоне FM 88–108 МГц.Его можно подключить к любому типу стереофонического аудиоисточника, например, iPod, компьютеру, ноутбуку, CD-плееру, Walkman, телевизору, спутниковому ресиверу, магнитофонной кассете или другой стереосистеме для передачи стереозвука с превосходной четкостью по всему дому, офису, двору и т. Д. палаточный лагерь.

USB IO Board

USB IO Board — это крошечная впечатляющая маленькая плата разработки / замена параллельного порта с микроконтроллером PIC18F2455 / PIC18F2550.Плата USB IO совместима с компьютерами Windows / Mac OSX / Linux. При подключении к плате ввода-вывода Windows будет отображаться как COM-порт RS232. Вы можете управлять 16 отдельными выводами ввода / вывода микроконтроллера, отправляя простые последовательные команды. Плата USB IO получает питание от порта USB и может обеспечить до 500 мА для электронных проектов. Плата USB IO совместима с макетной платой.


ESR Meter / Capacitance / Inductance / Transistor Tester Kit

ESR Meter Kit — удивительный мультиметр, который измеряет значения ESR, емкость (100 пФ — 20000 мкФ), индуктивность, сопротивление (0.1 Ом — 20 МОм), проверяет множество различных типов транзисторов, таких как NPN, PNP, полевые транзисторы, полевые МОП-транзисторы, тиристоры, тиристоры, симисторы и многие типы диодов. Он также анализирует такие характеристики транзистора, как напряжение и коэффициент усиления. Это незаменимый инструмент для поиска и устранения неисправностей и ремонта электронного оборудования, определяя производительность и исправность электролитических конденсаторов. В отличие от других измерителей ESR, которые измеряют только значение ESR, этот измеритель одновременно измеряет значение ESR конденсатора, а также его емкость.

Комплект усилителя для наушников для аудиофилов

Комплект усилителя для наушников для аудиофилов включает высококачественные компоненты аудиосистемы, такие как операционный усилитель Burr Brown OPA2134, потенциометр регулировки громкости ALPS, разветвитель шины Ti TLE2426, фильтрующие FM-конденсаторы Panasonic со сверхнизким ESR 220 мкФ / 25 В, Высококачественные входные и развязывающие конденсаторы WIMA и резисторы Vishay Dale. Разъем для микросхем 8-DIP позволяет заменять OPA2134 на многие другие микросхемы двойных операционных усилителей, такие как OPA2132, OPA2227, OPA2228, двойной OPA132, OPA627 и т. Д.Усилитель для наушников достаточно мал, чтобы поместиться в жестяной коробке Altoids, и благодаря низкому энергопотреблению может питаться от одной батареи на 9 В.


Комплект прототипа Arduino

Прототип Arduino — это впечатляющая плата для разработки, полностью совместимая с Arduino Pro. Он совместим с макетной платой, поэтому его можно подключить к макетной плате для быстрого прототипирования, и на обеих сторонах печатной платы имеются выводы питания VCC и GND.Он небольшой, энергоэффективный, но настраиваемый с помощью встроенной перфорированной платы 2 x 7, которую можно использовать для подключения различных датчиков и разъемов. Arduino Prototype использует все стандартные компоненты со сквозными отверстиями для легкой конструкции, два из которых скрыты под разъемом IC. Плата оснащена 28-контактным разъемом DIP IC, заменяемым пользователем микроконтроллером ATmega328 с загрузчиком Arduino, кристаллическим резонатором 16 МГц и переключателем сброса. Он имеет 14 цифровых входов / выходов (0-13), 6 из которых могут использоваться как выходы ШИМ и 6 аналоговых входов (A0-A5).Эскизы Arduino загружаются через любой USB-последовательный адаптер, подключенный к 6-контактному гнезду ICSP. Плата питается напряжением 2-5 В и может питаться от батареи, например, литий-ионной батареи, двух элементов AA, внешнего источника питания или адаптера питания USB.

4-канальный беспроводной радиочастотный пульт дистанционного управления с частотой 433 МГц, 200 м

Возможность беспроводного управления различными приборами внутри или снаружи дома является огромным удобством и может сделать вашу жизнь намного проще и веселее.Радиочастотный пульт дистанционного управления обеспечивает дальность действия до 200 м / 650 футов и может найти множество применений для управления различными устройствами, и он работает даже через стены. Вы можете управлять освещением, вентиляторами, системой переменного тока, компьютером, принтером, усилителем, роботами, гаражными воротами, системами безопасности, занавесками с электроприводом, моторизованными оконными жалюзи, дверными замками, разбрызгивателями, моторизованными проекционными экранами и всем остальным, о чем вы можете подумать.


Как я сделал свой крошечный программатор AVR — Сделайте кое-что

В последнее время я использовал много микросхем AVR и столкнулся с небольшими проблемами при записи кода на эти микросхемы с помощью коммерческих программаторов AVR.Итак, я решил, почему бы не создать свой собственный программатор AVR и не избавиться от всех этих хлопот. И почему бы не настроить его в соответствии с моими потребностями.

Крошечный программатор AVR

Сегодня мы рассмотрим, как устроена эта плата, и я покажу вам, как работает каждый компонент в этой конструкции.

Если у вас просто микросхема AVR, вам нужно что-то для ее программирования. наиболее распространенный способ — через ICSP (внутрисхемный последовательный программатор). просто, это плата с 6 контактами, обычно это 0.Заголовок шага 1 ″, который может общаться с вашей микросхемой AVR через протокол SPI. С другой стороны, он также может общаться с вашим ПК через протокол USB. Итак, после компиляции вашего кода C с помощью avr-gcc плата программатора примет и отправит его напрямую на ваш AVR-чип. Вы можете думать об этом как о мосте между вашим ПК и микросхемой AVR.

Я провел свое исследование для программистов AVR и нашел много интересных ресурсов. это особенно привлекло мое внимание. Это программатор FabOptimus AVR, созданный Али Штарбановым, который построен на программаторе FabISP, созданном проф.Нил из MIT Media Lab. документация FabOptimus очень хороша и проста в использовании, если вы новичок. Я решил сделать очень небольшую модификацию программатора FabOptimus AVR, поскольку у него нет светодиода индикатора питания, я хочу добавить его!

  • FabISP bt Prof. Neil
  • FabOptimus Али Штарбанов

Дизайн печатной платы и углубленный анализ схем

Во-первых, нам нужно понять, как устроена эта плата и как ведет себя каждый компонент в этой схеме.

  • FabOptimus Оригинальная схема и макет платы

Этот программатор AVR основан на микросхеме AVR ATtiny44, которая по умолчанию пуста, в нее не загружается код или что-либо еще, как в любой микроконтроллер, который вы покупаете. Поскольку мы создаем программатор AVR, нам необходимо загрузить в чип ATtiny44 очень конкретную прошивку, которая точно указывает роль, которую он должен выполнять и выполнять. Это просто отправка некоторых шестнадцатеричных файлов на другие микроконтроллеры AVR. Эта прошивка называется прошивкой FabISP (подробнее об этом позже.)

Итак, нам нужно иметь возможность загрузить прошивку FabISP в программатор AVR, а затем отключить возможность ее перепрограммирования.

Чтобы иметь возможность загрузить прошивку FabISP в микросхему AVR программатора, нам нужно перевести его вывод сброса в положение LOW (0 вольт). и чтобы отключить возможность его перепрограммирования после того, как он был запрограммирован, нам нужно вытащить его вывод сброса, чтобы он всегда был ВЫСОКИМ (5 вольт). Итак, нам нужно спроектировать схему таким образом, чтобы вывод сброса был ВЫСОКИМ (5 вольт) по умолчанию.Но как только к нему подключен другой программатор, он может подтянуть вывод сброса микросхемы AVR программатора к НИЗКОМУ (0 вольт). Вот почему мы используем подтягивающий резистор 10 кОм на выводе сброса.

Как вы заметили, вывод сброса микросхемы ATtiny44 соединен с выводом RST на разъеме вывода ISP через резистор 0 Ом. после загрузки прошивки на микросхему ATtiny44 мы удалим этот резистор с нулевым сопротивлением, чтобы исключить возможность повторного перепрограммирования платы.

Поскольку нам нужно использовать нашу плату программатора для программирования других плат AVR, наша плата программатора должна быть способна подавать сигнал сброса на другие платы AVR, которые нам нужно запрограммировать.Итак, мы также подключаем вывод ввода / вывода от микросхемы ATtiny44 к выводу RST заголовка вывода ISP, чтобы передать сигнал сброса другим микросхемам AVR, которые нам нужно запрограммировать.

Чтобы уменьшить любой высокочастотный шум или любые падения напряжения, исходящие от источника питания, мы используем разделительный конденсатор 1 мкФ между VCC (5 В) и GND.

Мы также используем резонатор 20 МГц в качестве источника тактовой частоты для микросхемы ATTiny44 вместо внутренних часов, чтобы добиться большей точности.

Мы используем два стабилитрона 3,3 В в качестве ограничителей напряжения для регулирования напряжения от 5 до 3,3 В. Согласно спецификациям V-USB и USB, напряжение на линиях передачи данных USB не должно превышать 3,3 В. Кроме того, мы используем подтягивающий резистор 1,5 кОм на выводе D USB, чтобы его можно было распознать как низкоскоростное устройство на стороне хоста.

Наконец, я отредактировал доску. Я добавил на плату светодиодный индикатор питания.

Рекомендуется отсоединить вывод VCC от разъема вывода ISP, чтобы убедиться, что программатор AVR не пытается подавать питание на плату, которую мы хотим запрограммировать. плата, которую мы хотим запрограммировать, должна обеспечивать собственное питание. Если мы не отключили контакт VCC на заголовке ISP, программатор AVR и программируемая плата будут получать ток через порт USB (с вашего компьютера). если ваш USB-порт не может обеспечить такой большой ток или при каких-либо обстоятельствах короткого замыкания, это может вызвать огромные проблемы для вашего компьютера.

Производство печатных плат

Как видите, я изготовил эту плату на фрезерном станке с ЧПУ в Fab Lab Egypt. Но если вы ищете производство высококачественных печатных плат с паяльной маской и шелкографией по очень справедливой цене и быстрой доставкой по всему миру без минимальных требований, вы можете заказать всего 10 штук за 5 долларов. Вы можете заказать свой на PCBWay. Вы также можете поддержать меня, просто заказав эту доску по моей ссылке.


Мы любим открытый исходный код.Вы можете скачать все исходные файлы платы из моего репозитория на Github.

Пайка печатных плат и размещение компонентов

MINOS2 900.0 MHZ USB
Название детали Количество
ATTINY44A Микроконтроллерный чип 1
CER RESONATOR 15 900.0 MHZ 1 SMD 1
6-позиционный разъем заголовка 0.100 ″ SMD 1
CAP CER 1UF 50V 10% SMD 1206 1
RES 10.0K OHM 1-4W 1% 1206 SMD 1
RES 1.0K OHM 1-4W 1% 1206 SMD 1
RES 499 OHM 1-4W 1% 1206 SMD 2
RES 100 OHM 1-4W 1% 1206 SMD 2
DIODE ZENER 500MW 3.3V SOD123- 2
LED Синий CLEAR 1206 SMD- 1
Компоненты платы программатора AVR

Загрузка прошивки в программатор

Чтобы загрузить прошивку FabISP на плату программатора FabISP AVR, нам нужен другой программист, который поможет нам загрузить прошивку на нашу плату FabISP.мы будем использовать плату Arduino UNO в качестве программатора ISP и подключим ее к нашей плате программатора FabISP AVR.

Во-первых, нам нужно загрузить скетч «ArduinoISP» на плату Arduino UNO. Вы можете найти этот эскиз в файлах-> Примеры-> ArduinoISP-> ArduinoISP.

После загрузки на плату Arduino UNO. Давайте подключим наш программатор FabISP AVR (Target) к плате Arduino UNO (Programmer).

D10 (Arduino) -> Reset (Цель)
D11 (Arduino) -> MOSI (Target)
D12 (Arduino) -> MISO (Target)
D13 (Arduino) -> SCK (Target)
GND (Arduino) -> GND (цель)

Как вы можете заметить, мы подключаем конденсатор 10 мкФ между выводом Reset и выводом GND платы Arduino UBO.Как вы заметили, мы не обеспечиваем питание целевой платы напрямую от платы Arduino. Мы обеспечиваем питание платы программатора FabISP AVR (целевой), подключив ее отдельно к ноутбуку через порт USB. И не забудьте сделать общий GND между двумя платами, подключив GND платы программатора FabISP AVR (целевой) к GND Arduino UNO (программатор).

После подключения платы Arduino UNO (программатор) К плате FabISP (Target) нам необходимо скомпилировать прошивку FabISP и загрузить ее на плату FabISP.Плата Arduino UNO будет действовать как мост между моим ноутбуком и платой FabISP. Поскольку я использую компьютер Mac, я скачаю AVR CrossPack. CrossPack — это среда разработки микроконтроллеров Atmel AVR®, работающая в Mac OS X от Apple, аналогичная AVR Studio в Windows. Он состоит из компилятора GNU, библиотеки C для AVR, программы загрузки AVRDUDE и нескольких других полезных инструментов ». После перехода на веб-сайт AVR CrossPack нажмите кнопку «Загрузить» и установите файл .dmg .Вот и все!

Затем нам нужно скачать прошивку FabISP по ссылке ниже. Makefile , который находится внутри исходной папки прошивки, готов к использованию с avrisp2 или usbtiny, , если вы будете использовать другой программатор из этих двух вариантов, он не будет работать. Итак, я внес некоторые изменения в этот Makefile , чтобы сделать его совместимым с Arduino Uno , который я использую как программист.И теперь он готов к использованию с вашим Arduino UNO в качестве программиста, вы можете скачать его по ссылке ниже.


Теперь мы откроем терминал и перейдем в папку с прошивкой. Затем очистит все ранее скомпилированные файлы, написав и очистите . Затем нам нужно сгенерировать новый .hex , который соответствует нашему новому MakeFile . Мы будем использовать команду make hex .

Затем нам нужно написать команду make fuse , чтобы установить предохранители, чтобы плата использовала внешние часы.Вы должны увидеть ответ, как на первом изображении. Наконец, используйте команду make program , чтобы записать нашу прошивку на плату для работы в качестве программиста AVR.

Тестирование программиста FabISP AVR

После выполнения предыдущих шагов ваш компьютер должен теперь распознать плату как ISP. Поскольку я использую компьютер MAC, щелкните логотип Apple, затем щелкните «Об этом MAC», затем «Отчет о системе».

Затем в левом меню в разделе «Оборудование» нажмите «USB».ваш программатор должен быть опознан вашим компьютером по имени FabISB . Это означает, что ваш провайдер AVR теперь готов к работе!

FabISP AVR Programmer 3D-печатный корпус

Я разработал корпус для программатора Tiny AVR, вы можете скачать его по ссылкам ниже. Я распечатал эти детали на 3D-принтере с заполнением 20% без опор.

Вот и подошел к концу учебник, спасибо за ваше терпение и ознакомьтесь с нашими предстоящими учебниками о том, как использовать этот программатор Tiny AVR и как программировать свои собственные печатные платы.Не стесняйтесь отвечать на любой интересующий вас вопрос!

Выбор программатора для микроконтроллеров AVR

Как только вы начнете что-то строить с микроконтроллерами, вам нужно принять во внимание одну вещь, это адаптер для программирования. Это устройство, позволяющее загружать в чип скомпилированный код. Я не знаю, интересно ли создавать адаптер для программирования своими руками, который не гарантирует поддержки всех микросхем, а также не будет безопасным и надежным. Ниша микроконтроллеров AVR — одна из самых интересных, если говорить о программистах.Если вы посмотрите файл конфигурации AVRDUDE, вы обнаружите, что их около 50. Многие из них сделаны своими руками, другие — официальные.

Когда я начал с микроконтроллеров, я также искал дешевый и простой в сборке адаптер для программирования. Так что я построил несколько, если несколько лет.

Первым из них был программатор на основе RS232, который работал с популярным в то время программным обеспечением PonyProg. Позже последовал программист порта LPT:

Оба они хорошо работали либо с PonyProg, либо с AVRDude.Но затем порты COM и LPT устарели, поэтому следующим логическим шагом стал интерфейс USB. Вероятно, самым популярным программатором DIY на базе USB был USBASP, первоначально разработанный Томасом Фишлем. Опять же, он работает с программным обеспечением AVRDude. Но проблема была в корявых обновлениях и стабильности драйверов. Для некоторых это работает; для некоторых они утверждают, что это не так. Я построил свой, и он работал очень хорошо.

Вероятно, последний созданный мной самодельный программатор — это программатор STK500V2 от tuxgraphics.com.

Он отлично работал, пока AVRStudio не был обновлен с V4 до V5, а затем до V6. Это означало, что никаких обновлений прошивки не было, и это вообще не работало, поскольку для AVRStudio требуется оригинальный адаптер. Он по-прежнему отлично работает с AVRDude.

Оригинальный адаптер, который стоит воткнуть

Это был отличный опыт с программистами DIY, но они никогда не работали так, как я хотел. Вы всегда должны искать обновления, искать подходящий пользовательский интерфейс. И они никогда не работали с AVRStudio или вообще не работали.Энергию, которую вы тратите на поиск или создание адаптера, можно было бы использовать в другом месте. Почему бы не иметь подходящий инструмент, который всегда работает и все еще актуален.

Я настоятельно рекомендую приобрести программатор AVRIPS MkII для основных нужд программирования AVR, который является официальным программистом, разработанным ATMEL. Он работает из коробки с последней версией AVRStudio, где вы можете выполнять все задачи, связанные с чтением и записью Flash / EEPROM, установкой предохранителей / битов блокировки, выбором скорости программирования, калибровкой генератора в красивом графическом интерфейсе.Говоря об адаптере AVR ISP MKII, стоит упомянуть, что он поддерживает все программные интерфейсы AVR, такие как ISP, PDI и TPI. AVRISP MKII также поддерживает и обнаруживает весь целевой диапазон напряжения от 1,6 В до 5,5 В. Он полностью совместим с USB2.0 с частотой программирования SCK до 8 МГц.

Самое главное с оригинальным адаптером — ощущение, что все работает всегда. Программист сейчас не так уж и дорог, чтобы искать дешевую и сомнительную замену. Если вы хотите программировать на других платформах, таких как MacOS или Linux, здесь он работает без проблем с использованием программного обеспечения для программирования AVRDude.

AVRISPMKII — программист, и он только это делает. Если вам нужно продвинуться дальше — например, отладить программы ваших проектов, вам следует поискать другие инструменты, такие как JTAGICE mkII или AVR ONE, в списке продуктов ATMEL.

Как использовать Arduino Uno в качестве программатора AVR

Когда вы начинаете возиться с микроконтроллерами, одним из самых важных инструментов, которые вы будете иметь в своем арсенале, является программатор микросхем. Программистов для разных типов микроконтроллеров очень много.Таким образом, тип вашего программатора зависит от типа микроконтроллера, который вы хотите запрограммировать. Например, 8051, PIC, AVR и ARM являются примерами микроконтроллеров. В этом исследовании мы увидим, как использовать Arduino Uno в качестве внутрисистемного программатора для микроконтроллеров AVR. Примером микроконтроллера AVR является микроконтроллер Atmel 328P, который находится в самой Arduino. Другой пример — популярный микроконтроллер ATTiny85.

Конечно, есть программисты, созданные специально для программирования микроконтроллеров AVR, но в этом посте мы будем использовать Arduino Uno в качестве программатора AVR.

Необходимые компоненты

Конфигурации

Чтобы использовать Arduino для программирования микроконтроллеров, вам необходимо настроить Arduino как внутрисистемный программист. Для этого вы загрузите скетч (программу) ArduinoISP в Arduino. Следуйте инструкциям:

Шаг 1. Откройте Arduino IDE. Выберите файл -> Примеры-> ArduinoISP-> ArduinoISP

Шаг 2: Подключите Arduino для использования в качестве программатора к вашему компьютеру.

Шаг 3: Подтвердите / выберите порт, к которому подключена плата Arduino. Инструменты-> Порты

Шаг 4: Проверьте и загрузите скетч (программу) в Arduino.

Браво! Теперь у вас есть программатор AVR. Мы будем использовать этот программатор AVR на базе Arduino для программирования наших микроконтроллеров или даже других плат Arduino.

Контроль состояния программирования

Если вы хотите контролировать состояние вашего программатора AVR на базе Arduino во время процесса программирования, вы можете подключить три светодиода к контактам 7, 8 и 9 программатора, как показано на схеме ниже.

Скетч Arduino ISP, который мы загрузили в наш программатор AVR на базе Arduino, предварительно запрограммирован для этой функции.

Контакт 7 = Программирование (включается во время программирования)

Контакт 8 = Ошибка (включается в случае ошибки программирования)

Контакт 9 = Heartbeat (остается включенным после включения программатора)

Подключение программатора AVR к целевому микроконтроллеру

Чтобы запрограммировать любой микроконтроллер AVR с помощью вашего программатора или другой платы Arduino, вам необходимо сопоставить определенные контакты программатора AVR с целевым микроконтроллером.Контакты 10, 11, 12 и 13 программатора AVR используются как контакты данных. Конфигурации следующие:

Контакт 10 = СБРОС

Контакт 11 = ICSP-4 = MOSI

Контакт 12 = ICSP-1 = MISO

Контакт 13 = ICSP-3 = SCK

Расположение выводов ICSP

Также рекомендуется подключить контакты 5v и GND программатора AVR к 5v и GND целевого микроконтроллера, если мы программируем другую плату Arduino.

После установления соединения между программатором AVR и целевым микроконтроллером, вам необходимо определить в вашей Arduino IDE, что вы используете Arduino в качестве ISP в качестве программиста.Перейдите в Tools-> Programmer-> Arduino в качестве ISP.

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

Arduino Uno
Атмель 328P
ATTiny85,

Примечание. В приведенных выше примерах схем предполагается, что мы используем программатор для записи загрузчиков в целевые микроконтроллеры. В ситуациях, когда целевой микроконтроллер уже имеет загрузчик, и вы используете программатор для загрузки скетча в целевой микроконтроллер, вам необходимо удалить Atmel 328P из программатора.

Если вам нравится этот учебник, вы можете поделиться им с друзьями с помощью кнопок социальных сетей, и если вы построили схему или у вас есть какие-либо вопросы, сообщите нам, используя поле для комментариев ниже. Спасибо за прочтение.

Сделайте свою собственную плату AVR. Плата AVR — важная разработка… | от Ahmad Mujahid

Плата

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

Предварительный

Чтобы следовать этой инструкции, вам необходимо иметь базовые знания о пайке, создании прототипов с перфорированной платой, считывании схем и микросхеме AVR Atmega.

Как работает плата AVR?

Прежде чем создавать плату AVR, обратите внимание, что вам также понадобится программист для программирования микросхемы AVR. Ваша плата работает только как носитель для установки вашего чипа и обеспечивает соединение между вашим чипом и любыми периферийными устройствами или датчиками.Он не может запрограммировать ваш чип. Наиболее распространенным программатором, который используется с платой разработки AVR, является USBasp. Программатор

USBasp для AVR

USBasp использует протокол связи SPI (последовательный периферийный интерфейс) для программирования микросхемы AVR. SPI — это синхронная связь между двумя устройствами для передачи и приема информации друг другу. Чтобы узнать больше о коммуникации SPI, вы можете прочитать эту статью на SparkFun.

В этом случае важно знать, как работает SPI.По крайней мере, вы будете знать, какие контакты необходимо подключить к программатору USPasp. USBasp имеет 10 контактов. Мы будем использовать несколько из них, чтобы создать соединение с вашим микроконтроллером, чтобы мы могли его запрограммировать.

USBaps pins

Список необходимых контактов:

  • Pin 1 (MOSI (Master Out Slave In))
  • Pin 2 (Vcc)
  • Pin 5 (RST (Reset))
  • Pin 7 (SCK (Serial Clock) ))
  • Pin 9 (MISO (Master In Slave Out))
  • Один из любых контактов GND

С помощью этого программатора вы можете запрограммировать любые микросхемы AVR, такие как Atmega328p, Atmega8A – 16PU, Atmega32A, Atmega16A и т. Д.без установки на него загрузчика.

Давайте создадим вашу плату AVR!

После того, как вы немного познакомитесь с USBasp, пора подготовить необходимые материалы для этого проекта. Есть:

  • 1 монтажная плата (рекомендуется 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.

Вот несколько важных соединений, которые вам необходимо создать:

  1. Соедините вывод MOSI USBasp с выводом MOSI AVR (вывод 17).
  2. Соедините вывод MISO USBaps с выводом MISO AVR (вывод 18).
  3. Соедините контакт SCK USBasp с контактом SCK AVR (контакт 19).
  4. Соедините контакт RST USBasp с контактом RST AVR (контакт 1).
  5. Соедините контакт VCC USBasp с контактом VCC AVR (контакт 7).
  6. Подключите контакт 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:

  • Используйте штекер с гнездом для вашего генератора. при необходимости вы можете легко изменить его.
  • Создайте полосу Vcc и GND с 1×3 или 1×5 контактной полосой заголовка.Это будет полезно, если когда-нибудь вам понадобится контакт источника питания.
  • Подключите все порты DDR к контактному разъему.Итак, вы можете использовать их для своей программы в качестве ввода / вывода.
  • Вы можете использовать штыревой или женский штыревой разъем в зависимости от вашего желания.

Программные интерфейсы микроконтроллера AVR — ISP, JTAG, TPI, PDI и UPDI

Когда микроконтроллеры AVR были впервые представлены в 1995 году, системное программирование было простым, с одним методом программирования (последовательный интерфейс программирования или SPI) и рекомендованным 10-контактным целевым интерфейсом 5 x 2. В течение 10-15 лет это оставалось неизменным, за исключением добавления JTAG-программирования на некоторых устройствах и перехода к целевому разъему 3 x 2 6-pin.За последние несколько лет, как сорняк, выросли новые интерфейсы, включая TPI, PDI и UPDI. Что все это значит и как это на вас влияет?

Классический ISP или SPI
Этот метод программирования прост и дает немного проблем, если вы следуете правилам интерфейса ISP в вашей цепи — см. Руководство по схеме AVR ISP. Стандартный заголовок, рекомендованный Atmel, представлял собой 10-позиционный коробчатый заголовок 5 x 2 с шагом 2,54 мм (0,1 дюйма). Для повышения надежности здесь использовались чередующиеся линии заземления, но компания Atmel решила, что в этом нет необходимости, поэтому перешла на 6-ходовой жаток 3 x 2.

SPI прост, поддерживается всеми программистами, и его сложно заблокировать от микросхемы AVR, за исключением некоторых небольших 8-контактных микросхем, для которых можно перенастроить контакт сброса. Затем им нужно 12 В, чтобы сбросить это изменение вывода сброса, и сейчас очень немногие программисты поддерживают это.

К недостаткам SPI относится

  • Использование контактов — необходимо 4 контакта
  • Скорость программирования привязана к целевой тактовой частоте, максимум 1/4 тактовой частоты
  • Медленнее при низком напряжении

Программирование JTAG

JTAG был введен в микроконтроллеры AVR с 40 и более контактами, и эта шина также может использоваться для программирования.Этот метод быстрее и не зависит от целевой тактовой частоты. Минусы:

  • Отключение предохранителя включения JTAG (JTAGEN) предотвращает программирование JTAG — вам нужен ISP, чтобы очистить это
  • 4 контакта порта предназначены для JTAG
  • Целевой разъем 10- или 14-контактный с разводкой, отличной от ISP

JTAG доступен на некоторых устройствах ATxmega, а также на более крупных AVR.

Программирование TPI
Это было введено для ограниченного количества микросхем ATtiny и означает Tiny Programming Interface.Это ATtiny10, ATtiny102, ATtiny104, ATtiny20, ATtiny4, ATtiny40, ATtiny5 и ATtiny9.

Это двухпроводной интерфейс, который использует вывод сброса для часов и специальный вывод для данных. С точки зрения пользователей, он в точности совпадает с интерфейсом ATxmega PDI. Это единственный интерфейс, доступный на этих устройствах ATtiny, поэтому его необходимо использовать для них.

Эти устройства ATtiny очень маленькие и дешевые, но не доступны в корпусе DIP и не используются широко.

Интерфейс PDI
Это интерфейс программирования, доступный на всех микроконтроллерах ATxmega, хотя некоторые также имеют JTAG.Функционально он аналогичен интерфейсу ATtiny TPI и использует те же два контакта — RESET для синхронизации и специальный контакт для программирования данных.

Существуют строгие правила для схемы сброса, чтобы предотвратить любые проблемы с программированием. Любой подтягивающий резистор должен быть не менее 10 кОм или быть полностью удален, любой развязывающий конденсатор сброса должен быть удален, как и любая другая нагрузка на RESET. Вывод данных PDI должен быть предназначен только для программирования. Microchip предлагает 6-контактный разъем 3 x 2.

Это быстрый метод программирования с использованием синхронного последовательного порта (данные UART с часами или USART), который обычно справляется со скоростью 230 400 бод, но при более низких напряжениях этот процесс должен быть медленнее.

Интерфейс UPDI
Это новейший метод программирования, и с тех пор, как Microchip взял на себя Atmel, он кажется предпочтительным для всех новых AVR. С другой стороны, все эти новые устройства доступны только в SMD-пакетах, поэтому они, очевидно, не нацелены на обычного пользователя, который, вероятно, продолжит использовать существующие устройства, такие как ATmega328 или ATmega1281.

Этот программный интерфейс представляет собой нечто среднее между Debug-Wire и PDI, но в нем используется только одна строка, такая как Debug-wire.Это последовательный интерфейс без часов, поэтому на практике он медленнее, чем PDI. Однако эти новые чипы представляют собой небольшие устройства ATtiny и несколько устройств ATmega до 48 КБ, а не гораздо более крупные микроконтроллеры ATxmega.

Поскольку у него нет часов, единственный вывод — это сброс для программирования данных. Вывод сброса может быть настроен на сброс, UPDI или GPIO в байтах предохранителя, по умолчанию для новых устройств — UPDI. Если это изменить, потребуется импульс 12 В для входа в режим программирования и перепрограммирования микросхемы.Не все программисты поддерживают этот импульс 12 В, поэтому будьте осторожны при изменении конфигурации сброса, иначе вы можете заблокироваться.

Хотя используется только один контакт плюс VCC и GND, Microchip рекомендует 6-контактный разъем 3 x 2 контакта в качестве разъема для программирования.

Заключение
Как пользователь, обычно не является проблемой, какой метод программирования используется. Убедитесь, что ваш программист поддерживает нужный вам метод, и следуйте рекомендованной схеме подключения провайдера. Портативные программаторы Kanda AVR и ATxmega поддерживают SPI, JTAG, UPDI, TPI и PDI, но стандартный блок AVR поддерживает только SPI, JTAG и TPI.См. AVR и ATxmega Handheld Programmer для получения информации о поддержке AVR UPDI и ATxmega PDI.

Выбор программатора AVR — Embedds

Как мы говорили ранее, существует множество программистов AVR, из которых можно выбирать. Самые простые из них — программисты на битбэнге. Это прямолинейные программисты, которые могут быть построены с использованием всего лишь небольшого количества резисторов (или вообще без резисторов). Это может быть преобразователь COM, LPT или USB-to-TTL.

Программисты Bitbang своими руками

Пример программатора LPT порта

Вероятно, их проще всего построить, поскольку нет необходимости преобразовывать какие-либо сигналы, поступающие из порта.Буферный чип используется только в целях безопасности для защиты порта компьютера. Еще более простой кабель для программатора можно найти здесь.

Программатор

COM (RS232) немного сложнее, так как он должен преобразовывать сигналы RS232 в TTL. Обычно для этого используются микросхемы MAX232. Самый простой программатор COM, который я смог найти, — это даже без микросхемы MAX232:

Программаторы

LPT и RS232 немного устарели, так как COM, а порты LPT исчезают с компьютеров, особенно с ноутбуков. Так что, если вы собираетесь, лучше используйте USB.Также доступны несколько USB-программаторов, сделанных своими руками. Большинство из них работают одинаково — компьютер имитирует их как виртуальные COM-устройства. Какой из них выбрать — тоже ваше решение. Если вы не хотите связываться с другим программным обеспечением, но AVRStudio ищет AVRUSB500V2 на базе STK500. Отлично работает в AVRStudio 4:

Есть еще один отличный USB-программатор, который работает только с программным обеспечением AVRDUDE, это USBasp. Основным преимуществом этого является то, что он эмулирует USB чисто программно — поэтому не требуется дополнительных USB для последовательного чипа:

Если вы поищете в Интернете, вы найдете больше клонов программистов.Нет существенной разницы, самое главное то, что она доставляет программу на чип.

Профессиональные программисты AVR ISP

Если вы не хотите связываться с вещами, сделанными своими руками, откройте свой кошелек и получите профессионально сделанного программиста со схемой поддержки и защиты. С ними вы всегда будете уверены, что это работает. Они не такие уж и дорогие, так что купите. Это может быть AVRISP или AVRISPv2.

Или вы можете использовать STK500, который все еще активно используется в качестве платы для программирования и разработки.Он имеет различные заголовки для разных микросхем AVR. Единственным недостатком является то, что у него есть только последовательный интерфейс. Для работы с USB вам понадобится конвертер USB в последовательный.

Как более продвинутый дизайнер, вы можете выбрать AVRDragon, основанный на USB. IT работает как универсальный программатор AVR и эмулятор / отладчик. Если цена не кусается, дерзайте.

Загрузчики бутылочек AVR

Это последняя опция, но достаточно полезная для программирования AVR. Загрузочная загрузка — это так называемое самопрограммирование, когда внутри микросхемы выполняется небольшая резидентная программа, которая принимает передачу через любой желаемый интерфейс.Вы можете подключить USB, последовательный кабель или даже карту флэш-памяти, например SD, и загрузить прошивку без программиста. Какими бы крутыми ни были загрузчики, вам понадобится программист, который поставит загрузчик первым. У загрузчиков есть ограничения, так как они не позволяют программировать плавкие биты.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *