Поиск по этому блогу

31 дек. 2013 г.

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

Ну вот и пришло время нам соорудить 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 Скачиваем драйвер, разархивируем его.
usbtinyisp w32 driver v1.12 - Win драйвер для USBtiny программатора
Если у Вас Винда 64 битная, Vista или Windows 7 нужно установить другой драйвер:
usbtinyisp_libusb-win32_1.2.1.0.zip - Драйвер USBtiny для х64, Vista или Windows 7
Вставляем преобразователь в 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
usbtinyisp w32 driver v1.12 - Win драйвер для 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) сделал довольно удачную разводку программатора. Программатор получился небольшого размера, имеет  стандартный разъем для программирования и, я считаю, будет удобен в работе. Плата двусторонняя.
Программатор USBTinyPCB 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. Возможно, это пригодится для разводки «под себя» другим пользователям программатора, т.к. Протеус не даст перепутать компоненты, их полярность и дорожки на плате.