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

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

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

  • Работает с несколькими операционными системами – 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.

Скачать прошивку, рисунок печатной платы и драйвер USBasp программатора (скачено: 1 161)

Оригинал статьи

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

В радиолюбительских журналах и сети Интернет приводится множество схем программаторов. Они отличаются способом подключения к компьютеру: через LPT, COM, USB. Программаторы для порта LPT наиболее простые, для COM — чуть сложнее. Для программатора, подключаемого к USB-порту, нужно иметь либо микроконтроллер, либо специализированную микросхему, преобразователь USB — UART. Кроме этого, разные программаторы предназначены для прошивки разных микроконтроллеров: AVR или PIC, при том, что алгоритм программирования этих двух типов микроконтроллеров отличается незначительно. Поэтому само собой напрашивается желание собрать универсальный программатор для любых микроконтроллеров — AVR и PIC.


Оптимальной нам показалась приведённая ниже схема программатора. Он подключается к COM-порту компьютера и содержит известную микросхему MAX232, которая корректно работает с любым COM-портом (у разных компьютеров уровни порта могут существенно отличаться от стандарта), защищая его при случайных ошибках монтажа или подключения. Программатор имеет панельки для разных корпусов микроконтроллеров, а также возможность для внутрисхемного программирования ICSP, когда программатор подключается проводами к плате с микроконтроллером или непосредственно к ножкам микроконтроллера без установки его в панельку. Программатор видится программами как JDM, поэтому проблем с программным обеспечением не возникает. Можно рекомендовать программу IC-PROG 1.06В.


Переключение режимов AVR — PIC производится микропереключателем. Процесс работы устройства индицируется четырьмя светодиодами. Программатор прост и не требует наладки, используются очень распространённые детали.

Вместо микросхемы 74LS00 можно поставить К555ЛА3 или КР1533ЛА3, транзисторы, в принципе, заменимы на похожие. У данной схемы есть одна странность — номиналы токоограничительных резисторов для светодиодов. Так как светодиоды подключены к разным участкам схемы, напряжения на этих участках также разные, из-за чего светодиоды светятся с разной яркостью. Для того, чтобы это исправить, можно попробовать подобрать резисторы, в частности — уменьшить R4 и R7. Вместо КД523 можно использовать распространённые 1N4148.

Печатная плата.lay (для Sprint Layout) Разводка выполнена под SMD-резисторы, остальные компоненты — в обычном исполнении.

Внимание! На печатной плате проводки MOSI и MISO к панельке ATMEGA8 показаны неправильно, их нужно перекинуть. Также C7 и C9 имеют перемычки — их нужно убрать.

Работа с IC-PROG

Скачивать программу нужно с официального сайта:

http://www.ic-prog.com/index1.htm

В каталоге программы должны находиться следующие файлы:

icprog.exe — непосредственно программа
icprog.sys — драйвер доступа к портам под XP

Необходимо нажать правой клавишей мыши на файле icprog.exe и выбрать «свойства». На вкладке «совместимость» необходимо поставить галочку «запустить в режиме совместимости» и выбрать Windows 2000.

Далее необходимо зайти в меню «Настройки» и выбрать пункт «Программатор». Тип программатора необходимо установить JDM и указать COM-порт, к которому физически подключен программатор. Для очень быстрых компьютеров можно также установить задержку ввода-вывода. В этом же окне необходимо указать интерфейс «Прямой доступ к портам». Все галочки параметров сигналов должны быть сняты.

Затем необходимо зайти в меню «Настройки» и выбрать пункт «Опции», вкладку «Общие», где установить галочку «Включить NT/2000/XP драйвер». При этом появится окно подтверждения установки драйвера и программа перезапустится.

После этого программа готова к работе с программатором.

7 нравится? 3

Хочешь почитать ещё про схемы своими руками? Вот что наиболее популярно на этой неделе:
Схемы и печатные платы блоков питания на микросхемах UC3842 и UC3843
Регулируемый блок питания из блока питания компьютера ATX
Практика переделки компьютерных блоков питания в регулируемые лабораторные
Коля одобряет.

Есть вопросы, комментарии? Напиши:

Комментарии: 1 2345

А кондюк 232 со второй ноги правильно стоит???

AVR шьёт аналогично.

