Usbtiny: 056-USB-программатор-легко! (USBTiny) — GetChip.net

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

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

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

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

 

и схему USB программатора USBTiny

(домашняя страница)

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

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


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

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

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


056-usbtinyisp-T2313.zip (15584 Загрузки)
056-fuse.png (8033 Загрузки)
Для 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 (8044 Загрузки)

 

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

Andru_48)

usbtiny_a_baranov.zip (5687 Загрузок)

 

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

Новую печатку я не собирал. Я просто исправил старую — Zalognikа. Там минимум исправлений — одну дорожку перерезать, кинуть проводок, впаять резистор и диод впаять в другое место.

USB-tiny-mebadboy.zip (4610 Загрузок)

Вот лог 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 (Одна Загрузка)
В приложении есть фото готового устройства, файл в Протеусе и в печатка в ARES. Возможно, это пригодится для разводки «под себя» другим пользователям программатора, т.к. Протеус не даст перепутать компоненты, их полярность и дорожки на плате.

(Visited 64 266 times, 6 visits today)

Делаем простой USB программатор USBTinyISP – RoboCraft

Очень многие люди, начиная свое знакомство с микроконтроллерами, испытывают трудности с инструментом для их программирования. И это реально может охладить творческий пыл. Да что там говорить, я и сам после сборки своего первого Arduino долго пытался «вдохнуть» жизнь в «железяку». Здесь очень хорошо описаны мучения. Конечно, самый простой вариант «5 проводков» — это здорово! Но, в моем окружении (как я понимаю, и у многих) дома, на работе в компах и ноутбуках напрочь отсутствует LPT-порт! Да и COM-порт становиться достаточно редкой «экзотикой».

Что же делать? Естественно, на сцене появляется вездесущий USB.

Да, готовый программатор для AVR легко можно купить. Но цена на них неадекватно завышена (у нас в г. Минске, на радиорынке что-то около 30..50 у.е.). Как говорил Киса Воробьянинов — «ОДНАКО!!!». Хорошо, что есть братья-китайцы, с нормальными ценами. Только придется прилично подождать. Да и судя по последним тенденциям, ОГРОМНЫЙ поток посылок из Китая ОЧЕНЬ заинтересовал государственные органы… И боюсь, что в скором времени превратится в жалкий ручеек 🙁
Да и к тому же, как говорит мой хороший друг: «Это не наш метод. Мы сделаем сами, пусть по выходу окажется и в два раза дороже!».

Спешу обрадовать, что затраты на изготовление — мизерные. Самые дорогие компоненты — это Attiny2313 (примерно 2$) и разъем USB.

Итак, приступим. Нам нужен программатор который максимально прост и относительно дешев, подключается по USB, и при этом, поддерживается всеми современными ОС (LINUX, WINDOWS, MAC OSX) через программу avrdude. Изначально я рассматривал для повторения самый «примитивный» вариант. Дальнейшие поиски меня привели к — USBTinyISP!!! Стремясь к компактности, я выбрал для «клонирования» версию 1 (без буферной микросхемы). Ниже схема программатора.

Схема осталось оригинальной, за исключением перемычки для программирования (мне эта «фишка» абсолютно не нужна). А вот печатку я переделал под свои нужды.

(Номиналы деталей можно увидеть в SprintLayout при наведении курсора на нужный элемент)

Нам понадобится:


— кусок текстолита 63х33 мм
— МК Attiny2312 с колодкой под нее
— Разъем USB (тип B)
— Разъем 10х2 (как он правильно называется ???? Не знаю..)
— 4 резисторa 1.5 кОм (smd, маркировка 152)
— 1 резистор 1.5кОм (выводной 0.125Вт)
— 2 резисторa 33 Ом (smd, маркировка 330)
— 1 резистор 10к (smd, маркировка 103)
— 2 стабилитрона на 3.6В
— 2 конденсатора 22 pF (smd)
— 1 конденсатор 0.1 мF (smd)
— 2 светодиода (зеленый и красный)
— кварц на 12Mhz
— электролитический конденсатор 100x16V
— самовосстанавл. предохранитель (я выпаял из старой мат. платы). Если нету, можно поставить перемычку (на http://www.ladyada.net/ так и сделали).
— два штырька для перемычки

Естественно, ЛУТ.

После ЛУТа

После травления:

Мой любимый сплав Розе

Паяем SMD элементы

Теперь перемычки и оставшиеся элементы

Готово!

Небольшое лирическое отступление. Давным давно,в 2000-х годах у меня один приятель жаловался со сложностями в поиске НОРМАЛЬНОЙ работы (он работал водителем). Дело в том, что у него был на тот момент очень маленький стаж вождения :). Чувствуете подвох? На нормальную работу без стажа не берут. Стажа нет, потому что на работу не берут…. И так замкнутый круг.

Так и в нашем случае, для изготовления программатора нужно запрограммировать контроллер….т.е. нужен программатор. Слава богу, это нужно проделать всего один раз. Выходов несколько:
— берем пиво и навещаем приятеля с программатором 🙂
— ищем компьютер с LPT-портом и паяем «5-проводков»
— нету LPT, но есть COM? Прекрасно, делаем программатор Громова!
— есть люди, предлагающие свои услуги по прошивке МК за небольшую «денюжку»
— другие варианты

