Ну вот и пришло время нам соорудить USB программатор. Я долго не мог определиться какой бы программатор нам собрать. Выбирал по критериям простоты конструкции и удобства работы с ними, но ничего не нравилось. Выбрать программатор помог случай. Вернее я его не выбирал вообще – я его случайно собрал сам того не подозревая!
А дело было так. Некоторое количество постов назад мы собрали преобразователь USB to UART на ATtiny2313 (а в прошлой статье мы даже улучшили печатную плату). Еще при выборе схемы преобразователя я планировал на его базе (при помощи заливки различных прошивок) получать устройства различного назначения. Тогда я не подозревал, что данный преобразователь можно использовать шире, чем я планировал. Увидев схему USB программатора — USBtiny на ATtiny2313 я понял, что я уже имею готовый программатор!
Посмотрев на схему, сделанного ранее, преобразователя USB to UART (домашняя страничка)
и схему USB программатора 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 Скачиваем драйвер, разархивируем его.
Страничка с драйверами
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.zip (8155 Загрузок)
2 Еще один вариант разводки от Андрея Баранова (Andru_48)
usbtiny_a_baranov.zip (Одна Загрузка)
3 Вариант от mebadboy
Доброе время суток.
4 Вариант от Time191 (Владимир, г. Саратов).
Получилось начертить и развести в Протеусе плату программатора.
Делал под себя, под свой ISP-разъем.
Программировал прямо в плате, джампером соединив Reset c ISP.
Все заработало сразу — большое Вам спасибо!
056-usbusbtinytime191.zip (4943 Загрузки)
В приложении есть фото готового устройства, файл в Протеусе и в печатка в ARES. Возможно, это пригодится для разводки «под себя» другим пользователям программатора, т.к. Протеус не даст перепутать компоненты, их полярность и дорожки на плате.
Сделал печатку на SMD компонентах чисто для этого программатора. Получилось 2х4 см. Такая флешка =). Могу скинуть. Только она двухсторонняя.
Sina Prog 1.3.5.6
Какую программу Вы используете для программирования?
Собрал данный программатор.Возникли вопросы-1 Как должен определяться МК?2-Почему программатор читает только один раз?Нажимаю второй раз Read -пишет ошибку.3 Где нибудь сохраняется прочитанная прошивка?
Меня очень напрягала проблема курицы и яйца, поэтому я решил спаять себе программатор на основе AT90USB162, в котором уже вшит загрузчик, позволяющий обновить прошивку по USB.
Плата, да, она. Первая схема — это первая схема в этой статье.
спасибо. Только уточните что значит сосгласно первой схемы.
файл 055-T2313-SMD-2 v2.0 это она?
Да, программатор цепляется прямо на ножки микроконтроллера, ничего дополнительного не нужно.
Резисторы ставь согласно первой схемы (и резистор в 1.5кОм там есть). те резисторы на 100 Ом защитные, чтоб случайно не пальнуть порта микроконтроллера. 0 Ом — это просто перемычка. На данной платке ножка ресета подтягивается к + питания (снизу платы резистор).
а еще скажите, вот скачал печатную плату 055-T2313-SMD-2 v2.0 там не нужно ничего добавлять из деталей или менять? Просто тут говорят про резистор в 1.5кОм на линии данных USB, это что и куда? и там стоят в ряд резисторы на 100 Ом а самый нижний 0 Ом, это как? И на фото не весь этот ряд резисторов есть, хотя этот 0 Ом есть и на фото. Потом тут еще пишут «1 ножку (reset) через 10 кОм посадил на + питания» а на плате там резистора нет. Подскажите как все правильно сделать.
тоесть впринципе ничего, всмысле никаких деталек для плпты не нужно, условно можно сказать что можно прямо к ножкам выводы и прошивайй? Я просто только хочу собрать этот программатор
Четыре штырька на плате никак не скажутся на увеличение размера платы.
но ведь миниатюрнее плата устройства будет если на ней не будет лишнего.
В принципе, не проблема сделать такой адаптер, но гораздо удобней программировать микроконтроллер прямо в рабочей плате. Это избавляет от бесконечных перестановок микроконтроллеров из панельки в панельку. Поэтому лучше и практичней вывести нужные для программирования разъемы прямо на устройстве.
А есть плата-адептер, ну чтобы программатор подключать к ней а там уже на колодки ставить контролеры которые нужно шить
http://www.getchip.net/posts/vybiraem-programmator-dlya-avr-mikrokontrollerov/
всем привет, читаю читаю а так и не понял какой программой пользоваться, есть ли рекомендаций и ссылки для скачки)
уже другой программатор собрал, правда пока на макетке. А с этим не знаю че за косяк. Может на принципиалке где-то ошибся, когда печатку делал!
В остальном полностью уверен, не первый год AVR-ы курю
На линии данных USB резистор в 1.5кОм висит?
Линии данных USB не перепутаны?
Кварц 12 МГц?
Сам микроконтроллер рабочий? прошейте чем-то заведомо рабочим, желательно с работой от кварца.
Чем прошивали? (Фьюзы во многих программах ставятся инверсно)
Можно попробовать различные драйвера.
Посмотрите домашнюю страничку программатора http://www.ladyada.net/make/usbtinyisp/index.html возможно там найдете решение проблемы.
Пробовал на двух компьютерах, ХР и 7, результаты ноль.
На ХР пробовали запускать?
Собрал данный «программатор»! Виндовсом 7 видеться как неизвестный девайс. Ковырял фузы три с небольшим дня, ничего не изменилось. Перерыл всю схему, собрано все по схеме (если считать что она вообще существует в читабельном варианте, ведь автор не удосужился перерисовать схему). От сюда делаю вывод — что данный программатор не работоспособен! Собирать не рекомендую, лучше собрать более известный на Mega8.
Вот например
http://easyelectronics.ru/usb-programmator-avr-usbasp.html
вот,блин,а я купил 3.3в.неудача
@Viatka61
Лучше 3.9В
если интересует могу скинуть печатку в смд варианте (Программатор + преобразователь) в усльтракомпактном варианте.
Буду признателен.Viatka61@mail.ru
Собираю USB программатор,но у нас нет стабилитронов 3.6в,а есть 3.3 и 3.9в.Какой лучше применить?
Ребят, никто не хочет собрать данній девайс возмездно. Просто уже сделал 3 usb программатора и ни один не хочет работать (зараза) =). Я с Киева. Заранее спасибо.
Да, Atmega16 можно прошить этим программатором.
Так как этот программатор поддерживается AVRDUDE, то, соответственно, и поддерживается почти вся линейка AVR микроконтроллеров.
А Atmega16 работает с этим программатором?
Номиналы деталей можно варьировать в небольших пределах — для работы устройства это не критично.
А почему номиналы деталей на схеме не совпадают на фото?
@zhenya1995
Да эта плата может работать как программатор и как USB to UART мост — только прошивки нужно заливать разные.
@Bot
В смежной теме (УАРТ — преобразователь на этой плате) почитайте коменты — возможно там есть решение Вашей проблемы.
http://www.getchip.net/posts/055-uart-to-usb-prostojj-preobrazovatel-na-attiny2313-versiya-2
Мк рабочий, проверялся через свои проги, земли и +5 все как надо, просто косячно нарисовано, стабилитроны тоже в порядке, остальное буду пробовать, спасибо
Здравствуйте, я прошу объяснить как он будет работать можно ли его подсоединять как UART преобразователь или надо выбирать какие ружимы работы?
Микроконтроллер рабочий? Есть тестовые прошивки для проверки работоспособности http://www.getchip.net/posts/022-testovaya-proshivka-dlya-avr-mikrokontrollerov-proverka-rabotosposobnosti-portov/
Все «земли» и +5В соединяются? (на рисунке они как-то выведены раздельно).
Стабилитроны той стороной стоят? Попробуй запитать всю схему через светодиод (ставить в разрыв питания от USB) при этом выкинув стабилитроны.
Попробуй заменить резистор 1.5кОм (тот что стоит от +питания на линию данных) на 1кОм.
Попробуй на другом порте.
Попробуй на другом компе.
@Unknown
Если не трудно выложите пожалуйста. Ps. Неужели никто не сидит тут, или никто не собирал этот программатор, проверьте в чем косяк последней схемы http://s011.radikal.ru/i315/1109/6c/0b23b3509262.jpg
Тупо неосознанно устройство при подключении
С этим помочь не могу устройство не мое, а автор видит его именно таким.
Доброго времени суток. Спасибо за компактный и функциональный девайс,действительно удобно. Но вот хотел спросить, можно ли ввести выход меандр на 1 Мгц, как это сделано у собратьев USBAsp и AVR910, для оживления мертвецов с неправильно выставленным тактированием? Данная функция очень облегчает отладку устройств с тактированием от кварца и других внешних источников. Кстати если интересует могу скинуть печатку в смд варианте (Программатор + преобразователь) в усльтракомпактном варианте.
Посмотрите на схему собранного программатора, возможно неправильно собрана схема. Прошивается в пони, фьюзи инверсно тем, которым у вас. пробовал также использовать другие фьюзы, данные при обсуждении.
http://s011.radikal.ru/i315/1109/6c/0b23b3509262.jpg
В SinaProg тоже можно ставить галочки. Вот здесь показано >>
http://www.getchip.net/posts/068-kak-pravilno-proshit-avr-fyuzy-fuse-bit/
Схема отличная. Отлично себя зарекомендовала на ХР и на Вин7. Такой вопрос — на картинке указаны фьюз-байты по отдельности (не единичным 16-теричным числом). Как мне перевести их в форму 16hex для прошивки в SinaProg? пжл помогите [Fuze bit.jpg]
Нужно попробовать на другом компе, другой микроконтроллер. Схема элементарная вроде не должно быть проблем.
@GetChiper
В том то и дело, что все резисторы на месте, обрывов нету.
@YnbIPb
Если винда пишет, что «неизвестное устройство», то на дата лини не висит подтягивающий резистор — проверяйте плату еще раз.
@IseMan
Все что работает через AVRDUDE будет работать с этим программатором.
Всем привет,а подскажите с какой программой он работает? USBASP_AVRDUDE_PROG подойдёт?
Добрый день. Собрал этот программатор на тн компонентах. Контроллер 2313-20pu прошил 5 проводками. Вставляю в усб порт программатор, винда пишет «неизвестное устройство», пытаюсь поставить дрова, но пишет «мастеру не удалось найти более подходящего по, чем то, что уже установлено» вот только никаких дров не установлено. при попытке отката драйвера выдает сообщение «не найдено архивированных драйверов для этого устр-ва». В чем может быть проблема?
Как вариант можно попробовать разные версии дудки или синапрога — должно помочь.
Добрый день.
Собрал даный программатор на ТН компонентах. 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В, катод обозначен жирной черной полоской?
Господа. Может кто-нить сказать прошьет ли данный программатор attiny13V-10su. Уже измучался, у меня не выходит его даже найти ни данным программатором, ни 5 проводами на lpt. Может кто сталкивался
Посмотрел фото — фьюзы выставлены не правильно. Для CVAVR нужно устанавливать инверсно.
http://www.getchip.net/posts/068-kak-pravilno-proshit-avr-fyuzy-fuse-bit/
Скинь на мыло (в закладке «О проекте»)