Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Доработка программатора USBasp

Я работаю с микроконтроллерами уже несколько лет. По началу прошивал микроконтроллеры через LPT порт. Потом это надоело, и я собрал программатор "USB Tiny" на микроконтроллере ATtiny2313, и пользовался им на протяжении трёх лет.

01_USB_Tiny_zlodey.jpg

Программатор "USB Tiny" всем устраивал, за исключением некоторых недостатков:

  • Драйвер на Windows 7 x64 ставился только после перевода «Винды» в «Тестовый режим». Иначе – никак не получалось заставить его работать. В связи с чем установка программатора на другой ПК начиналась с лишних ненужных телодвижений;
  • Нужна была возможность отключения питания программатора, чтобы программируемая схема могла питаться от собственного источника питания;
  • Программатор мной был сделан на скорую руку, и провода (штекер USB и штекер под МК) просто торчали из корпуса, и время от времени они изнашивались (перетирались при интенсивном использовании и при переноске, либо в месте входа в программатор, либо в месте вблизи разъёмов).

Было решено собрать новый программатор, и учесть все мелочи, которые скопились на протяжении трёхлетнего срока эксплуатации программатора. Посмотрев в Интернете информацию по программаторам, я решил, что буду собирать USBasp, но сделаю небольшие доработки...

Итак, какие моменты я хочу учесть при сборке нового программатора:

  • Прежде всего, сделать программатор в форм-факторе «коробочки», без торчащих проводов, всё сделать на разъёмах. В случае износа проводов, можно будет просто подключить новый провод к разъёму на корпусе программатора;
  • Сделать возможность выбора питания: питание от программатора, либо МК питается от устройства, в котором он установлен;
  • Если выбрано питание от программатора, то сделать выбор напряжения питания: 3,3 либо 5 вольт (это тоже немаловажно, так как схемки бывают совершенно разные…);
  • У программатора USBasp есть функция «Slow SCK» которая позволяет прошивать микроконтроллеры, работающие на пониженной тактовой частоте, поэтому обязательно вывести кнопку включения этой функции;
  • Сделать кнопку сброса прошиваемого МК, иногда тоже бывает нужно, при отладке некоторых девайсов;
  • Уж делать так делать – добавить предохранитель с возможностью быстрой замены.

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

Протравил

Смыл тонер ацетоном, и просверлил отверстия

04_041120131319.jpg

Спаял и покрыл лаком

На торцах корпуса находятся разъёмы: USB для подключения к ПК, и DB-9 для подключения к микроконтроллеру. На корпусе наклеена наклейка с распиновкой выводов разъёма DB-9:

06_SAM_1748.JPG

07_SAM_1762.JPG

На боковой части корпуса расположены две кнопки и гнездо для предохранителя. Красная кнопка выполняет перезагрузку подключенного к схеме МК (reset target), синяя кнопка понижает тактовую частоту (SCK) до 375 КГц, это нужно для прошивки микроконтроллеров, работающих на низкой тактовой частоте. Предохранитель нужен для дополнительной защиты USB порта от перегрузки, материнские платы всякие бывают, мне попадались и без защиты по току (!!!).

08_SAM_1752.JPG

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

09_SAM_1756.JPG

Приклеил самоклеющиеся ножки.

10_SAM_1820.JPG

Готово!

11_SAM_1824.JPG

Про процесс прошивки и другую подробную информацию можно прочитать в этой статье, ну а я приведу лишь модифицированную схему программатора:

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

