056-USB-программатор-легко! (USBTiny)

Автор: | 10.10.2010

ТитлНу вот и пришло время нам соорудить USB программатор. Я долго не мог определиться какой бы программатор нам собрать. Выбирал по критериям простоты конструкции и удобства работы с ними, но ничего не нравилось. Выбрать программатор помог случай. Вернее я его не выбирал вообще – я его случайно собрал сам того не подозревая!

А дело было так. Некоторое количество постов назад мы собрали преобразователь USB to UART на ATtiny2313 (а в прошлой статье мы даже улучшили печатную плату). Еще при выборе схемы преобразователя я планировал на его базе (при помощи заливки различных прошивок) получать устройства различного назначения. Тогда я не подозревал, что данный преобразователь можно использовать шире, чем я планировал. Увидев схему USB программатора — USBtiny на ATtiny2313 я понял, что я уже имею готовый программатор!

Посмотрев на схему, сделанного ранее, преобразователя USB to UART (домашняя страничка)

Модифицированная схема преобразователя


и схему USB программатора USBTiny (домашняя страница)usbtiny програматор

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

Теперь все по порядку.
1  Для начала нужно собрать преобразователь (это если Вы его еще не собрали).
Вот рисунок печатной платы преобразователя:
055-T2313-SMD-2 v2.0 - Рисунок печатной платы UART-USB на ATtiny2313
Если интересно — вот статья о преобразователе USB to UART
В собранном виде преобразователь выглядит так:

Внешний вид преобразователя

Обратная сторона платы
Есть вариант платы на обычных-ТН компонентах — смотрим в конце статьи о преобразователе.

2 Немного модифицируем плату
Для того, чтобы обеспечить все необходимые сигналы для программирования впаиваем защитные резисторы номиналом по 100 Ом в линии ножек 12, 16, 17, 18, 19 (номинал не критичен — можно варьировать).

Модифицируем преобразователь

3 Теперь нужно прошить микроконтроллер.
Линии для программатора выведены на общий разъем платы (кроме сброса — стоит отдельно).

Линии программирования
056-usbtinyisp-T2313.hex v1.04 - Прошивка USBtiny программатора для ATtiny2313
056-fuse - Фьюзы для устройства
Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставяться инверсно.
Как правильно прошить AVR фьюзы

Наверно не нужно говорить о том, что для прошивки микроконтроллера Вам понадобится программатор. На скорую руку можно собрать LPT программатор и прошить при помощи UniProf.


4 Далее нам нужен шлейф для того, чтобы соединить программируемое устройство с нашим программатором. Все линии, необходимые для программирования находятся на одном разъеме.

Пинаут программатора
Схема шлейфа проста.

Схема кабеля

Из особенностей — я вынес индикаторный светодиод и балластный резистор для него за плату на разъем — это для того, чтобы плату без перепайки можно было использовать для других устройств (ну и так прикольней — светодиод мигает прямо в разъеме :)).  Кроме того, линия Vcc отделена от общего разъема — это на случай если программируемое устройство запитывается не от USB, а от своего источника (что, в принципе, желательно). Сигнальные линии (SCK, MISO, MOSI) желательно экранировать (например чередованием сигнальных и земляных линий в шлейфе). Длину шлейфа не стоит делать большой — до 50 см, не больше. Если нужно программировать удаленное устройство всегда можно применить USB удлинитель — так надежней. Вот мой готовый шнурок:

Внешний вид кабеля


5 Сам программатор готов, теперь нужно установить драйвер для того, чтобы Винда смогла с ним работать (для Mac OS X & Linux, вродь-как, драйвера вообще не нужно). Тут все просто:

5.1 Скачиваем драйвер, разархивируем его.
Страничка с драйверами

Вставляем преобразователь в USB порт
5.2 Вставляем наш программатор в USB порт.


Сообщение в трее
5.3 В трее появится сообщение о том, что найдено новое устройство.


Мастер нового оборудования
5.4 Запустится мастер нового оборудования.