Посмотрите даташит на вашу MAX232, может быть надо по-другому включить конденсаторы. Если светодиоды мигают, значит интерфейс работает. Попробуйте подробно всё описать, может что-нибудь придумаем. Так-то это проверенный программатор.

С 2011 года много воды утекло,и возможно что менялось в схеме и забылось.Если можно,то на емаил:[email protected],скиньте рабочий программатор,схему и фото или что нибудь из печатки.Не хочет работать и всё!

Собрал данный девайс и был потрясён,спалил 3 микрухи max232 а толков никаких,не читает,не записывает,даже не стирает.Единственное что хорошо делает то моргают красиво светодиоды.8-волтовая КРЕНка подключена землёй к 5 вольтам,в процессе работы на шине 5Вольт появляется напряжение 6,7В.Печатка выполнена как у китайцев под продажу.У кого может есть переработанная рабочая схема?Жаль такая хорошая печатка получилась.

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

Собрал девайс. Микросхема MAX232CPE, пришлось перепаять С3 и С5.Горит Power, моргают RXd и VPP при чтении и записи пишет ошибка, что не так? Помогите пожалуста!!!

Одно из двух: или по схеме или по даташиту. Говорят, есть разные ревизии MAX232, отсюда и такие варианты с этим конденсатором. Не знаю, насколько это правда, но у одних работает так, у других — этак.

Добрый день. Эта схема с печатной платой были найдены в интернете в 2011 году, конструкция была успешно повторена.

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

Работает именно в таком варианте, без доработок, с AVR и PIC.
Стабилизаторы рекомендуется брать в мощных корпусах, потому что они нагреваются, т.к. разница напряжений на выходе и выходе существенна. Но радиаторы к ним не требуются. Диод можно заменить на 1N4148 или подобный.
По поводу остального подсказать могут только посетители.

1. Добрый день. Есть несколько вопросов по схеме.

Скажите пожалуйста, в вашей схеме программатора выход «reset» для AVR не стоит подтягивать к «+» резистором 4,7 — 10 к?
2. Есть ли смысл VСС запитывать от отдельного стабилизатора 7805 и развязать от питания IC1 и IC2?
3. Ещё один вопрос. В схемах других программаторов на разъёме PIC есть контакт PGM, посаженный на землю через резистор 1к. Он нужен?
4. Есть смысл на шину VСС разъёма PIC поставить джампер на случай повторного перепрограммирования БУ контроллеров или задержка питания VСС делается программно?
5. Стабилизаторы в каких корпусах лучше брать в мощных или маломощных? Греться будут?
6. Можно заменить диод КД523 на КД 521 или КД522?
7. Под какой программой удобнее всего работать?
8. Могут программы для этого программатора – IC-PROG, PonyProg, WinPic работать под Win7-32? Что для этого надо сделать?

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

Почему «земля» 7808 подключена на «+» 7805 ?

Комментарии: 1 2345

Пользовательские теги: програматор авр схемауниверсальный программатор своими руками[ Что это? ]

Главная Радиолюбителю Разное

Khazama AVR Programmer на русском

Программатор Khazama AVR Programmer достаточно популярен среди любителей радиоэлектроники. Однако, среди начинающих пользователей, которые только знакомятся с 8-битными микроконтроллерами AVR, имеются и те, кто слабо владеет английским языком (ведь интерфейс программы доступен только на английском и русскоязычного перевода в сети Интернет не найти, сама программа последний раз была обновлена аж в июле 2011 года и возможности установки сторонних переводов не поддерживает).

Как быть?

Альтернатива Khazama AVR Programmer на русском языке

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

ПРОГРАММАТОР AVR USB

Это такой софт как:

1.AVRDUDE_PROG (можно найти версию с интерфейсом преимущественно на русском языке);

2.PonyProg (свободное ПО, распространяется бесплатно, можно найти русифицированную версию);

3.Atmel Studio (для русификации потребуется установить Visual Studio);

Перевод Khazama AVR Programmer на русский

Если альтернативный софт вас не устраивает по ряду параметров, можно использовать Khazama AVR на английском, но с русскими подсказками по основным меню. А подсказки с переводом мы дадим ниже.

Скачать саму утилиту можно с оф.сайта — http://khazama.com/project/programmer/ (доступны 2 версии — v1.7 и v1.6.2, последняя предполагает поддержку ATMega88 и ATMega8).

