Речь пойдет о перепрошивке программатора Prottoss, чтобы он определялся и работал как Atmel STK500 Version 2.x
В этот раз напильник нам понадобиться совсем небольшой. Основная, металлическая часть напильника лежит здесь. Как можно догадаться из текста обсуждения, нам понадобиться прошивка avr910-hid-no_debug.hex из архива avr910_avrdoper_hex.zip. После того, как мы прошьем наш Prottoss, подключим его к USB-порту и наберем в терминале команду dmesg, мы должны увидеть примерно следующий вывод:
usb 1-1.2.1: >new low-speed USB device number 19 using ehci_hcd
usb 1-1.2.1: >New USB device found, idVendor=16c0, idProduct=05df
usb 1-1.2.1: >New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1.2.1: >Product: AVR-Doper
usb 1-1.2.1: >Manufacturer: obdev.at
hid-generic 0003:16C0:05DF.000A: >hiddev0,hidraw3: USB HID v1.01 Device [obdev.at AVR-Doper] on usb-0000:00:1a.0-1.2.1/input0
У нас добавились новые устройства /dev/usb/hiddev0 и /dev/hidraw3. Добавились они с правами на чтение и запись только для пользователя root. Поэтому прошивать утилитой avrdude придется от имени суперпользователя:
sudo avrdude -c stk500v2 -P avrdoper -p m8 -Uflash:w:my-program.hex:a
Это пример вызова avrdude для прошивки файлом my-program.hex микроконтроллера ATMega8 (параметр -p m8) нашим перепрошитым программатором, который теперь имеет тип Atmel STK500 Version 2.x firmware (это мы указали параметром -c stk500v2). Вместо устройства, к которому подключен программатор, в нашем случае приходиться использовать некий костыль (параметр -P avrdoper).
Есть "неправильный" способ избежать работы через sudo - исправить права самого avrdude. Это совсем не безопасное решение.
sudo chmod ug+s /usr/bin/avrdude
Правильный вариант - создать правило udev. В файл /lib/udev/rules.d/10-avrdoper.rules пишем:
ACTION!="add", GOTO="dev_support_rules_end"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="dev_support_init"
SUBSYSTEM!="usb_device", GOTO="dev_support_rules_end"
LABEL="dev_support_init"
ATTR{idVendor}=="16c0", ATTR{idProduct}=="05df", MODE:="0666"
LABEL="dev_support_rules_end"
Следующее втыкивание в усб и программатор работает от любого пользователя.
Настройки для Eclipse IDE, которую мы настроили в предыдущей статье:
Project -> Properties -> AVR -> AVRDude -> Programmer configuration -> Edit... (или New...)
Поле "Programmer Hardware (-c)" устанавливаем в значение "Atmel STK500 Version 2.x firmware", в поле "Override default port (-P)" пишем: avrdoper.
Вот, пожалуй, и все.
Правильный вариант - создать правило udev. В файл /lib/udev/rules.d/10-avrdoper.rules пишем:
ACTION!="add", GOTO="dev_support_rules_end"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="dev_support_init"
SUBSYSTEM!="usb_device", GOTO="dev_support_rules_end"
LABEL="dev_support_init"
ATTR{idVendor}=="16c0", ATTR{idProduct}=="05df", MODE:="0666"
LABEL="dev_support_rules_end"
Следующее втыкивание в усб и программатор работает от любого пользователя.
Настройки для Eclipse IDE, которую мы настроили в предыдущей статье:
Project -> Properties -> AVR -> AVRDude -> Programmer configuration -> Edit... (или New...)
Поле "Programmer Hardware (-c)" устанавливаем в значение "Atmel STK500 Version 2.x firmware", в поле "Override default port (-P)" пишем: avrdoper.
Вот, пожалуй, и все.
Комментариев нет:
Отправить комментарий