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

В данной статье мы опишем „шаг за шагом” этапы изготовления 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, который я купил на ebay. Стоит этот программатор avr usb 3$. Это программатор avr микроконтроллеров. Я покажу как им пользоваться, как его первый раз включить, установить драйвера, какой для него есть софт, для него немного другой софт, то есть не такой софт как я показывал в видео о AVR910 программаторе, кстати, видео о AVR910 программаторе, точнее ссылка на это видео будет у меня в конце ролика, можете дождаться конца ролика, кликнуть по ней и вы перейдёте на видео об этом AVR910 программаторе.

Программатор usbasp avr я купил именно потому, что видео с AVR910 программатором, очень популярно, и мне задают очень много вопросов, задают как в комментариях, так и в личке. В комментариях задают мало вопросов, в личке задают очень много вопросов. Я пользуясь случаем, хотел попросить вас, если у вас есть вопросы, конкретно к теме которую я затронул в каком-то видеоролике, пишите мне пожалуйста в комментариях к данному видеоролику. Я на все комментарии получаю уведомления, и я вам обязательно отвечу. Я прошу, так как мне в личку, как правило, задают одни и те же вопросы. Я на них отвечаю, но эти вопросы и ответы видят только те, кто их задавал. Если вы спрашивали бы меня в комментариях, и я ответил, то скорее всего человек прочёл бы комментарий, и у него если и возник вопрос, как и у кого то кто уже спросил меня в комментариях, он получил мой ответ. На комментарии я обязательно отвечу.
Я зашёл на ebay и выбрал самый дешёвый программатор AVR. Это программатор за 3 $. Если посчитать, то себестоимость AVR910 программатора, если у нас в Молдавии покупать — микросхема AtMega8 стоит 2 $, гнездо USB mini стоит 0,4 $, кварц тоже стоит центов 0.35-0.40 $. В общем, тут наберётся как раз на 3 $. Может немного меньше, может немного больше, но это только детали.


Вам ещё нужно сделать плату, запаять всё. Я когда делал программатор AVR910, я его делал чисто из спортивного интереса. Мне было интересно, это были первые пробы SMD компонентов, у меня было очень много свободного времени, так как я был студентом, и я занимался им в своё удовольствие, более того для того, чтобы сделать этот программатор (AVR910), с микроконтроллером, нужно обязательно иметь другой программатор, которым вы запрограммируете микроконтроллер в программаторе AVR910.
Ну и давайте поговорим об программаторе usbasp avr. Первое что я вам скажу — купите себе их два. Не покупайте один, купите два. Объясню почему, сделан он мягко говоря по-китайски. Если посмотрите, вы увидите, что многие детали криво стоят, пайка, сказать что ужасная — ничего не сказать. Отверстия не заполнены припоем, то есть он работает, но качество его… Видно, что повторяемость очень плохая, есть большая вероятность, что какой-то из них может не работать.


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


Да, я и забыл сказать, я купил программатор не AVR910, он тоже для AVR, но это программатор USBasp. Программатор в свободном доступе, это товарищ из Германии его разработал, есть схемы, есть документация на него. У меня под данным видео будет ссылка на мою статью, в которой будут даны все ссылки на софт, на автора проекта. Но китайцы сюда добавил стабилизатор, то есть они немного модернизировали USBasp. Здесь стандартный ISP10 разъём. С программатором идёт такой шнурок, я уже его разрезал и подключил к микроконтроллеру. Я Толику обещал снять видео, и я подпаял к микроконтроллеру провода. Данный программатор USBasp имеет возможность выбора питания, то есть на программируемую схему я могу выбрать что именно я хочу, то есть я могу вообще не питать от программатора схему, вообще не поставив джампер, либо я могу выбрать питание от 5 В сразу от USB,


либо вот так поставив джампер и на программируемую схему пойдёт 3.3 В от USB через данный стабилизатор.


Схема соединения разъёма ISP10 (кликни для увеличения):