Первый пункт меню “File” (Файл) выглядит следующим образом:

Раздел «AVR» — здесь можно найти поддерживаемы серии программируемых микроконтроллеров.

Пункт «Load FLASH file to Buffer» переводится как «Загрузить файл прошивки типа Flash в буфер».

Позволяет подготовить прошиваемый файл и загрузить его в оперативную память ПК для быстрого чтения при последующей записи.

Пункт «Load EEPROM file to Buffer» отвечает за аналогичную операцию, но для памяти типа EEPROM.

Пункт «Save FLASH Buffer as…» позволяет сохранить ранее считанные данные памяти Flash в буфер, как отдельный файл на жестком диске (сохранение производится без каких-либо расширений, поэтому, если работаете со специфичным софтом, можно добавить расширение самостоятельно, например, .hex).

Пункт «Save EEPROM Buffer as…» — аналогичная операция, но для данных, считанных с памяти EEPROM.

Exit – выход.

Второй пункт View (на русск. «Просмотр», «Обзор») имеет следующие вложенные меню.

«View Flash Hex Data» – открывает шестнадцатеричный редактор данных Flash.

«View EEPROM Hex Data» — открывает шестнадцатеричный редактор данных EEPROM.

Третий раздел Command (русск. «Команды») выглядит так.

Fuses and Lock Bits… — «Фьюзы (флаги настроек микроконтроллера) и блокирующие биты».

Открывает окно управления битами настроек и блокировок.

Write Flash Buffer to Chip – записать данные для Flash памяти из буфера в микроконтроллер.

Write EEPROM Buffer to Chip – аналогично для EEPROM памяти.

Read EEPROM to Buffer – аналогично для EEPROM.

Verify Flash – проверить Flash (верификация).

Verify EEPROM – проверить EEPROM.

Erase Chip – стереть данные микроконтроллера.
Auto Program – автоматическая программа (выполняются сценарии, определенные в пункте ниже).

Program Options – опции программы (имеется ввиду автопрограмма).

Ну и последний пункт «Help» («Помощь») предназначен для проверки обновлений программы, уточнения версии ПО и перехода на официальный сайт.

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

Дата публикации: 28.11.2017

Мнения читателей
  • Serg / 06.05.2018 — 04:30
    и ни слова под какое железо stc500 у меня не видит

Вы можете оставить свой комментарий, мнение или вопрос по приведенному вышематериалу:

ПРОГРАММАТОР ДЛЯ НАЧИНАЮЩИХ

Рассказать в:
Сейчас мы соберём USB программатор для начинающих (начинающих радиолюбителей), большинство скажет это сложная схема, начнем с LPT, но я хочу сказать, что схема очень простая, а нужно запрограммировать только один раз и не паритесь. Схема программатора
Как видно из схемы, тут нет кварцевого резонатора — это фишка схемы. Я сделал не очень компактный программатор, при желании можно уменьшить, а если есть двухсторонний текстолит, то можно запихнуть в USB, так что будет совсем незаметно.

Простейший программатор для ATmega8

А сейчас небольшая фотосессия. Но сначала разводка USB: Забыл сказать, что сначала не надо запрограммировать RSTDSBL, а запрограммировать CKSEL3, CKSEL2, CKSEL1 подключить к ПК, если компьютер нашел неизвестное устройство — это еще ничего не значит, должен установиться драйвер. После того можно запрограммировать RSTDSBL, так как количество ног у микроконтроллера ограничено, кстати можно использовать ATtiny45 или ATtiny85, главное чтобы было 20su в смд или 20pu в дип — например АTtіny45 20su в магазине не было ATtiny45, зато был ATtiny85 20su. Его запрограммировал так же как и ATtiny 45 и фюзы одинаковы, они отличаются только память flech. Фюзы которые нужно запрограммировать CKSEL3, CKSEL2, CKSEL1, BODLEVEL0 (детектор пониженного напряжения на 1,8 В), RSTDSBL. Можно использовать любой разъем — там micro USB и тому подобное, я не мудрил, а взял штекер USB, снял шкуру, подпилил, припаял и получилось нечто такое, которое смахивает на обычную флешку. Подрезаем канцелярским ножиком, но осторожно, не порежетесь — лезвие очень острое. Вытаскиваем пластмасску с контактами, тоже очень осторожно.
Возьмем и подпилим, чтобы был доступ жала паяльника до контактов USB, вверху уже лежит протравленная плата для USB программатора. Её травил в перекиси водорода + лимонная кислота. Он травит быстро.
Лудил плату. Сплавом Розе я еще не разжился, поэтому лужу жалом паяльника, для лужения бросил камушек в растворитель канифоли, помешал, камень растворился, набрал в шприц (пропорции не помню), покрыл плату и лудится очень удобно. Припаиваем нашу пластмассу, только не путайте при пайке контакты, а то как я будете перепаивать, внизу на фото неправильно. Далее припаиваем резисторы и МК, здесь увидел ошибку и перепаял USB, соединение разрез должен быть на одной стороне с контроллером.
Другую сторону — стабилитроны должны быть не больше чем 500 мА.
Припаиваем шлейф кабель, желательно чтобы шлейф был экранированный, у меня кабель с кардридера использовал, брал провода которые экранированные — два оранжевых и экран = фольгу бросил на массу, фото без корпуса, надо сначала проверить на работоспособность, программа тора подключена ATtiny2313A зашилась скоро, я прошиваю на частоте 250 кГц, а фюзы на 2 кГц — так надежнее.

