Программаторы attiny2313 своими руками
Ну вот и пришло время нам соорудить USB программатор. Я долго не мог определиться какой бы программатор нам собрать. Выбирал по критериям простоты конструкции и удобства работы с ними, но ничего не нравилось. Выбрать программатор помог случай. Вернее я его не выбирал вообще – я его случайно собрал сам того не подозревая!
А дело было так. Некоторое количество постов назад мы собрали преобразователь USB to UART на ATtiny2313 (а в прошлой статье мы даже улучшили печатную плату). Еще при выборе схемы преобразователя я планировал на его базе (при помощи заливки различных прошивок) получать устройства различного назначения. Тогда я не подозревал, что данный преобразователь можно использовать шире, чем я планировал. Увидев схему USB программатора – USBtiny на ATtiny2313 я понял, что я уже имею готовый программатор!
Посмотрев на схему, сделанного ранее, преобразователя USB to UART (домашняя страничка )
и схему USB программатора USBTiny
можно увидеть, что это одна и та-же схема. Различия незначительны – отсутствуют сигнальные светодиоды и несколько резисторов. Для того, чтобы преобразователь стал USB программатором нужно просто прошить микроконтроллер новой прошивкой и сделать кабель для подключения.
Теперь все по порядку.
1 Для начала нужно собрать преобразователь (это если Вы его еще не собрали).
Вот рисунок печатной платы преобразователя:
T2313-SMD-2 v2.0 — Рисунок печатной платы UART-USB на ATtiny2313
Для того, чтобы обеспечить все необходимые сигналы для программирования впаиваем защитные резисторы номиналом по 100 Ом в линии ножек 12, 16, 17, 18, 19 (номинал не критичен – можно варьировать).
2 Теперь нужно прошить микроконтроллер.
Линии для программатора выведены на общий разъем платы (кроме сброса – стоит отдельно).
usbtinyisp-T2313.hex v1.04 — Прошивка USBtiny программатора для ATtiny2313
T2313-FuseBit — Фьюз-биты ATtiny2313 для USBtiny
Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставяться инверсно.
3 Далее нам нужен шлейф для того, чтобы соединить программируемое устройство с нашим программатором. Все линии, необходимые для программирования находятся на одном разъеме.
Схема шлейфа проста.
Из особенностей – я вынес индикаторный светодиод и балластный резистор для него за плату на разъем – это для того, чтобы плату без перепайки можно было использовать для других устройств (ну и так прикольней – светодиод мигает прямо в разъеме ). Кроме того, линия Vcc отделена от общего разъема – это на случай если программируемое устройство запитывается не от USB, а от своего источника (что, в принципе, желательно). Сигнальные линии (SCK, MISO, MOSI) желательно экранировать (например чередованием сигнальных и земляных линий в шлейфе). Длину шлейфа не стоит делать большой – до 50 см, не больше. Если нужно программировать удаленное устройство всегда можно применить USB удлинитель – так надежней. Вот мой готовый шнурок:
4 Сам программатор готов, теперь нужно установить драйвер для того, чтобы Винда смогла с ним работать (для Mac OS X & Linux, вродь-как, драйвера вообще не нужно). Тут все просто:
4.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
4.2 Вставляем наш программатор в USB порт.
4.3 В трее появится сообщение о том, что найдено новое устройство.
4.4 Запустится мастер нового оборудования
4.5 Указываем в окошке «место поиска» папку с драйвером.
4.6 Пройдет процесс установки драйвера. Появится окошко сообщающее о том, что драйвер установлен. Чтобы проверить, что мы там наустанавливали — заходим в «Мой компьютер/Свойства/Оборудование/Диспетчер устройств» и находим там наш программатор
Винда увидела новое устройство и готова с ним работать.
USBtiny программатор поддерживается AVRDude, а это значит, что многие среды программирования будут с ним работать без проблем. Еще одним достоинством работы с AVRDude является то, что для работы с AVRDude существует множество оболочек GUI из которых можно выбрать подходящую именно для Вас (но об этом в следующей статье).
ДОПОЛНЕНИЯ.
1 Дмитрий Шпак сделал довольно удачную разводку программатора. Программатор получился небольшого размера, имеет стандартный разъем для программирования и, я считаю, будет удобен в работе. Плата двусторонняя.
USBtiny.lay — Разводка USBtiny от Дмитрия Шпака
2 Еще один вариант разводки от Андрея Баранова (Andru_48)
USBtiny.lay — Разводка USBtiny от Андрея Баранова
3 Вариант от mebadboy
Доброе время суток.
Новую печатку я не собирал. Я просто исправил старую — Дмитрий Шпак . Там минимум исправлений – одну дорожку перерезать, кинуть проводок, впаять резистор и диод впаять в другое место.
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
Источник
Программаторы attiny2313 своими руками
Здравствуйте уважаемые форумчане, нужна помощь. Решил собрать самое простое usb устройство на контроллере attiny2313A, главная цель, научиться управлять светодиодом через usb. Сразу скажу, что познания ограничены рамками интернет статей. За основу взял вот эту обучалку http://openrobo.ru/control/usb. В общем все шло нормально. Прошивать научился, фьюз биты настроил. Но фот когда дошел до шага(компьютер должен увидеть ваше устройство) застрял.
1. Вот схема устройства
2.Может это поможет, но в поисках проблемы делал следующее:
2.1 Если подключить данное устройство без прошивки, то система (windows7) говорит «Не удалось распознать устройство» и в списке устройств мое детище висит как Unknown device
2.2 Прошиваю в контроллер все как в инструкции.При подключении устройства, система никак не реагирует.
2.3 Подумал, что криво прошиваю. Добавил в тело функции main() циклическое мигание диода раз в секунду. Подключаю к компу, светодиод мигает, система никак не видит устройства. Я так понял, что функция main() по крайней мере работает. Странность в том, что светодиод мигает очень часто, точно не раз в секунду и тускло очень. Предположил, что дело в питании, ток чтоли не постоянный, хотя тестер говорит что на usb ровно 5v. Подключил устройство с прошивкой для usb+мигание светодиода в функции main() к постоянному источнику (батарейки), светодиод мигает как надо, ярко и четко раз в секунду. Подключил к компу, но запитал от постоянного тока, никакой реакции.
В общем у меня даже не получилось, чтобы система увидела имя моего устройства. А оно прописывается в файле usbconfig.h
Методом тыка и редактирования кода ничего не получилось, проделал и проверил несколько раз, проверил сборку.
Подскажите пожалуйста, в чем может быть дело, или предложите другую статейку, желательно для уровня новичка. Уж очень хочеться продвинуться в этом направлении.
Реклама | ||
| ||
COKPOWEHEU | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Карма: 8 |
|