Меню

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

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

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

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

Источник

Схема USB программатора на Atmega8 своими руками

Данная схема USB программатора, построенного на микроконтроллере Atmega8, довольно проста в изготовлении, ее можно собрать своими руками буквально за один вечер.

Фактически это AVR-910 популярной схемы Prottoss-a. USB программатор надежен и имеет в своем арсенале функцию, позволяющая восстанавливать микроконтроллеры с неверно установленными фьюзами.

Следует отметить, что для прошивки самого микроконтроллера Atmega8 программатора понадобится простой LPT-программатор.

Печатную плату можно сделать своими руками по известной технологии ЛУТ. Поэтому на описании изготовления платы останавливаться не будем, а перейдем сразу к описанию.

Итак, у нас все детали схемы припаяны без ошибок и коротких замыканий, плата очищена от остатков флюса. Теперь переводим переключатель SA2 в положение «МОД», подсоединяем наше устройство к простому LPT-программатору и включаем питание.

Теперь необходимо занести программу в память Atmega8. В качестве программного обеспечения можно применить Uniprof или Code Vision AVR. Перед программированием необходимо выставить следующие фьюзы (для Uniprof):

По завершению прошивки Atmega8, переводим переключатель SA2 в положение «НОРМ», подсоединяем программатора к USB разъему компьютера. Если все шаги выполнены верно, то компьютер должен без проблем обнаружить новое подключенное устройство.

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

Поговорим о программном обеспечении которое необходимо для работы с данным программатором. Он поддерживает такие оболочки как: AVR Prog, AVR Studio, ChipBlasterAVR и, конечно же, Code Vision AVR.

Достаточно удобной программой, я считаю, является Code Vision AVR, пример работы, которой подробно написано здесь.

Читайте также:  Проект поделка своими руками по технологии

Для справки, приведем типовую распиновку USB:

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

  • Atmega8 — 1 шт.
  • Кварц 12МГц — 1 шт.
  • Диод 1N4007 – 2 шт.
  • Светодиод — 3 шт.
  • Резисторы: 68 Ом — 2 шт., 330 Ом — 8 шт., 1,5 Ом — 1 шт., 100 Ом -1 шт., 1,5 кОм -1 шт., 10 кОм -1 шт., 1 мОм -1 шт.
  • Конденсаторы: 0,1мк — 3 шт., 22мк х 10В — 1 шт., 22p — 2 шт.

Скачать прошивку, драйвера и печатную плату (853,5 KiB, скачано: 20 263)

Похожие записи:

64 комментария

Обработал протокол USB на обычтном AVR через внешние прерывания?! Браво!

На программе Code Vision AVR какие фюзи поставит

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

LPT программатор подключите к ISP разъему. Не забудьте переключатель SA2 перевести в положение МОД

Можно изменить резисторы R3, R6, R9-R15 330Ом на другую?
И конденсаторов С1, С4, С6 0,1Мкф?

у меня вопрос. как будет работать атмега 8-16пу от напруги 3.3в если ее рабочее напряжение от 4.5 до 5.5в ? возможно ли запитать шину от стаба на 3.3 и саму мегу от усб 5в?

Доброго времени суток! Автор, спасибо за статью, программатор спаял — работает штатно. К делу подошел с размахом и сделал сразу три платы: программатор, плату переходников и еще одну. Вопрос, для чего третья плата? И если, есть, принципиальная схема.

Извиняюсь за драйвера не ту папку глянул. Всё равно не обновляются.

Здравствуйте! Уважаемый admin, после подключения прог-ра к пк в дисп-ре задач надпись Unknown Device пытаюсь установить драйвера из папки пишет «Наиболее подходящее программное обеспечение для данного устройства уже установленно» «Система Windows определила, что драйверы для этого устройства не нуждаются в обновлении.» Могли ли установиться драй вера во время программирования самого мк и в папке драйвера нет драйверов для 7-ки. Подскажите как быть? Спасибо!

