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.zip (24372 Загрузки)
Если интересно — вот статья о преобразователе USB to UART.
В собранном виде преобразователь выглядит так:

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

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

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

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

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

Линии программирования
056-usbtinyisp-T2313.zip (15718 Загрузок)
056-fuse.png (8187 Загрузок)
Для 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 секунд (это вместе с проверкой). Микроконтроллер определяется и программируется надежно — не было ни одной ошибки во время моих тестов. Приятный в использовании программатор!

 

Смотрим также:
Программируем 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.zip (8155 Загрузок)

 

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

usbtiny_a_baranov.zip (Одна Загрузка)

 

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

Новую печатку я не собирал. Я просто исправил старую — Zalognikа. Там минимум исправлений — одну дорожку перерезать, кинуть проводок, впаять резистор и диод впаять в другое место.
Вот лог 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.
Все заработало сразу — большое Вам спасибо!
056-usbusbtinytime191.zip (4943 Загрузки)
В приложении есть фото готового устройства, файл в Протеусе и в печатка в ARES. Возможно, это пригодится для разводки «под себя» другим пользователям программатора, т.к. Протеус не даст перепутать компоненты, их полярность и дорожки на плате.

(Visited 67 057 times, 4 visits today)

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

  1. Zalognik

    Сделал печатку на SMD компонентах чисто для этого программатора. Получилось 2х4 см. Такая флешка =). Могу скинуть. Только она двухсторонняя.

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

    Какую программу Вы используете для программирования?

  3. Viatka61

    Собрал данный программатор.Возникли вопросы-1 Как должен определяться МК?2-Почему программатор читает только один раз?Нажимаю второй раз Read -пишет ошибку.3 Где нибудь сохраняется прочитанная прошивка?

  4. DenisN

    Меня очень напрягала проблема курицы и яйца, поэтому я решил спаять себе программатор на основе AT90USB162, в котором уже вшит загрузчик, позволяющий обновить прошивку по USB.

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

    Плата, да, она. Первая схема — это первая схема в этой статье.

  6. kc3

    спасибо. Только уточните что значит сосгласно первой схемы.
    файл 055-T2313-SMD-2 v2.0 это она?

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

    Да, программатор цепляется прямо на ножки микроконтроллера, ничего дополнительного не нужно.
    Резисторы ставь согласно первой схемы (и резистор в 1.5кОм там есть). те резисторы на 100 Ом защитные, чтоб случайно не пальнуть порта микроконтроллера. 0 Ом — это просто перемычка. На данной платке ножка ресета подтягивается к + питания (снизу платы резистор).

  8. kc3

    а еще скажите, вот скачал печатную плату 055-T2313-SMD-2 v2.0 там не нужно ничего добавлять из деталей или менять? Просто тут говорят про резистор в 1.5кОм на линии данных USB, это что и куда? и там стоят в ряд резисторы на 100 Ом а самый нижний 0 Ом, это как? И на фото не весь этот ряд резисторов есть, хотя этот 0 Ом есть и на фото. Потом тут еще пишут «1 ножку (reset) через 10 кОм посадил на + питания» а на плате там резистора нет. Подскажите как все правильно сделать.

  9. kc3

    тоесть впринципе ничего, всмысле никаких деталек для плпты не нужно, условно можно сказать что можно прямо к ножкам выводы и прошивайй? Я просто только хочу собрать этот программатор

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

    Четыре штырька на плате никак не скажутся на увеличение размера платы.

  11. kc3

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

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

    В принципе, не проблема сделать такой адаптер, но гораздо удобней программировать микроконтроллер прямо в рабочей плате. Это избавляет от бесконечных перестановок микроконтроллеров из панельки в панельку. Поэтому лучше и практичней вывести нужные для программирования разъемы прямо на устройстве.

  13. kc3

    А есть плата-адептер, ну чтобы программатор подключать к ней а там уже на колодки ставить контролеры которые нужно шить

  14. Roma4ka

    всем привет, читаю читаю а так и не понял какой программой пользоваться, есть ли рекомендаций и ссылки для скачки)

  15. khomin

    уже другой программатор собрал, правда пока на макетке. А с этим не знаю че за косяк. Может на принципиалке где-то ошибся, когда печатку делал!
    В остальном полностью уверен, не первый год AVR-ы курю

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

    На линии данных USB резистор в 1.5кОм висит?
    Линии данных USB не перепутаны?
    Кварц 12 МГц?
    Сам микроконтроллер рабочий? прошейте чем-то заведомо рабочим, желательно с работой от кварца.
    Чем прошивали? (Фьюзы во многих программах ставятся инверсно)
    Можно попробовать различные драйвера.
    Посмотрите домашнюю страничку программатора http://www.ladyada.net/make/usbtinyisp/index.html возможно там найдете решение проблемы.

  17. khomin

    Пробовал на двух компьютерах, ХР и 7, результаты ноль.

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

    На ХР пробовали запускать?

  19. khomin

    Собрал данный «программатор»! Виндовсом 7 видеться как неизвестный девайс. Ковырял фузы три с небольшим дня, ничего не изменилось. Перерыл всю схему, собрано все по схеме (если считать что она вообще существует в читабельном варианте, ведь автор не удосужился перерисовать схему). От сюда делаю вывод — что данный программатор не работоспособен! Собирать не рекомендую, лучше собрать более известный на Mega8.
    Вот например
    http://easyelectronics.ru/usb-programmator-avr-usbasp.html

  20. Viatka61

    вот,блин,а я купил 3.3в.неудача

  21. Viatka61

    если интересует могу скинуть печатку в смд варианте (Программатор + преобразователь) в усльтракомпактном варианте.
    Буду признателен.Viatka61@mail.ru

  22. Viatka61

    Собираю USB программатор,но у нас нет стабилитронов 3.6в,а есть 3.3 и 3.9в.Какой лучше применить?

  23. Zalognik

    Ребят, никто не хочет собрать данній девайс возмездно. Просто уже сделал 3 usb программатора и ни один не хочет работать (зараза) =). Я с Киева. Заранее спасибо.

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

    Да, Atmega16 можно прошить этим программатором.
    Так как этот программатор поддерживается AVRDUDE, то, соответственно, и поддерживается почти вся линейка AVR микроконтроллеров.

  25. Bot

    А Atmega16 работает с этим программатором?

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

    Номиналы деталей можно варьировать в небольших пределах — для работы устройства это не критично.

  27. zhenya1995

    А почему номиналы деталей на схеме не совпадают на фото?

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

    @zhenya1995
    Да эта плата может работать как программатор и как USB to UART мост — только прошивки нужно заливать разные.

    @Bot
    В смежной теме (УАРТ — преобразователь на этой плате) почитайте коменты — возможно там есть решение Вашей проблемы.
    http://www.getchip.net/posts/055-uart-to-usb-prostojj-preobrazovatel-na-attiny2313-versiya-2

  29. Bot

    Мк рабочий, проверялся через свои проги, земли и +5 все как надо, просто косячно нарисовано, стабилитроны тоже в порядке, остальное буду пробовать, спасибо

  30. zhenya1995

    Здравствуйте, я прошу объяснить как он будет работать можно ли его подсоединять как UART преобразователь или надо выбирать какие ружимы работы?

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

    Микроконтроллер рабочий? Есть тестовые прошивки для проверки работоспособности http://www.getchip.net/posts/022-testovaya-proshivka-dlya-avr-mikrokontrollerov-proverka-rabotosposobnosti-portov/
    Все «земли» и +5В соединяются? (на рисунке они как-то выведены раздельно).
    Стабилитроны той стороной стоят? Попробуй запитать всю схему через светодиод (ставить в разрыв питания от USB) при этом выкинув стабилитроны.
    Попробуй заменить резистор 1.5кОм (тот что стоит от +питания на линию данных) на 1кОм.
    Попробуй на другом порте.
    Попробуй на другом компе.

  32. Bot

    @Unknown
    Если не трудно выложите пожалуйста. Ps. Неужели никто не сидит тут, или никто не собирал этот программатор, проверьте в чем косяк последней схемы http://s011.radikal.ru/i315/1109/6c/0b23b3509262.jpg
    Тупо неосознанно устройство при подключении

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

    С этим помочь не могу устройство не мое, а автор видит его именно таким.

  34. Unknown

    Доброго времени суток. Спасибо за компактный и функциональный девайс,действительно удобно. Но вот хотел спросить, можно ли ввести выход меандр на 1 Мгц, как это сделано у собратьев USBAsp и AVR910, для оживления мертвецов с неправильно выставленным тактированием? Данная функция очень облегчает отладку устройств с тактированием от кварца и других внешних источников. Кстати если интересует могу скинуть печатку в смд варианте (Программатор + преобразователь) в усльтракомпактном варианте.

  35. YnbIPb

    Посмотрите на схему собранного программатора, возможно неправильно собрана схема. Прошивается в пони, фьюзи инверсно тем, которым у вас. пробовал также использовать другие фьюзы, данные при обсуждении.
    http://s011.radikal.ru/i315/1109/6c/0b23b3509262.jpg

  36. sig

    Схема отличная. Отлично себя зарекомендовала на ХР и на Вин7. Такой вопрос — на картинке указаны фьюз-байты по отдельности (не единичным 16-теричным числом). Как мне перевести их в форму 16hex для прошивки в SinaProg? пжл помогите [Fuze bit.jpg]

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

    Нужно попробовать на другом компе, другой микроконтроллер. Схема элементарная вроде не должно быть проблем.

  38. YnbIPb

    @GetChiper
    В том то и дело, что все резисторы на месте, обрывов нету.

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

    @YnbIPb
    Если винда пишет, что «неизвестное устройство», то на дата лини не висит подтягивающий резистор — проверяйте плату еще раз.

    @IseMan
    Все что работает через AVRDUDE будет работать с этим программатором.

  40. IseMan

    Всем привет,а подскажите с какой программой он работает? USBASP_AVRDUDE_PROG подойдёт?

  41. YnbIPb

    Добрый день. Собрал этот программатор на тн компонентах. Контроллер 2313-20pu прошил 5 проводками. Вставляю в усб порт программатор, винда пишет «неизвестное устройство», пытаюсь поставить дрова, но пишет «мастеру не удалось найти более подходящего по, чем то, что уже установлено» вот только никаких дров не установлено. при попытке отката драйвера выдает сообщение «не найдено архивированных драйверов для этого устр-ва». В чем может быть проблема?

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

    Как вариант можно попробовать разные версии дудки или синапрога — должно помочь.

  43. FoxS

    Добрый день.
    Собрал даный программатор на ТН компонентах. Attiny 2313A-PU запрограмировал программатором Громова (фьюзы и программа прошились нормально, в крайней мере тест в UniProf проходит, фьюзы вроде правильно выставлены). Установил драйвера устройства. Когда программатор вставляю в USB комп устройство опознает (в диспетчере устройств пишет что устройство включено и работает). Проблема в том что когда запускаю SinaProg, выставляю USBtiny в окошке Programmer (порт естественно USB ), выбираю тип микросхемы и нажимаю кнопочку поиск дудка выдает такое сообщение :
    avrdude: Error: Could not find USBtiny device (0x1781/0xc9f)
    avrdude done. Thank you.
    По конструктиву платы : 1 ножку (reset) через 10 кОм посадил на + питания, резисторы R2, R3 номиналом 51 Ом а не 68(думаю не очень страшно), индикацию использовал из 12ножка-светодиод-резист.1,5 ком-земля-светодиод-резист.1,5 ком-9ножка при такой индикации, когда вставляю программатор в USB сразу же загорается один светодиод (который идет с 9ножки через резистор на землю,второй не светится ни прикаких условиях).
    Подскажите пожалуйста что делать и в каком направлении искать. Большое спасибо за ответы.
    p.s. стабилитроны импортные на 3,6В, катод обозначен жирной черной полоской?

  44. axiv

    Господа. Может кто-нить сказать прошьет ли данный программатор attiny13V-10su. Уже измучался, у меня не выходит его даже найти ни данным программатором, ни 5 проводами на lpt. Может кто сталкивался

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

    Скинь на мыло (в закладке «О проекте»)

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