Из схемы видно, что добавлен LDO-стабилизатор на 3.3 вольта (NCP1117-3.3), стабилитроны в цепи USB-порта (любые на напряжение 3.6В), а также добавлен предохранитель на ток 0,5 ампер. Также ниже можно скачать модифицированную мной печатную плату в формате SL5, из которой выкинут разъём программирования (он теперь находится на корпусе программатора), благодаря чему сильно упростилась «разводка» платы на одностороннем стеклотекстолите. Также в своём варианте я применил smd-резисторы типоразмера 1206, под которые плата и была переделана.

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 МК AVR 8-бит
ATmega8-16PU
1 Поиск в магазине ОтронВ блокнот
Линейный регулятор
TLV1117-33
1 NCP1117-33Поиск в магазине ОтронВ блокнот
Стабилитрон3.6В2 Поиск в магазине ОтронВ блокнот
D1, D2 Светодиодлюбой2 Поиск в магазине ОтронВ блокнот
R1 Резистор smd 1206
10 кОм
1 Поиск в магазине ОтронВ блокнот
R2, R6 Резистор smd 1206
68 Ом
2 Поиск в магазине ОтронВ блокнот
R3 Резистор smd 1206
0 Ом
1 ПеремычкаПоиск в магазине ОтронВ блокнот
R4, R5 Резистор smd 1206
390 Ом
2 Поиск в магазине ОтронВ блокнот
R7 Резистор smd 1206
1.5 кОм
1 Поиск в магазине ОтронВ блокнот
Резистор smd 1206
270 Ом
1 Поиск в магазине ОтронВ блокнот
C1, C2 Конденсатор smd 120618 пФ2 Поиск в магазине ОтронВ блокнот
C3 Конденсатор smd 12060.1 мкФ2 Поиск в магазине ОтронВ блокнот
C5 Конденсатор10 мкф 10в1 Поиск в магазине ОтронВ блокнот
Q2 Кварц12 МГц1 Поиск в магазине ОтронВ блокнот
FUSE Предохранитель0.5 Ампер1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 12.06.2014 0 0
Я собрал 0 4
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 3.3 Проголосовало: 4 чел.

Комментарии (49) | Я собрал (0) | Подписаться

0
hax #
Как основной недостаток было указано отсутствие нормальных драйверов под Win x64, так эта проблема решилась?
Ответить
0
BARS_ #
Работаю в Win8 x64 никаких проблем с драйверами не было. До этого была Win7 x64, проблем так же не было. Как и под Ubuntu
Ответить
0

[Автор]
Zlodey #
При использовании USBASP проблем с x64 не имеется
Ответить
0

[Автор]
Zlodey #
Нет, не решилась. У USBtiny такие кривые драйвера. USBasp не имеет такого недостатка и работает на x64 без проблем
Ответить
0
BARS_ #
Стабилитроны добавлены не правильно, они должны подключаться к МК через резисторы 68 Ом, а к USB напрямую. Их назначение - ограничить уровни с МК (с 5В на 3,3В), а не с USB. И это не ваша доработка, они и у автора схемы есть http://www.fischl.de/usbasp/ По выходу МК надо было добавить низкоомные резисторы для защиты от КЗ, ну или хотя бы поставить МК в панельку для упрощения замены после сгорания.
Ответить
0

[Автор]
Zlodey #
Прошу прощения, я в схеме указал стабилитроны неправильно. На печатке всё припаяно правильно, сейчас исправлю. По поводу стабилитронов - у меня была эта схема, в ней нет стабилитронов
Ответить
0
vovan161 #
Сделал USBasp, наладил с помощью товарища while (1), работает под управлением программы progisp. Работает стабильно, дрова на w7x64 становятся легко, вообще прогер супер!
Ответить
0
infocentrist #
А почему не реализовано автоматическое определение питание, как на Ардуино? Схема из одного элемента состоит.
Ответить
0

[Автор]
Zlodey #
А смысл этого в чем?
Ответить
0
олег #
Ужас, этот корпус, в него 10 таких прогеров влезть могло, зачем? У меня два прогера, один на смд размером с треть спичечного коробка, другой в дип размером с полкоробка.
Ответить
0

[Автор]
Zlodey #
Ну и что? Много места сэкономил, дышать легче стало? Я люблю корпусированные девайсы, а не хлам-печатки, печаток у самого навалом с полкоробка, а толку ноль
Ответить
0
BARS_ #
Неудобно такую коробку за собой таскать. Гораздо практичнее и удобнее маленькую плату. У меня вот так выглядит:
https://www.dropbox.com/s/1hneoizet95v5d0/IMG_20070101_050017.jpg
https://www.dropbox.com/s/mygchf35ishdctx/IMG_20070101_050159.jpg
При работе висит на проводе и не мешается
Ответить
0

[Автор]
Zlodey #
Кому как. Голую печатку я не считаю конечным устройством.
Ваша плата не умеет напругу менять на выходе, нету средств защиты, да и МК сбросить можно только из под винды. Мой вариант гораздо функциональней. Судя по всему, отладкой вы не занимаетесь, так как без кнопки ресета помоему там никак
Ответить
0
BARS_ #
Как это нет защиты? По всем выходам резисторы стоят, сжечь можно только подав на выводы программирования высокую напругу. На КЗ ему пофиг. И вот интересно, как кнопка Reset влияет на отладку? Ладно бы JTAG был, а то только бесполезная кнопка. Не смешите. Да и вывести кнопку на плате в которой МК впаян вообще не проблема. А защит и у вас нет, предохранитель на 0,5А не в счет, он даже сгореть при КЗ не успеет (тем более что ограничение USB тоже 0,5А, т.е. тока для перегорания просто не хватит).. Тем более при каких-либо проблемах ток не всегда прыгает на максимум, чаще просто повышается на 0,1-0,2 А и МК начинает греться. Предохранитель не сгорит, а вот резистор, в моем случае, ограничит ток через схему и не даст выйти из строя. А у вас при малейшей проблеме вылетит МК в программаторе.