Всем доброе время суток. Собрал я этот программатор и решил поделиться впечатлениями.
Собираеться он буквально за вечер (только не повторяйте моих ошибок. Сперва соберите (купите, выпаяйте) все нужные запчасти а уж потом начинайте паять. А то у меня больше времени уходило на поиск компонентов чем на их впайку 🙁 ). Атмегу я взял Atmega8 А PU . Прошивал на COM программаторе, Юнипрофом. Камень прошивал отдельно (сперва прошил а уж потом впаивал).
После сборки, очистки от флюса, проверки на КЗ, подключил к компьютеру. После установки драйверов обнаружился первый минус. Windows Vista и Windows 7 хочет цифровой подписи драйверов. А у AVR — 910 такой подписи нет 🙁 . Пришлось отключать проверку цифровой подписи и запускать ОС в тестовом режиме. После чего мой ящичек перестал материться и принял драйвера программатора. Тестировал программатор в Code Vision AVR. И тут обнаружился второй Бальшоооой минус. Скорость :(. Больше 5 мин читать прошивку меньше 1 Кб. ЖЖЖЖЖуть. После привычных 8-10 сек в Юнипрофе. Пофиг ему (програматору ) как там
стоит джампер . Быстрей работать не хочет. Посему решил чуток переделать программатор. Переделка сводилась только к перепрошивке камня. Скачал прошивку под программатор USBasp . (схемы этих программаторов идентичные разница только в прошивке) Прошивал уже на плате. Обнаружилась интересная вещь — Унипроф увидел камень даже без подключения генератора. (Видимо из-за впаяного кварца). После установки драйверов (драйвера имеют цифровую подпись) начал тестить
новоиспеченый программатор. Сперва в avrdude-5.8 и графической оболочке avrdudeprog33. Чтение 43 сек.))) (при больше 5 в АVR 910) запись чуть больше мин. ( AVR DUDE есть еще один плюс. Тут можна програмно менять скорость прошивки и не заморачиваться с джампером.) Дальше тестил в Khazama AVR Programmer . Тут у меня чет не пошло 🙁 (при чтении выкидывало ошибку). Но у всех этих программ есть один недостаток (на мой субъективный взгляд). тут не возможно просмотреть программный код. Как в Юнипроф или Понипрог. И тут я наткнулся в необятных просторах инета на небольшую программку гениального индуса — eXtreme Burner — AVR. Интересная программка . Простой , интуитивно понятный интерфейс. Быстрая скорость прошивки. Правда есть два минуса. Большой — не все авиэрки поддерживаються. И второй минус — фьюзы нужно проставлять Битами. (хоть можна выбирать из выпадающего списка). Правда если что — то перемудрили с фьюзами есть возможность сбросить по умолчанию.
На етой оптимистической ноте закончу. Выводы делайте сами.

Читайте также:  Ремонт татами своими руками

Добрый вечер.
Объясните почему после прошивки атмеги 8 и установки Fuse как показано на фотке, программатор перестает видеть контроллер вообще, все проги выдают ошибку, что не могут связаться с контроллером, что я сделал не так.

Все дело в том, что после прошивки, микроконтроллер начинает работать от внешнего задающего генератора (кварца). Подключите кварц (можно на 8МГц) на выводы 9 и 10.

Спасибо, заработало)) Подскажите с какими программами avr910 работает?

Я использую Khazama AVR Programmer

В Usbasp (китайский) применен кварц 12 мгц, можно его заменить на кварц 8мгц?

Здравствуйте!
В программаторе ATmega8A-PU, будет работать?
Программатор поддерживает ATmega328P-PU ?

Подскажите, как в Proteus поставить ISP.

А,что же так медленно работает?Половину»Атмеги-32″ читает 15 минут.Светодиод»Чтение» еле видно-скважность импульсов,очевидно,очень большая.На выходе «Led»1 Мгц.Система»Windows-7» 32 бит.

спасибо большой уважаемый админ

день добрый ребят размер печатной платы какой

ширина 80мм, высота 55мм

При подключении программатора к ноуту с Windows 8.1 пишет устройство неопознано и в диспетчере устройств «контроллере USB» пишет «Неизвестное USB-устройство(недопустимый дескриптор конфигурации»
На Windows 7 опознается как AVR-910

Добрый вечер, спасибо за статью.
Подскажите можно ли в место Atmega8
использовать Atmega328p-pu

можно ли вместо LTP программатора прошить COM-программатором Громова?

Можно ли им прошить Pic 18f 2685?

Подскажите, в чем может быть проблема, все сделал правильно, перепроверил раз 10. При подключении 3 раза мигают лампочки чтения и записи и на компе определяется как неизвестное устройство с ошибкой дескриптора. Кстати, я так понял нужна Атмега8 16pu, у меня Atmega8A-pu, это ни на что не влияет?

Скажите люди,зачем в списке деталей присутствует резистор 1.5 Ом,если в схеме его нет? И Рез. 330 Ом там 9 а не 8 судя по схеме.

Вроде все на месте:
Резистор 330 Ом (R3,R5,R8,R9,R11,R12,R13,R14,R15).
Резистор на плате указан 1,5к (R4).

В списке деталей и 1,5 Ом, и 1,5кОм. Как раз 1,5 Ом на схеме нет, а вот 330 Ом на схеме 9 штук, а в списке 8. Детали покупал по списку — как раз 1,5 Ом лишний, а 330 не хватило (

В архиве есть схемка переходника,на ней есть кондеры и кварц. Но какие?? Кто подскажет?

Кварц поставьте на 8 Мгц, конденсаторы 15…22 пФ (хотя можно и без них)

Добрый вечер.
Объясните почему после прошивки атмеги 8 и установки Fuse как показано на фотке, программатор перестает видеть контроллер вообще, все проги выдают ошибку, что не могут связаться с контроллером, что я сделал не так.

А какие меги он может шить, конкретного списка нет?Буду очень признателен.

Какой тип программатора выбирать в Codevision, com порт порт смотреть в системе?

ПРОШИВАЙТЕ ПРОШИВКУ АВРДОПЕР ДЛЯ АВР 910, (перезагруска)

собрал данный программатор на SMD компонентах(ток микруха в DIP-e),как и полагается фьюзы в первой микрухе не так выставил-в итоге залочил ее,вторую прошил корректно,ничего не греется,светодиоды горят только в момент прошивки,на LED-меандр 1MHz…теперь еще один программатор в коллекции….в общем все мучения того стоили.
Рекомендую к повторению.

подскажите новичку!! тока без умничания) куда подключается разъем ISP? и зачем его подключили к простому LPT-программатору.

Источник