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

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

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

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

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

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

Линии программирования
056-usbtinyisp-T2313.zip (15703 Загрузки)
056-fuse.png (8172 Загрузки)
Для 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 (8149 Загрузок)

 

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

usbtiny_a_baranov.zip (5783 Загрузки)

 

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

(Visited 66 885 times, 1 visits today)

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

  1. Tom

    Программатор работает верой и правдой уже 7 лет.
    Вопрос к автору: можно ли им прошивать флэш-память типа W25Q80 по протоколу SPI ? Понятно, что в МК надо залить другую микропрограмму . А может это уже реализовано или это вопрос в другой раздел?
    Спасибо.

  2. Diman

    Здравствуйте. Кто-нибудь проверял логику работы программирующих выходов Тини? Думаю что после прошивки прежде чем RESET вернётся в исходное состояние, перед этим выходы Тини должны переключится в режим Входов. Так как отключение RESET переведет запрограммированный МК в рабочий режим и выводы MOSI, MISO, SCK программатора и МК могут оказаться в статусе соединённых выходов и как результат короткое замыкание при разных уровнях. Вопрос, RESET продолжает блокировать МК после закачки прошивки? И если RESET отключается после прошивки, то в каком статусе оказываются выхода Тини? Если все эти нюансы учтены, то для чего во второй версии этого программатора добавили на выходе «буфер»?

  3. Andrej

    У меня идет в Windows 10 Pro x64 usbtiny_signed_8.zip , WinAVR-20100110-install.exe , avrdudeshell.exe, SinaProg.exe (USBtiny.inf как драйвер , installer_x64.exe ) , обмен данными возможен (зеленый мигает, красный светодиод включается ) .

  4. Андрей

    Хороший программатор заработал с первого раза, у меня работает даже на Win10.

  5. Khludenkov

    Здравствуйте.
    А исходники на программатор подскажите где посмотреть можно?
    Мне бы ещё фичу прикрутить — ногой с компа чтобы можно дёргать было
    Т.е. надо прошивать два девайса и чтобы мануальный чип селект сделать

  6. awas5

    Сейчас попробую исправить, может определится

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