Ну вот и пришло время нам соорудить 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
|