У меня ситуация более, чем шикарная — у меня уже был программатор AVR910. Так, что вся процедура заняла не более минуты. «Прошиваем» МК с помощью AVRDUDE. (Все необходимое для этого сложено в архив и находиться в каталоге Firmware).

avrdude.exe -p t2313 -c avr910 -P COM12 -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Кому менее повезло и пришлось прибегнуть к «5 проводкам» (кстати, официально он называется DAPA):

avrdude.exe -p t2313 -c dapa -U flash:w:usbtinyisp_(v.1).hex  -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

вот, вариант когда программатор USBTinyISP используется для прошивки себе подобного, а-ля «овечка Долли»:

avrdude.exe -p t2313 -c usbtiny -U flash:w:usbtinyisp_(v.1).hex -U hfuse:w:0xdf:m -U lfuse:w:0xef:m

Почему вариант с AVRDUDE более предпочтителен для начинающих? При выполнении вышеприведенных команд сразу же прошиваются и нужные фьюзы, т.е. ухера.. «убить» микроконтроллер достаточно сложно.

Итак, устанавливаем на плату свежепрошитый микроконтроллер. Еще раз советую проверить изготовленную плату на качество пайки, отсутствие «коротышей» и тому подобных неприятностей. И только если ВЫ на 100% уверены, подключаем наш программатор к разьему USB. После сообщения об обнаружении нового оборудования (речь идет о Windows), ставим как обычно драйвера. Они сложены в архиве в папке usbtinyisp w32 driver v1.12.

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

Если Вам удалось увидеть такую же картинку, то поздравляю! Все готово. У Вас теперь есть USB программатор для AVR!!!
Не знаю как Вы, но мне ОЧЕНЬ захотелось сразу же опробовать изделие в действии. А давайте прошьем бутлодер в Ардуино.

Запускаем Arduino IDE, [Сервис]->[Программатор]->[USBTinyISP]

Жмем [Сервис]->[Записать загрузчик]

Буквально проходит 7 секунд, мерцание красного светодиода на программаторе… и ОПА!! Все готово. Получите, распишитесь 🙂


А теперь небольшой БОНУС, расширяющий область применения нашего программатора. А именно, маленький адаптер для DIP корпусов наиболее распространеных AVR контроллеров. Мне приходилось иметь дело с ATTiny13/45 — 8 ножек, Attiny 2313 (тут смайлик)- 20 ножек, Atmega 8/48/168 — 28 ножек. За основу берем схему соединения колодок (схема откуда-то из инета):

Для простоты я не использовал сигналы тактирования XT1. (Для всяких неприятных случаев, у меня есть собранный FUSE Doctor :)) И еще, я не ставил на адаптер колодку под Atmega16 (DIP-40). Пока у меня не возникало необходимости в программировании таких контроллеров.

Ну, если осилили изготовление программатора, то сделать такой адаптер — вообще плевое дело!

Кстати, некоторые неиспользуемые контакты я просто-напросто удалил, во избежание ненужного контакта 🙂

Приклеиваем (для удобства) соответствующие надписи:

И вот, все в сборе, программатор и адаптер! Пользуйтесь на здоровье.
Весь материал (печатку, прошивку,драйвера и фото) для повторения можно забрать одним архивом тут.

Обзор | USBtinyISP | Система обучения Adafruit

Обзор

Сохранить Подписаться

Пожалуйста, войдите, чтобы подписаться на это руководство.

После входа в систему вы будете перенаправлены обратно к этому руководству и сможете подписаться на него.

Это документация для простого USB-программатора AVR с открытым исходным кодом и интерфейса SPI. Он недорогой, простой в изготовлении, отлично работает с avrdude, совместим с AVRStudio и протестирован под Windows, Linux и MacOS X . Идеально подходит для студентов и начинающих, или в качестве резервного программиста.

Проект основан на коде и дизайне USBtiny. Основные улучшения: корректировка кода, чтобы он мог действовать как интерфейс SpokePOV, добавление низкоуровневых команд bitbang и добавление светодиода «USB исправен». Другими изменениями являются новый VID/PID (чтобы сделать его официальным), удаление некоторых команд и небольшое перемещение контактов.

Вы можете построить эту конструкцию, используя схему и прошивку, или купить комплект в интернет-магазине Adafruit. Наличие полного комплекта решает проблему «курицы и яйца», связанную с покупкой или сборкой USB-программатора, который затем нуждается в каком-то программаторе для «запуска». (См. USBasp, AVRdoper, USBprog)

Весь код встроенного ПО распространяется под лицензией GPL, файлы компоновки аппаратного обеспечения соответствуют CC 2.5 Attrib./Share-alike.