Корпус из чего сделать не было, у меня ни флешек лишних, ни поломанных модемов… ответ пришел сам — зажигалка, выпускам газ если он там есть распыляем, зажигалка такого типа изначально другая, фотка зажигалки потому, что первую уже распилил, а сфоткать забыл.
Выламываем среднюю стенку, запихиваем наш программатор, закрепляем горячим клеем, перед окончательным закреплением откорректируете положение платы.
И вот что получилось.
Удачи всем в повторенные конструкции, а программатор avrdude USBtiny, также в архиве вы найдете драйвера прошивку разные печати платы сокращенно ПП на платах есть надпись KALYAN datasheet или сокращенное K.d — это из-за нехватки места, на ЧП вы можете быть уверены в качестве разводки печатной платы, всем удачи. С вами был KALAYN.SUPER.BOS АРХИВ:Скачать

Раздел: [Схемы]
Сохрани статью в:
Оставь свой комментарий или вопрос:

Наше сообщество в VK, а ты с нами? Присоединяйся!!!

Тясячи схем в категориях:
-> Прочее
-> Измерительная техника
-> Приборы
-> Схемыэлектрооборудования
-> Источники питания (прочие полезные конструкции)
-> Теоретические материалы
-> Справочные материалы
-> Устройства на микроконтроллерах
-> Зарядные устройства (для батареек)
-> Зарядные устройства (для авто)
-> Преобразователи напряжения (инверторы)
-> Все для кулера (Вентилятора)
-> Радиомикрофоны, жучки
-> Металоискатели
-> Регуляторы мощности
-> Охрана (Сигнализация)
-> Управление освещением
-> Таймеры (влажность, давление)
-> Трансиверы и радиостанции
-> Конструкции для дома
-> Конструкции простой сложности
-> Конкурс на лучшую конструкцию на микроконтроллерах
-> Конструкции средней сложности
-> Стабилизаторы
-> Усилители мощности низкой частоты (на транзисторах)
-> Блоки питания (импульсные)
-> Усилители мощности высокой частоты
-> Приспособления для пайки и конструирования плат
-> Термометры
-> Борт. сеть
-> Измерительные приборы (тахометр, вольтметр итд)
-> Железо
-> Паяльники ипаяльные станции
-> Радиопередатчики
-> Вспомогательные устройства
-> Телевизионная техника
-> Регуляторы тембра, громкости
-> Блоки питания (лабораторные)
-> Усилители мощности низкой частоты (на микросхемах)
-> Другие устройства для усилителей
-> Cветовое оформление новогодней ёлки или праздничного зала
-> Глушилки
-> Телефонные жуки
-> Инфракрасная техника
-> Медицинская техника
-> Телефония
-> Для животного мира
-> Конструируем усилители
-> Антенны и усилители к ним
-> Звонки
-> Электронные игрушки
-> Усилители мощности низкой частоты (ламповые)
-> Управление двигателями (питание от однофазной сети)
-> Программаторы микроконтроллеров
-> Сверлилки
-> Изучаем микроконтроллеры
-> Радиоприемники
-> Сигнализации
-> Сотовая связь
-> USB-устройства
-> Блоки питания (трансформаторные)
-> Радиостанции простые в изготовлении
-> Источники питания (для усилителей)
-> Прочеее
-> защита от короткого замыкания (электронные предохранители)
-> Зарядные устройства (для радиостанций)
-> Мигалки
-> Cварочное оборудование
-> Кодовые электронные замки
-> Блоки питания (бестрансформаторные)
-> Часы
-> Управление поворотниками
-> Зажигание
-> Управление водой (насосы для скважин или колодцев, полив растений)
-> Моделирование
-> Блоки управления стеклоочистителями
-> Предварительные усилители
-> Защита от перегрузки и перегрева
-> Динамики
-> Ремонт бытовой техники
-> Дистанционное управление компьютером
-> Акустические микрофоны и преобразователи
-> Спутниковое ТВ
-> Gsm антенны, примочки, усилители, ретрансляторы.
-> Пищалки
-> Роботы
-> Ретрансляторы
-> Паяльники и паяльные станции
-> Звуковые сигнализаторы
-> Рули и джойстики
-> Схемы электрооборудования
-> Все для "кулера" (Вентилятора)
-> Работа с BGA микросхемами
-> Фильтры
-> Сабвуферы

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

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

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