Место поиска
5.5  Указываем в окошке «место поиска» папку с драйвером.


Драйвер установлен
5.6 Пройдет процесс установки драйвера. Появится окошко сообщающее о том, что драйвер установлен. Чтобы проверить, что мы там наустанавливали — заходим в «Мой компьютер/Свойства/Оборудование/Диспетчер устройств» и находим там наш программатор

Установленное устройство

Винда увидела новое устройство и готова с ним работать.

USBtiny программатор поддерживается AVRDude, а это значит, что многие среды программирования будут с ним работать без проблем. Еще одним достоинством работы с AVRDude является то, что для работы с AVRDude существует множество оболочек GUI из которых можно выбрать подходящую именно для Вас (но об этом в следующей статье).

Я с USBTiny до этого не работал, но отзывы о нем в сети положительные (отличается надежностью и быстротой программирования) — мои тестовый прошивки это подтвердили. ATtiny2313 прошивается за 10 секунд (это вместе с проверкой). Микроконтроллер определяется и программируется надежно — не было ни одной ошибки во время моих тестов. Приятный в использовании программатор!


Файлы к статье:
055-T2313-SMD-2 v2.0 - Рисунок печатной платы UART-USB на ATtiny2313
056-usbtinyisp-T2313.hex v1.04 - Прошивка USBtiny программатора для ATtiny2313
056-T2313-FuseBit - Фьюз-биты ATtiny2313 для USBtiny
USBtiny-cable - Схема кабеля для USBtiny программатора

Смотрим также:
Программируем AVR-микроконтроллеры USBtiny + AVRdude + SinaProg. (в процессе написания)
055-UART to USB – простой преобразователь на ATtiny2313 (Версия 2). — преобразователь USB to UART из которого мы сделали преобразователь.
053-Практичный шнур для применения в электронных проектах. — Как сделать шлейф для программатора.
041-UART to USB – простой преобразователь на ATtiny2313. — Первый вариант платы USB to UART. В статье есть рисунок платы для для TH-компонентов.
Домашняя страничка преобразователя USB to UART
Домашняя страничка программатора USBtiny


ДОПОЛНЕНИЯ.
1 Дмитрий Шпак (Zalognik) сделал довольно удачную разводку программатора. Программатор получился небольшого размера, имеет  стандартный разъем для программирования и, я считаю, будет удобен в работе. Плата двусторонняя.
Программатор USBTiny PCB USBTiny


USBtiny.lay - Разводка USBtiny от Дмитрия Шпака


2 Еще один вариант разводки от Андрея Баранова (Andru_48)

USBtiny.lay - Разводка USBtiny от Андрея Баранова


3 Вариант от mebadboy
Доброе время суток.

Новую печатку я не собирал. Я просто исправил старую — Zalognikа. Там минимум исправлений — одну дорожку перерезать, кинуть проводок, впаять резистор и диод впаять в другое место.
USB-tiny-mebadboy - Печатка USBtiny от mebadboy
Вот лог dmesg при подключении под linux:
usb 4-2: new low speed USB device using uhci_hcd and address 2
usb 4-2: New USB device found, idVendor=1781, idProduct=0c9f
usb 4-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
usb 4-2: Product: USBtiny

4 Вариант от Time191  (Владимир, г. Саратов).
Получилось начертить и развести в Протеусе плату программатора.
Делал под себя, под свой ISP-разъем.
Программировал прямо в плате, джампером соединив Reset c ISP.
Все заработало сразу — большое Вам спасибо!
056usbusbtinytime191.zip - USBTiny от Time191
В приложении есть фото готового устройства, файл в Протеусе и в печатка в ARES. Возможно, это пригодится для разводки «под себя» другим пользователям программатора, т.к. Протеус не даст перепутать компоненты, их полярность и дорожки на плате.

(Visited 20 320 times, 21 visits today)