Да и к программатором "законченность" является именно платой, а не бесполезным корпусом.
Отредактирован 14.12.2013 21:19
Ответить
-1

[Автор]
Zlodey #
Внутри стоит предохранитель на 250 мА. А то, что у прогера изначально не было защиты по питанию, вы не в курсе. Встречались мат. платы без защиты по току. Кнопка ресета - для отладки. Сразу видно, что прошивок сами не писали. Плюс про переключение питания вы не упомянули. Как вы будете шить 3-вольтовый девайс? 5 вольт подадите? А плата без корпуса является лишь недоделкой, у меня таких навалом, только от них толку мало
Ответить
-1
BARS_ #
Где стоит предохранитель на 250мА? Еще раз говорю, резистор по питанию защищает гораздо надежнее предохранителя. Для какой отладки кнопка ресет? Отладчик и сам умеет сбрасывать МК. Прошивки пишу каждый день и проекты мои на сайте есть, прошивку программатора тоже переписывал, так что поосторожнее с выражениями. А при чем тут переключение питания и прошивка 3 вольтового девайса? Такое ощущение что вы вообще мой ответ не читали, Я НИКОГДА НЕ ПИТАЮ ДЕВАЙСЫ ОТ ПРОГРАММАТОРА, у них всегда есть свое питание. А питать от программатора вообще крайне не рекомендуется и USB. А те МК, что работают в 3 вольтовых схемах прекрасно шьются программатором, работающим от 5В. В случае программатора корпус не нужен! Он только мешает работать. Программатор должен быть маленьким и компактным.
Ответить
0

[Автор]
Zlodey #
А где вы видели резистор по питанию? И с чего это ему там стоять вообще? На случай запитки схемы своим питанием - у меня стоит соответствующий переключатель. А вот с уровнями 3,3 или 5В вы зря. Изучите хотя бы входные цепи МК и диоды которые идут со всех ног на + питания мк. И если уровни на ножках будут 5 вольтовые, на вашу схему попрет 5 вольт независимо от того хотите вы этого или нет. Например LCD от мобильника питается от 3,3 вольт, при программировании у вас попрёт 5 вольт на питание и кирдык дисплею. Предохранитель на 250 ма стоит в держателе
Ответить
0
BARS_ #
Если он на 250мА, то какого фига на схеме указан 500мА? А вы слышали про такую штуку, как стабилитрон? Ставите его, и никакие 5В никуда не попрут. Тем более запитывать всю схему от 3,3В ради одного дисплея, как минимум глупо.
Ответить
0

[Автор]
Zlodey #
Если например 8-битная шина дисплея, то чем ставить 16 резисторов в делители, я запитаю мк от 3,3 вольт. Ещё бывают дисплеи с питанием 3,3 вольт, на которые 5 вольт подавать нельзя. Стабилитрон поставь, резистор поставь, зачем этот огород? Стоит стаб на 3,3 вольта и исправно выполняет свои функции. А вы придумываете какие то отмазки. Насчет предохранителя- 250 или 500 мА не принципиально. Мои девайсы жрут меньше 500 ма. Если нужен больший ток- запитываем от внешки (предохранитель защищает только питание USB)
Ответить
0
BARS_ #
Предохранитель на ток до 0,5А - защищает. 0,5А - НЕ ЗАЩИЩАЕТ. Винстар - дисплеи с которыми ни разу проблем не было. Надо даташит внимательно читать. Да, кстати, по поводу дисплеев, шил схемы с дисплеями от Nokia, питание всей схемы - 3,3В. Дисплеи живые и работают по сей день.
Ответить
0

[Автор]
Zlodey #
Я на "авось" не люблю делать, делаю как положено. Питание 3.3 значит ставим стабилизатор на 3.3. Какие ещё тут проблемы?
Ответить
0