Схема предназначена для программирования только 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 - если программируемый МК низкоскоростной <1.5 МГц, то необходимо установить данный джампер. Тогда SCK уменьшится с 375 кГц до примерно 8 кГц.

Установка драйверов под 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 начиная с версии 5.2
  • - поддерживается USBasp начиная с версии 1.11.9.6
  • Khazama AVR Programmer - Windows XP/Vista GUI приложение для USBasp и avrdude
  • eXtreme Burner - AVR - программа Windows GUI для USBasp

Скачать прошивку, исходники, драйверы вы можете ниже

Последнюю версию всегда можно взять на официальном сайте USBasp

Печатные платы

Под данный программатор разработано более 10 различных вариантов разводки печатной платы, которые можно скачать ниже, либо на страничке официального сайта.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК AVR 8-бит

ATmega88

1 ATmega8 В блокнот
D1, D2 Стабилитрон

1N4729A

2 В блокнот
C1 Электролитический конденсатор 4.7 мкФ 1 В блокнот
C3 Конденсатор 0.1 мкФ 1 В блокнот
C4, C5 Конденсатор 22 пФ 2 В блокнот
R1, R2 Резистор

68 Ом

2 В блокнот
R3 Резистор

2.2 кОм

1 В блокнот
R4, R5 Резистор

1 кОм

2 В блокнот
R6 Резистор

10 кОм

1 В блокнот
Q1 Кварцевый резонатор 12 МГц 1 В блокнот
LED1 Светодиод Зеленый 1 В блокнот
LED2 Светодиод Красный 1

Предлагаем Вам схему USB программатора на микроконтроллере ATmega8. Этот USB программатор Вы можете собрать своими руками за несколько минут на макетной плате Breadboard Half (BREADBOARD - 456 HOLES) размером 82х59 мм. На этой плате хватит места и для программируемых микроконтроллеров в корпусах до DIP-28.

Этим USB программатором можно программировать микроконтроллеры AVR ATmega и ATtiny (другие программировать не пробовал). Этот программатор заметит Вам плату Arduino, он более удобен для экспериментов с различными микроконтроллерами и микропрограммами для них (скетчами). USB программатор работает под управлением микропрограммы ArduinoISP.

Минимальный набор деталей для программатора

  1. Микроконтроллер ATmega8 (ATmega8A-PU, ATmega8L-PU) 1шт
  2. Макетая плата Breadboard Half (BREADBOARD - 456 HOLES) размером 82х59 мм 1шт
  3. Интерфейс USB-UART (подойдет USB-DATA кабель от старого сотового телефона) 1шт

Остальные детали, которые вы увидите на схеме для работы универсального, самодельного, простого программатора не существенны.

О подключении пробников, бузер можно подключить на линию MISO и слушать как общаются между собой микроконтроллеры. Светодиод можно подключить к 15 ножке микроконтроллера ATmega8, если схема собрана правильно и в Atmega8 залит скетч ArduinoISP, светодиод будет плавно менять яркость свечения.