О программаторе для AVR больше нечего сказать, остаётся его только вставить в USB порт. Сейчас мы посмотрим, как он определился, поставим не него драйвера, и я покажу программы, с помощью которых можно им программировать. В AVR910 я показывал программу AVRosp, которой можно программировать, используя AVR 910 программатор. AVRosp нельзя пользоваться для использования программатора USBasp. На моём сайте вы скачаете архив, в котором найдёте несколько папок, папка драйвер, и папка софт. В папке драйвер находятся драйвера для этого программатора (UABasp). Я их люблю ставить по ближе к диску С, потому что потом их проще указать. Я их временно копирую на диск С. Теперь я в диспетчере устройств правой кнопкой выбираю «обновить драйверы», он конечно же не может найти, выполняем поиск, показываем откуда искать. Мы хотим с диска С искать. Жмём далее. У меня сейчас стоит Windows 7 x64. Образ оригинального диска, без никаких паков, это чистый windows. В ней ничего не отключено, всё по умолчанию. Я это всё говорю к тому, что AVR910 не хотел работать, точнее драйвера не имели цифровой подписи и windows их блокировал. AVR910 у меня в 64 битной windows 7 не работал. Я когда снимал видео, снимал в 32 битной WIndows, у меня стоят две системы. Всё, USBasp видится как устройство для windows 32.


Дальше уже нужны программы чтобы работать с программатором usbasp avr. Открываем папку софт.


Мне очень понравился avrdudeprog, это графический интерфейс под консольную программку AVR dude. Эта программа поддерживает как AVR910 программатор, так и USBasp. Кстати, данный avrdudeprog программирует при использовании 910 программатора в несколько раз быстрее по скорости, чем стандартный ARVRosp который я показывал в видео. Так что я вам рекомендую перейти на avrdudeprog, даже если у вас есть AVR910 программатор.


Подключаем наше устройство. Устройство запустилось, выбираем AtMega 16, и выбираем стереть всё. Микроконтроллер чист, и как видим он действительно чист, так как на дисплей у меня ничего не выводится.
Дальше выбираем, что мы хотим запрограммировать, ну и жмём программирование. Обратите внимание, как быстро будет идти программирование. Выводится информация, что биты сброшены, флешь очищена перед прошивкой. Было запрограммировано флешь, а потом флешь была прочитана и сверена с тем, что программировалось, то есть проверено, что ошибок нет. То есть была проведена верификация. Ну и как видим, у меня устройство запустилось.
Чем мне avrdudeprog не нравится, так это fuse. Дело в том, что с fuse всё очень и очень сильно напартачено в AVR, дело в том, что по datasheet запрограммированный fuse считается 0. То есть по умолчанию должны быть прямые fuse, то что запрограммировано — 0. Многие программисты считают, что если запрограммировано — должно быть 1. И программистов таких много, программ для программирования очень много, и кто-то придерживается того как в datasheet написано, а кто-то придерживается того, как он считает лучше. Галочка это запрограммировано, или галочка это не запрограммировано? В настройках можно выбрать прямые либо инверсные, и галочки меняются. В этих fuse начинающий 200% запутается. Даже 300%, то есть он залочит себе несколько раз микроконтроллер. Поэтому, я так же приложил несколько других программ для программирования. Обратите внимание, что avrdudeprog сразу работает, её не нужно устанавливать, просто запускаете exe файл, можно даже себе на рабочий стол отправить этот exe, то есть создать ярлык, и оттуда его открывать.
Есть ещё две очень интересные программы. Мне нравится, именно из-за fuse битов. Вообще мне очень нравится avrdudeprog, но для начинающих я бы рекомендовал всё таки eXtreme Burner, устанавливается она также как и обычные программы, ничего в этом сложного нет, просто жмём далее, далее, иногда читайте что написано, установили и пользуемся. Программа eXtreme Burner предлагает пойти на перезагрузку, но я не хочу этого делать, будет и без рестарта работать. Выбираем наш микроконтроллер. Мне не нравится, что ни в одной из них нет как в AVRosp кнопки AutoDetect, нажав на которую, программа считывает с микроконтроллера сигнатуры и сразу определяет что именно за микроконтроллер подключен. Удобно работать с fuse. В eXtreme Burner интерфейс имеет несколько вкладок, flach, eeprom, ну и fuse, вы разберётесь.