[Автор]
Zlodey #
Кнопка ресет нужна, например, если дисплей при инициализации ведет себя нестабильно (инициализация у нас при старте МК), поэтому ресетим с кнопки и смотрим. У меня с винстарами была такая проблема, очень выручило. С компа мышкой клацать совсем не удобно, а на кнопку я тырцаю не глядя. Девайс без корпуса имхо лень разработчика по типу "сойдет и так". Вообще то все девайсы подключаемые к USB питаются именно оттуда, и странного в этом ничего не вижу
Ответить
0
BARS_ #
Если я знаю, что понадобится часто сбрасывать МК, ставлю кнопку на плату. Место всегда а есть. Программатор в корпусе - маразм разработчика. Вот нафига он нужен?! Воткнул провод в USB, воткнул провод в плату (ибо я его специально делал как можно меньшим в размерах). Программатор висит на проводе и не мешает. А так еще какая хрень место на столе занимает. Короче, больше ничего писать не буду, надоел идиотский спор
Ответить
-1

[Автор]
Zlodey #
Каждому своё. Я программатор часто таскаю туда сюда, без корпуса давно бы уже смд компоненты побились. Я тоже не понимаю чего вы хотите. Я предоставил законченную многофункциональную конструкцию, плата даже лаком покрыта и в корпус заделал, в отличие от вашей питание переключается, ресет есть, питание можно отключить- и будет как у вас питание от девайса. А вы мне про резистор втираете...
Ответить
+1
Сергей #
Спасибо автору за печатку. Схема то давно известная, но вот печатки готовой не встречалось. Соглашусь с предыдущим комментарием. Человек старался, времени не пожалел - спасибо!
Ответить
0
BARS_ #
Печаток полный инет
Ответить
0

[Автор]
Zlodey #
Тут уже надо исходить из тех компонентов, которые в наличии
Ответить
0
Иван #
На мой взгляд предохранитель в данной схеме не нужен, потому что по стандарту все USB порты контролируют ток питания и ограничивают его на нужном уровне, поэтому питание USB порта можно без риска замыкать и ничего не будет. Единственное, что имеет смысл сделать, - поставить диод на питание, потому что обратное напряжение USB порт скорее всего не переживёт.
Ответить
0

[Автор]
Zlodey #
Встречались мат. платы без защиты по току 500 мА
Ответить
0
BARS_ #
Предохранитель на 500мА их не спасет
Ответить
0

[Автор]
Zlodey #
Защита USB порта + предохранитель ИМХО вполне неплохо. А вот питание через резистор, если программируемое устройство питается от программатора, то резистор только раскаляться будет а толку ноль. Микроконтроллер, дисплейчики и т.д. не жрут более 500 мА, нет смысла питальник отдельный цеплять. А вот ваш резистор вынуждает вас использовать внешнее питалово, иначе из резистора получится печка
Ответить
0
BARS_ #
Во первых отладка устройства ВСЕГДА начинается с настройки питания. Во вторых отладка идет на ДЕЙСТВУЮЩЕМ устройстве. В третьих из резистора печка еще ни разу не получалась, т.к. мне религия не запрещает питать устройство от встроенного источника. Какая защита USB порта? В 70% случаев она не спасает и выгорает материнка либо предохранитель на ней. А с вашим предохранителем на 0.5А. остается надеяться только на электронику материнки. Сразу видно, что вам не приходилось ремонтировать заводскую автоматику, когда на плату впендюрили такой предохранитель, что вместе с ним в мир иной отправился блок питания и половина цепей платы (точнее сначала они, а потом уже предохранитель).
Ответить
0

[Автор]
Zlodey #
Странный вы человек. Пишете ересь какую то, чем вам не угодил предохранитель на ток спецификации USB интерфейса? Или больше придраться не к чему? Гордитесь что вы поставили резистор, а мне никто не мешает щелкнуть тумблер и перейти на питание от устройства. Или также щёлкнуть тумблер и выбрать желаемое питание
Ответить
0
BARS_ #
Да потому, что это максимальный ток который может дать USB, т.е предохранитель должен быть на МЕНЬШИЙ ток. Неужели так трудно это понять? Или вы не в курсе, что при токе 0,5А, предохранитель, рассчитанный на 0,5А, спокойно продолжает работать. А сгорит только при токе БОЛЬШЕ, чем 0,5А. Т.е. защиты НЕТ. Если бы вы нарисовали предохранитель на 400-450мА, я бы и слова не сказал.
Да, и открою еще одну тайну, существуют специальные программы для рисования схем, а уж никак на Paint.
Ответить
-1