Прежде чем воспользоваться самодельным программатором, необходимо загрузить в микроконтроллер программатора микропрограмму ArduinoISP из примеров к программе Arduino IDE. А еще раньше, необходимо настроить микроконтроллер ATmega8 на работу на частоте 8 МГц без внешнего кварцевого резонатора.

Мы здесь, приведем последовательность действий по прошивке микроконтроллера ATmega8 с помощью платы Arduino UNO и программы Arduino IDE. Возможно, так же, воспользоваться каким нибудь другим методом.

1. Добавьте в программе Arduino в список поддерживаемых устройств микроконтроллер ATmega8 без bootloader с тактовой частотой 8МГц. Внесите изменения в файл sketchbook/hardware/boards.txt, добавив в него следующую секцию:

############################################################## a8noboot_8MHz.name=ATmega8 (no boot 8 MHz int) a8noboot_8MHz.upload.maximum_size=8192 a8noboot_8MHz.bootloader.low_fuses=0xa4 a8noboot_8MHz.bootloader.high_fuses=0xdc a8noboot_8MHz.build.mcu=atmega8 a8noboot_8MHz.build.f_cpu=8000000L a8noboot_8MHz.build.core=arduino a8noboot_8MHz.build.variant=standard ##############################################################

Уточнить размещение папки sketchbook можно в программе Arduino в меню Файл / Настройки . Если в папке sketchbook нет папки hardware, создайте ее и создайте файл boards.txt

2. Подключите микроконтроллер ATmega8 к плате Arduino UNO как описано в Программатор для ATmega8A на Arduino с ArduinoISP .

3. В программе Arduino выберите Сервис / Плата / ATmega8 (no boot 8 MHz int) и Сервис / Записать загрузчик . Далее загрузите в микроконтроллер ATmega8 программу ArduinoISP Файл / Примеры / ArduinoISP и Загрузить .

4. Соберите программатор.

Для программатора Вам понадобится интерфейс USB-UART. Вы можете воспользоваться кабелем от старого сотового телефона, как описано в этой статье Подбор USB-DATA кабеля вместо USB-UART модуля для самодельного Arduino. Что на мой взгляд, очень удобно. Но вместо этого кабеля Ваш программатор можно подключить к компьютеру с помощью платы преобразователя USB-UART.

На фотографии программируется микроконтроллер ATtiny84.

В данной статье мы опишем „шаг за шагом” этапы изготовления 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.

Недавно решил сделать себе программатор STK500v2. Пользую в основном CodevisionAVR. Старый не совсем подходил, да и нужен был внутрисхемный программатор. Долгие поиски в сети и чтение форумов привели меня к “AvrUsb500 by Petka”. Программатор был собран и я получил массу положительных эмоций - эффект примерно такой, как будто пересел с советского автопрома на иномарку! Конечно AVR910 надежен как танк - программная реализация USB в нем таких глюков не имеет. Но на тот момент это все были мелочи, по сравнению с преимуществами работы прямо из CodeVision и высокой скорости. Довольно долгое время эти два программатора служили мне верой и правдой, пока с AVR910 не пришлось расстаться. Вот и решил собирать очередной программатор.

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

Эти все “выбрыки” за пару лет эксплуатации порядком надоели, потому решил модифицировать оригинальную схему. На глаза попалась CP2102 - USB-UART преобразователь. Простая схема, хорошие отзывы о самом производителе (SiLabs) и главное - доступная цена.

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

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

Программирование контроллера производится внутрисхемно. Пятачки предусмотрены на плате. Установка фузов ATMega8:

  1. Субъективно все стало работать на 20-25% быстрее.
  2. Полностью пропали глюки присущие FT232. Определяется без проблем каждый раз, даже после быстрого “перетыкивания” USB, без проблем заработала со всеми моими шнурками.
  3. Драйвера моя Windows 7 вытянула с сервера обновления и поставила сама.

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

Сразу хочу оговориться - проблемой “курицы и яйца” особо не заморачивался, все цепи самопрограммирования через USB вырезаны в угоду размеру. Эта компиляция программатора рассчитана больше на людей с более-менее приличной подготовкой. Причин тому несколько - корпус CP2102 MLP28 (5×5 мм) с контактными площадками на “пузе” вместо ножек - без определенных навыков не поставить, дорожки 0.25 мм - делал обычным утюгом.