056-USB-программатор-легко! (USBTiny): 801 комментарий

  1. GetChiper Автор записи

    mdoga писал:

    «Может внести изменения в схему? выкинуть стабилитроны и запитать всю схему от 3,6 вольт через 2 диода как это сделано в прогромматоре у проттоса http://prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm тогда проблем сопряжения с разными компами будет меньше. ваша же схема сопряжения сделана как в USBAsp http://easyelectronics.ru/usb-programmator-avr-usbasp.html#more-28 и жалующихся что этот программатор не работает с их компом на ПОРЯДОК больше чем на проттосовский. (хотя, по сути у них кроме входной части — одна и таже схема).»

    Плата этого программатора досталась от преобразователя USB to UART (http://www.getchip.net/posts/055-uart-to-usb-prostojj-preobrazovatel-na-attiny2313-versiya-2/). Этот преобразователь изначально и был сделан так как Вы предлагаете. Но я отказался от такого способа, по причине того, что при подключении к другим устройствам появляются уравнивающие токи, так как уровни сигналов разные.

    Что касаемо применения стабилитронов в программаторе — у меня нет большого опыта работы с USB программаторами, но мое мнение такое: программировать лучше штатными уровнями напряжений на сигнальных линиях (0-5v), а не уменьшенных до 3.6v — это раз.
    Программатор USBtiny довольно старый проект и автор даже обновил свой программатор до версии 2 (с применением буферной микросхемы), при этом стабилитроны остались на месте (я уверен, автор учитывал замечания пользователей при улучшении программатора) — это два.
    И три — я просматривал отзывы в сети об этом программаторе и, если не ошибаюсь, в сравнении с USBasp’ом люди отмечали у USBtiny более устойчивую работу.

  2. neon-f

    тогда не понятно почему так много проблем с USBAsp. специально сравнил с USBTiny — входная часть один в один……..
    Из-за отрицательных отзывов о USBAsp, себе собрал проттосса. он кстати заработал сразу же, и шьет контроллеры с пяти вольтовым питанием на ура.

  3. GetChiper Автор записи

    Не сравнивайте входные части, есть еще алгоритмы обработки сигналов от USB, а алгоритм работы, в данном случае, критичен, так как работа идет на грани возможностей AVR).
    Если уже и смотреть отрицательные отзывы, то нужно смотреть именно о USBTiny.
    Свой USBtiny пробовал на ноуте и на обычном компе — все работает надежно. Возьму еще на работу там есть много «динозавров» — начиная с первого пентиума — попробую как будут они себя вести.

  4. Уведомление: 058-Делаем STK500/AVRISP из USB-программатора USBtiny. | www.GetChip.net

  5. Naqoyqatsi

    Народ, помагиет пожалуйста! В моем городе конденсаторов на 18пФ нет, но есть 22пФ. Можно ли их поставить?

  6. GetChiper Автор записи

    Запросто!

  7. sea

    Лазил по нэту и наткнулся на вашу схему. Посмотрев, сразу появился вопрос: Раз контроллер работает на 12МГц и эта частота не должна быть ниже, так зачем установлен CKDIV8 ??????????? ведь он делит частоту на 8 !!! Работоспособна ли данная схема ???????

  8. Уведомление: дрaйвер шнур « Эхо блогосферы

  9. dsorokin

    Доброе время суток ,у меня несколько вопросов . Первый будет ли он работать с poni prog. И второй как из под poni prog выстовить фюзы.

  10. janvano

    Добрый вечер, у меня возникла проблема с данным программатором.
    м48 программировал данным девайсом, мелкие тестовые нормально как создал программу по сложнее для LCD,после прошивке МК (USBTiny)- не видет его(МК) хотя сам МК даную програму выполняет а стереть или перезолить больше туда ничего не могу, и с ATmega8 тоже самая история не видет вот что пишет
    [img]http://www.photoshare.ru/original/photoshare.ru-6382604.jpg[/img]
    fuses тоже не видит.Что не так?

  11. GetChiper Автор записи

    Фьюзбиты прошили без ошибки? Другим программатором пробовали прочитать/зашить? Напряжение питания прошиваемого микроконтроллера 5в? Другие микроконтроллеры распознаются?

  12. janvano

    Фьюзбиты я не трогал только программу залил,работает от внутреннего кварца на 8Мгц, 5в есть, attiny2313 распознает но у SinaProg есть глюк при включеном (МК) в окошке выбора модели можно выбрать любой и он пишет ок паходу их не различает

  13. GetChiper Автор записи

    кнопкой search микроконтроллер находиться?

  14. janvano

    нет,после чего залил программу не видит но Фьюзбиты я не трогал, мк выполняет свою программу, но перепрошить больше не могу (так как USBTiny больше их не видит http://www.photoshare.ru/original/photoshare.ru-6382604.jpg ) и другого программатора нет для проверки.

  15. GetChiper Автор записи

    програматор видит другие микроконтроллеры? если нет, то похоже проблема с самим программатором. может сгорел?

  16. GetChiper Автор записи

    странно, а на линиях программирования ничего не мешает?

  17. janvano

    LCD торчал, я его снял, только шлейф пустой висит

  18. janvano

    При подключение reset на ногу мк должен продолжать выполнять программу? или он должен зайти в режим программирование.

  19. janvano

    все проблему решил, в разъеме была проблема.

  20. GetChiper Автор записи

    Вот и хорошо! Ресет был в обрыве?

  21. ma35tr0

    Всем привет!
    Скажите, плиз, а какой программой прошивать?
    Я использую простенький программатор — STK200+/300 (5 проводков)
    Шью Ponyprog или CVAVR. Там нет таких фьюзов, как SPIEN и SELFPRGEN.
    Как выяснил позже, SELFPRGEN и SPMEN одно и то же. Это означает self programming enable.

    А вот как быть с фьюзом SPIEN не знаю:(
    Решил прошить без SPIEN. Вроде прошилось, вот толька WinXP пишет usb device is unrecognized 🙁

    Пытался перепрошить, но видать камень накрылся 🙁
    Ponyprog2000 пишет Device missing or unknown device (-24)
    А CodeVisionAVR Chip Programmer говорит типа убедитесь в наличии питания, в настройках и THE AVR CHIP IS NOT DAMAGED.

    Прошу помощи знатоков, асов.
    Я уже одну тиньку2313 угрохал 🙁
    Скажите какой прогой прошить и, как можно оживить тиньку2313

  22. GetChiper Автор записи

    Понипрог и «5 проводков» вполне достаточно, чтобы прошить данный проект.
    В понипрог фьюз биты ставятся кнопкой с замком (!В понипроге фьюзы устанавливаются инверсно!)

    SELFPRGEN и SPIEN разные фьюзы — первый разрешает запись в память программ из самой программы, второй разрешает последовательное программирование.

    Как первый, так и второй (сюда следует добавить и RSTDISBL, DWEN) трогать вредно!

    Вообще алгоритм прошивки, особенно для начинающих, должен быть следующим:
    — зашиваем прошивку;
    — открываем окно программирования фьюзов, читаем установленные в микроконтроллере фьюзы (почти все программы это позволяют это делать — кнопка «read»);
    — далее устанавливаем нужные фьюзы, оставляя нетронутыми SPIEN, RSTDISBL, DWEN.
    Такой алгоритм сведет к минимуму ошибки при прошивке фьюзов

  23. ma35tr0

    @GetChiper
    Спасибо за ответ! 🙂
    Да, я — новичок. Но есть реальзованные проекты. И до сих мне удавалось прошивать, стирать и заново прошивать тиньку Ponyprog2000 и CVAVR.
    А вот вчера че-то не пошло.
    Да, Вы правы. Я только что обратил внимание на галочки фьюз-битов в Ponyprog. Мне надо было их инвертировать 🙁
    Теперь я удостоверился на все 100%, что я просто тиньку залочил 🙁
    Ща никак не могу оживить её.
    Где-то тут нашел статейку, что нужно подключить внешний кварц 4МГц с кондёрами на минус, подтянуть RESET к плюсу и попытаЦа прошить. На крайняк — высоковольтное программирование.
    А если и это не поможет, 🙁 то куплю новую.

  24. ma35tr0

    @ma35tr0
    Странно вот еще что: подключаешь к USB-порту — пишет USB device not recognized. Выпаеваешь стабилитроны, — тишина. Будто ничего и не вставлял в USB-порт.
    Ладно, пойду разбираЦа. Потом отпишусь.
    Спасибо! 🙂

  25. boba.s

    C Новым годом всех.дособирал программатор.в диспетчере устройств определился.светодиодом моргает! пока ничего не подключал но думаю будет все нормально.спасибо за статью.

  26. GetChiper Автор записи

    Пожалуйста. Пробуй что-то прошить.

  27. ewgen40477

    Обращение к админу сайта,Евгений можно по подробнее про фузи биты,RSTDISBL-отключает ножку ресета,про BODLEVEL,если ставить галочку BODLEVEL0,тоже получаеться отключение ресета,фузи калькулятор не считает 12 МГц,CKSEL1,2,3 выставляет в 12 МГц,да?,работаю в CodeVisionAVR и при таком раскладе битов МК потом не видиться?,а вот ссылка,file://localhost/C:/222/Сайт__%20Паятель.at.ua%20-%20AVR%20fuses%20calculator.mht

  28. ewgen40477

    Инверсия фузи битов,по моему не пойдет,получаеться бит SPIEN отключает программирование

  29. ewgen40477

    С BODLEVEL0 ,вроде разобрался,он не отключает ресет,а по нему контролирует питание,правильно?

  30. ewgen40477

    Что то я запутался с битами))),получаеться что в CodeVisionAVR надо поставить всего три галочки,CKSEL0 SUTO WDTON,правильно?

  31. GetChiper Автор записи

    Фьюз биты в CVAVR выставляются инверсно картинке в статье.
    Почитай еще вот это http://www.getchip.net/posts/024-chto-takoe-fuse-bits-avr-mikrokontrollerov/

    ewgen40477 :

    Что то я запутался с битами))),получаеться что в CodeVisionAVR надо поставить всего три галочки,CKSEL0 SUTO WDTON,правильно?

    Нет! Вот где нужно ставить галочки:CKSEL0, SUTO, SPIEN.

  32. ewgen40477

    Бита SPIEN в CodeVisionAVR нету),прошивку залил,фызы выставил,вроде все ОК,но винда не может его опознать,пробовал обновлять,удалять драйвера ,не выходит,толи с системой что не пойму,PROTTOS вроде без проблем встал,но он шьет долго,решил этим попробовать,но что то пока ни как(

  33. ewgen40477

    А может из за бита WDTON?,сторожевой таймер вроде,если инверсно картинке,то он тоже ставиться,или не надо?

  34. ewgen40477

    Ну точно,убрал бит WDTON и все поперло,Евгений извеняюсь за не внимательность картинка фюзов не от сюда взял,а с UART to USB ))

  35. ewgen40477

    Евгений,еще вапрос,в SinaProg открываю HEX файл,программатор USBTiny, контроллер ATiny2313, нажимаю Fleh Program,через пару секунд пишет все ОК!,переключаюсь на другой программатор,открываю BasComAVR,читаю контроллер,он пустой,из за чего может не происходить запись в МК в SinaProg и как проверить что все записалось,там вроде жму кнопочки Read, Verify,пишет везде ОК!,подскажи где каплуть.

  36. ewgen40477

    SinaProg определяет МК,читает фузи биты, то есть все нормально.

  37. GetChiper Автор записи

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

  38. ewgen40477

    Допустим если так все и произошло,тогда что делать?,такой вапрос из за того что на данный момент под руками нету данных девайсов,все на работе,завтра только до них доберусь и буду смотреть что к чему,а пока хотелось бы подчерпнуть информации))

  39. ewgen40477

    Евгений,почитал ваш блог о проекте и как не странно к моему удивлению ))),меня тоже зовут Евгений,я инженер-электрик,с пояльником уже давно,имею позывной UA9OTA,соотвецтвенно тоже много чего паял,но с МК начал заниматься недавно,есть тема по поводу отладочной платы для МК,для новичков повторяемость 100%,есть мой вариант,но я не прошу его выкладывать,а может у Вас какие идеи есть по этому поводу,если заинтересует,могу бросить на почту данный девайс.Краткое описание:имеет вазможность работать с любыми МК,как с AVR так и с PIC контроллерами,напряжение питания 12В или 5В стабильно,да стабилизатора на 5В и 3.3В,COM порт на MAX232,USB разъем с обвязкой,3 кварцевых резонатора на разные частоты и генератор для внешнего тактирования(до появления доктора в моей лоборатории я им востанавливал МК,но не всегда помагало(),2 линейки светодиодов,с ОА и ОК,очень удобно следить за состоянием портов МК,набор кнопок с подтягивающими резисторами,но их можно как подключить,так и отключить и сами кнопки можно подключать как как угодно,имеет бипер(писчалка),соотвецтвенно кнопочку сброса,имеет на борту так нзываемые часы реального времени,тоже удобно для различных проектов в том числе и проектировании различных часов,семи сигментный индикатор на 4 цифры с ключами,то есть ему без разници какя программа МК, с ОК или с ОА,все равно будет работать!,ну и пару слотов под дип 10pin, и соотвецтвенно панелька для МК с нулевым зажимом,там можно поставить на вкус.В разработке новая плата,хочу добавить LCD,ну и так по мелочи,любое из присоблений можно отключить или подключать к МК,полная обвязка питания платы,а и еще имеет стандартный разъем ISP,ну и нодо сделать кучку проводов не большой длинны с джемперами для удобства соединения,если заинтересовал данный девайс,буду рад показать его Вам,да и ат Вас увидеть что то новенькое или же какие то добавления,исправления,потому что данный девайс може постоянно нуждаться в доработках.

  40. kalexi

    Здравствуйте, меня интересует эта схемка но на TH-компонентах. Я упростил схему печатной платы из предыдущей статьи и убрал выводы для программирования микроконтроллера программатора 🙂
    Проверьте верно ли сделал! Вот ссылка на схему:
    http://img838.imageshack.us/img838/7084/testusbtiny.gif

  41. GetChiper Автор записи

    ewgen40477 :

    есть тема по поводу отладочной платы для МК,для новичков повторяемость 100%

    Давайте присылайте, посмотрю. Если доделать до ума то, я думаю, будет многим интересно. Можно и выложить.

  42. GetChiper Автор записи

    kalexi :

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

    Вроде-бы все верно. Только зачем упрощать? Я специально натыкал лишних площадок и дорожек — вдруг для чего еще плата сгодиться.

    Кстати, в конце статьи http://www.getchip.net/posts/041-uart-to-usb-prostojj-preobrazovatel-na-attiny2313/ есть фото той платы, с TH-компонентами, которой я сейчас активно пользуюсь. Она у меня то программатором, то USB to UART конвертором работает. Я уверен, что еще на ней чего нибудь придумаю.

  43. ewgen40477

    Евгений (GetChpier),письмо по адресу gеtchipblоg@gmаil.ru не отправляеться,может надо не gmail.ru ,а просто mail.ru

  44. GetChiper Автор записи

    Не ru, a com!

  45. ewgen40477

    Я в почте так и писал gеtchipblоg@gmаil.com ,не отправляет,сначало пишет что отправлено,потом от yandexса приходит письмо,что отправка не возможна по этому адресу,и так насколько раз,все напрасно((

  46. ewgen40477

    mail.ru это я по привычке здесь написал,в почте точно так как у Вас указано.

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