Нажимаем сначала прочесть все, программа считала fuse с микроконтроллера. И можно, нажав на кнопку «детали», поменять fuse. В программе eXtreme Burner нет непонятных галочек, а сразу написано, не запрограммировано, запрограммировано. И сделано точно так, как в спецификации AVR, то есть запрограммированно — 0. Единственное чем мне нравится eXtreme Burner, так это тем, что можно сбросить fuse по умолчанию. В данной программе всё тоже не совсем удобно.
Ещё более удобно с fuse в программе Khazama AVR Programmer. Вот такая наипростейшая программа, выбираем AtMega 16. В этой программе постоянно вылезает очень интересная ошибка.


Она не имеет ничего страшного, и сейчас я объясню почему она происходит. Дело в том, что AVR910 программатор как вы помните, имеет штыри, куда мы ставим джампер, и программатор понижает частоту. Дело в том, что по умолчанию идёт 1.5 МГц, а когда вы ставите джампер, частота падает в 4 раза. Так как программатор USBasp сделан таким образом, чтобы он был совместим с Arduino, то он сам переключает частоты, с быстрой на медленную, и Khazama AVR Programmer, уже может прошить любые контроллеры. AVR910 я AtMega которая тактируется на частоте 1 МГц, уже не могу запрограммировать без джампера, то есть мне приходится понижать частоту, для того, чтобы запрограммировать микроконтроллер. USBasp сам переключает частоты, и мне никакой джампер никуда ставить не нужно. Но по спецификации, AVR программатор, то есть программа, отправляет на программатор скорость, с которой должен тактироваться тактовый сигнал, то есть частоту. И в данной программе, можно выбрать частоту, но как я уже сказал, этот программатор сделан совместимым с arduino, то он уже не поддерживает b команды. И поэтому постоянно выходит данная ошибка. Она сильно напрягает, но она стоит того. Нужно много раз нажимать ОК, ОК, ОК. Но обратите внимание, что вы можете выбрать что вы хотите. Начинающему это очень удобно. К примеру, частота. Вот смотрите, нужно поменять частоту процессора — да ради бога, на что хочешь меняй. В avrdudeprog нужно сидеть и выбирать галочки, то есть по хорошему нужно будет сначала посмотреть datasheet, и потом, переключать частотные fuse, так как вам нужно. Естественно, легко ошибиться и можно накосячить. Здесь же всё есть. Но нужно постоянно нажимать ОК. fuse считываются в несколько приёмов, и поэтому нужно много раз нажимать. Если я буду считывать флешь — то мне только один раз нужно нажать ОК. Начинающим я рекомендую эту программу, из-за того, что вы не напортачите со fuse, то есть что-то испортить с fuse будет очень и очень сложно. Ссылку на программы я выложу в своей статье, ссылка будет под данным видео.
Я считаю, что покупка программатора usbasp avr — выгодная покупка, потому что стоит он копейки, примерно столько же, сколько и собрать его с нуля, то есть по стоимости компонентов. Работает программатор хорошо, единственное что хромает — культура производства, как я уже сказал — тут всё криво, микросхема даже запаяна со смещением, я рекомендую купить таких программаторов два. Реально ребята, стоят они копейки уже с доставкой, купите два, один будет как резервный. Вполне возможно, что один из них окажется нерабочим, я допускаю это. Лучше уже потратить 3 $ сверху, но сэкономите месяц времени, если вы вдруг будете покупать второй. Покупка, на мой взгляд, очень и очень выгодна, и я вам рекомендую это сделать.
Ну вот и всё, я надеюсь что это видео было вам полезным, ставьте лайки если вам оно понравилось, подписывайтесь на канал, если вы ещё не подписаны, и желаю вам всех благ, всего вам доброго. Пока, удачи.



Что еще почитать