[Автор]
Zlodey #
Паинт был использован, чтобы показать изменения оригинальной схемы. Статья называется ДОРАБОТКА. Предохранитель на 500 ма при токе 500 ма и не должен сгорать. А вот при превышении тока- уже пожалуйста. По крайней мере я уверен что чих-пых не произойдет, так как при токе КЗ предохранитель просто сгорит. Ну а в вашем варианте просто резистор будет греться-тоже вариант, но он не подходит при питании устройства от USB
Ответить
-1
zeconir #
Ради интереса посчитайте, сколько тепла выделится на резисторе в несколько Ом, и посмотрите, как такое включение резистора используется. Тогда ваша фраза "Ну а в вашем варианте просто резистор будет греться-тоже вариант, но он не подходит при питании устройства от USB" будет неуместна. У самого БАСП, собран на смд, в виде флешки, и мне категорически непонятно, зачем на столе еще отводить место для коробки, когда в процессе работы там обычно место для разрабатываемого прибора не остается. ИМХО, я считаю, что доработки не актуальны. Но повторюсь, это мое мнение, кто думает иначе - честь вам и хвала.
Ответить
0

[Автор]
Zlodey #
Я никого не призываю заниматься корпусированием, и делать эту доработку. Для меня плата это не девайс, а недоделка (возможно из-за лени собравшего)
Ответить
0
Равшан #
А этот программатор точно работает? А то я собирал как-то его оригинал, он включался полностью, но я подключал его с разными к нему подходящими прошивающими программами, но программа просто его не видела и микроконтроллер с ним тоже
Ответить
0
Равшан #
И ещё вы программатор собирали в DIP исполнении, а в SMD он будет работать?
Ответить
0

[Автор]
Zlodey #
Работает, и в SMD в том числе
Ответить
0
Andrey #
А не возникает проблем при работе МК на пониженном напряжении питания? (когда включен режим 3,3В)? По даташиту для ATmega8A (рис 30-1) 12МГц при 3,3В это уже за пределами безопасной зоны.
Ответить
0

[Автор]
Zlodey #
Проблем не возникает. Понимаю, что это уже как бы "сверх возможностей". Но если поставить дополнительно микросхему согласования уровней, то МК можно питать от 5 вольт, а получать логические уровни 3,3 вольта
Ответить
0
Andrey #
Да, поэтому я и удивился, что сделано так просто, а все другие варианты с поддержкой 3,3В используют всегда 5В для МК и отдельную 74AHC125 или что-то похожее для согласования. Причем, насколько я понимаю, этим буфером можно управлять (выключать Hi-Z режим), используя низкий уровень сигнала с ножки МК, куда подключен светодиод режима программирования.
(Changelog: usbasp.2007-10-23 (v1.2)
- red LED turns on before connecting to target device: this signal can be used to control external tri-state buffers - похоже как раз про это)
Т.е. буфер 5В->3,3В можно добавить потом, даже в виде отдельного модуля, подключаемого к ISP 10pin разъему.
Ответить
0

[Автор]
Zlodey #
да, как раз это
Ответить
0
Edvard #
Подскажите, какие выставить фьюзы для прошивки USBasp Атмега8 через Uniprof. Прошиваю программатором Громова, Ponyprog почемуто его у меня не видит
Ответить
0
Kamikadza #
Автор, советую прошить программатор модернизированной прошивкой для возможности прошивать SPI флеш память. Для универсальности советую все же использовать JTAG разъем (все же в мире электроники обычно их используют) и на счет предохранителя... По своему опыту работы с цифровыми устройствами, мозги выгорают гораздо быстрее обычных предохранителей, для реальной защиты лучше сделать источник напряжения с ограничением по току в (допустим в те же 500 мА). А так молодец, мне нравиться корпус, у самого в корпусе программатор хоть и поменьше. Хотя сейчас думаю спаять микро программатор с атмегой поверхностного монтажа с контактами на днище. Очень неплохо смотрится когда просто надевают термоусадку.
Ответить
0

[Автор]
Zlodey #
У меня для SPI флешек есть прогер Chip Prog.
Этот программатор пользую только для написания прошивок на AVR.
Ответить
0
ygrek #
Для чего нужны вывода RxD и TxD?
Ответить
0

[Автор]
Zlodey #
Не вникал в этот вопрос, возможно для отладки кода, или для прошивки через бутлоадер. Можно задать этот вопрос разработчику USBASP.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Бокс для хранения компонентов Набор для сборки - LED лампа
вверх