Легко сделать

  • Сверхнизкая стоимость: программатор стоит 16 долларов по частям, что вдвое дешевле AVRISP v2! (Наборы стоят 22 доллара и доступны в магазине adafruit.)
  • Комплект
  • поставляется с 6-контактными и 10-контактными разъемами и кабелями стандарта AVR. Почти ни у кого из программистов не из Atmel нет и того, и другого! (включая AVRISP v2)
  • Простота сборки: все детали со сквозными отверстиями, все стандартные и доступны у крупных дистрибьюторов.

Легко использовать

  • Совместимость с AVRdude — в v5. 5 добавлена ​​поддержка usbtiny!
  • Драйверы USB доступны для Windows с использованием libusb, для Mac OS X или Linux драйверы не требуются.
  • Прочный стандартный корпус
  • Высокая скорость! Максимальная тактовая частота составляет 400 кГц. Скорость записи: 1Кб/с, скорость чтения: 2Кб/с. (Atmega8 занимает 8 секунд для записи, 4 секунды для чтения/проверки)
  • 2 светодиода для индикации «USB/Питание в норме» и «Занято»
  • Ввод/вывод буферизован, что позволяет программировать целевые значения 2–6 В (v2)
  • Работает с любым чипом AVR ISP с 64 КБ флэш-памяти (или меньше) — не работает с Atmega1281/1280/2561/2560

Простота питания

  • Питание от шины USB 5 В при токе менее 100 мА, что позволяет использовать его с концентраторами USB без питания
  • Легкодоступная перемычка для питания целевого проекта от USB (разумеется, мишень должна быть устойчива к напряжению 5 В)
  • Удалите перемычку, и он будет питаться самостоятельно, но будет буферизовать ввод-вывод для соответствия целевому устройству. (v2)

Легко расширить

  • Простой интерфейс с libusb
  • Существующая прошивка обеспечивает быстрый интерфейс SPI с использованием USB
  • Команды Bit-bang обеспечивают 8-битное управление вводом-выводом (включая светодиод) для открытых проектных идей

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ.

Это руководство было впервые опубликовано 10 июня 2013 г. обновлено 10 июня 2013 г.

Эта страница (обзор) последний раз обновлялась 02 апреля 2013 г.

Текстовый редактор на базе tinymce.

ВАШЕ ИМЯ

ВАША ЭЛЕКТРОННАЯ ПОЧТА

Часто задаваемые вопросы | USBtinyISP | Система обучения Adafruit

Продается ли программатор в собранном виде?

Пока нет, доступен только в комплекте.

Насколько сложно собрать?

В разделе «Сделай это!» есть очень четкие инструкции. связь. Это простой набор, и он должен быть достаточно простым для всех, у кого есть соответствующие инструменты, даже если это их первый проект по пайке.

Работает ли это с Linux?

Да. Мы протестировали его с linux (Ubuntu 7.04), и он не требовал ничего странного, поэтому он должен работать с любым дистрибутивом. Если у вас возникли проблемы, убедитесь, что вы работаете как root, чтобы иметь права доступа к устройству.

Почему нет серийного/COM/порта (или устройства /dev/ttyXX)?

USBtiny не является устройством USB-Serial, это собственный протокол USB, понятный Avrdude. Вы не увидите COM-порт или последовательный порт, созданный при его подключении.

Могу ли я отправлять последовательные сообщения с помощью USBtiny, а также программировать, например, с помощью Arduino?

Нет, USBtiny не создает последовательный порт и не может этого сделать. Он программирует чипы напрямую, используя соединение с провайдером, а не последовательное соединение. Ардуино — это не программаторы AVR, это AVR с загрузчиком, работающим через последовательный порт.

Какие чипы можно запрограммировать?

Можно запрограммировать любой AVR, который использует интерфейс ISP для программирования и имеет флэш-память 64 КБ или меньше.

Микросхемы, такие как Atmega1280/1281 и Atmega2560/2561, имеют более 64 КБ и не могут быть запрограммированы.

Чипы, использующие интерфейс TPI, такие как Attiny4/5/9/10, не могут быть запрограммированы.

Некоторые очень старые микросхемы, такие как AT90S1200 и подобные, не могут быть запрограммированы

Можно ли запрограммировать загрузчик (например, Arduino) с помощью USBtinyISP?

Да, это то, что может сделать программатор AVR. Для этого мы предлагаем использовать «встроенный» загрузчик-загрузчик в IDE.

Как мне запрограммировать загрузчик на Arduino?

  1. Вставьте новый чип AVR (например, Atmega328) в Arduino в правильной ориентации
  2. Снимите перемычку с USBtinyISP
  3. Подключите USBtiny к USB
  4. Подключите Arduino к сети постоянного тока или USB, чтобы он запитался
  5. Подключите 6-контактный кабель от USBtinyISP к Arduino так, чтобы метка контакта 1 совпадала с красным проводом на кабеле
  6. Запуск Arduino IDE
  7. Выберите чип/Arduino, который вы используете, в меню Tools->Board
  8. Не выбирать COM/последовательный порт
  9. Выберите Инструменты->Записать загрузчик->с USBtinyISP
  10. Должен загореться красный светодиод USBtinyISP.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *