?

Log in

No account? Create an account
entries friends calendar profile Previous Previous Next Next
Программатор AVR910 под Linux - rootadmin
rootadmin
rootadmin
Программатор AVR910 под Linux
UPD 13.10.2010
Описание удачной попытки работать с присланным мне программатором под нормальной осью. Linux, ессно.
"В лоб" - не получилось. (и почему я не удивлен?). На работе проверял - под Win отлично работает. Системе плевать на стандарты, да.
В общем, на входе имеем: "Неопознанный" программатор (STK500), собранный на ATmega8 в TQFP корпусе.
Определяется в системе как:
usb 3-2: new low speed USB device using uhci_hcd and address 105
usb 3-2: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt
usb 3-2: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt
usb 3-2: configuration #1 chosen from 1 choice
cdc_acm 3-2:1.0: ttyACM0: USB ACM device
...
Но! Порт /dev/ttyACM0 - недоступен. Курение гугля дало результат. Оказалось что программатор нарушает спецификацию USB - low speed USB не может быть ком-портом. о чем система прямо и сообщает.
Ссылка на архив с исходной схемой: mkpochtoi.narod.ru/stk500.rar
Итак, схема устройства:Схема STK500


Благо, схема распространенная.
Теперь сравним со схемой prottoss.com/projects/AVR910.usb.prog/avr910_usb_programmer.htm AVR910:Схема AVR910
Похоже, правда? ;)
Разве что развернуть на ПИ.
Сразу бросается в глаза то, что у STK500 контакт 3 USB (неважно его назначение сейчас) подключен к двум ногам контроллера - PD2 и PB1. Необходимость этого - мне непонятна.
В программатора от Protoss'а - PB1 подключен через резистор к контарту ISP-разъема LED. Он там, правда совсем не нужен. А нужен он для запуска контроллеров с ошибочно зашитыми фьюзами - на него выводится меандр 1 МГц.
Важно! На схемах приведены номера выводов для DIP корпусов! У нас - TQFP Смотрим datasheet www.atmel.com/dyn/resources/prod_documents/doc2486.pdf
Пару перемычек порезано, пара добавлена - и программатор стал идентичным AVR910 от Protoss:Плата программатора
Прошу прощения за линии - рисую много хуже чем паяю.
Красным обозначены места где надо разорвать дорожки. (сопротивление - выпаять ногу) Дорожку ПОД чипом можно разорвать перецарапав иглой под 32 выводом - тогда его не придется снимать.
Желтым - новые соединения. Выпаяный вывод сопротивления - припаивается к выводу 1 контроллера. Удобно просверлить рядом с выводом отверстие. PB1 - 13 вывод контроллера соединяем с резистором - чтобы частота тактов для прошиваемого контроллера была 1 МГц, а не 12. Да и не нравится мне мысль тактовать (возможно чем-то нагруженный?) вывод таргета от кварца напрямую.
PB0 - 13 вывод - можно подключить к джамперу и замыкать на землю для программирования низкой скоростью.
PD6, PD7 подключаются через резисторы к светодиодам "Чтение" и "Запись" (опционально). Я себе сделал "раз уж все равно залез".

Прошил "алтернативной" прошивкой avr910-hid-no_debug.hex из electronix.ru/forum/index.php - прямо в первом сообщении прикреплен архив. Прошить очень просто - взял свои "5 проводков" от LPT порта, соединил одноименные выводы с ISP разъемом программатора, Reset - подпаял на 29 вывод контроллера к удобной площадке. Питался программатор при прошивке от USB. 

И вуаля - все завелось:
usb 3-2: new low speed USB device using uhci_hcd and address 104
usb 3-2: configuration #1 chosen from 1 choice
usbhid: ctrl urb status -75 received
hiddev96hidraw0: USB HID v1.01 Device [obdev.at AVR-Doper] on usb-0000:00:1d.2-2
usb 3-2: New USB device found, idVendor=16c0, idProduct=05df
usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-2: Product: AVR-Doper
usb 3-2: Manufacturer: obdev.at

И соответственно (ессно, с правами):
sudo avrdude -p m128 -c stk500v2  -P avrdoper  -vv -y -u
...
         Programmer Type : STK500V2
         Description     : Atmel STK500 Version 2.x firmware
         Programmer Model: STK500
         Hardware Version: 1
         Firmware Version: 2.04
         Topcard         : STK501
         Vtarget         : 5.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 2.2 us
...

Все заработало.
PS: Все изменения по вышеприведенной инструкции делаются на свой страх и риск. Не стоит пытаться переделать программатр без опыта пайки SMD компонентов.

Tags: , ,

2 comments or Leave a comment
Comments
From: (Anonymous) Date: December 21st, 2012 07:38 pm (UTC) (Link)

pooh-17

Значит ли это, что AVR910 будет под linux тоже работать? Уже какую неделю мучаюсь с выбором... Нужен именно под linux, уж сильно подсел на него (мята 13), как наркотик ;) и уже третий год ;) USBasp - не предлагать, не пошло, то ли руки кривые, то ли лыжи не едут. Две версии схемы, три платы, три вечера радиокоту под хвост - на грани бешенства! 5 и 6 версии и платы были на ft232rl, даже в виндах не пошли. В линукс не успел воткнуть, в сердцах демонтировал (поэтому и lsusb - нету)... А началось с малого, надо аттини 13 прошить ;)
rootadmin From: rootadmin Date: December 24th, 2012 08:54 am (UTC) (Link)

Re: pooh-17

Работает. По крайней мере с полгода назад - давно в руки не брал.
2 comments or Leave a comment