usbasp atmega328p linux usb avr avrdude

atmega328p - AVRISP MKII no funciona con AVRDUDE en Linux



avrdude usbasp (5)

El sistema ve que hay algo enchufado cuando lo conecto y desenchufé:

bluehat@Matapan:/dev$ tail -f /var/log/syslog Mar 23 15:36:35 Matapan kernel: [156082.112874] usb 7-1: new full speed USB device using uhci_hcd and address 6 Mar 23 15:47:19 Matapan kernel: [156726.248081] usb 7-1: USB disconnect, address 6 Mar 23 15:47:29 Matapan kernel: [156736.200148] usb 6-1: new full speed USB device using uhci_hcd and address 3

AVRISP MKII debe confiar en cdc-acm:

bluehat@Matapan:/dev$ modinfo cdc-acm -V module-init-tools version 3.12

Por lo tanto, debería poder verlo bien y, sin embargo, no puedo escribirle.

avrdude -p m1280 -c avrispmkII -P usb -U test.hex

Devoluciones

avrdude: usb_open(): cannot read serial number "error sending control message: Operation not permitted" avrdude: usb_open(): cannot read product name "error sending control message: Operation not permitted" avrdude: usbdev_open(): error setting configuration 1: could not set config 1: Operation not permitted avrdude: usbdev_open(): did not find any USB device "usb"


Para Ubuntu 12.04, hay un cambio menor que se debe realizar en la configuración que Katy publicó:

Todas las ocurrencias de SYSFS deben reemplazarse con ATTR

Además, si aún tiene problemas, asegúrese de haber instalado todas las bibliotecas dependientes necesarias. Descubrí que también tenía que instalar el paquete uisp .

Si reiniciar udev no hace una diferencia, desenchufe el programador y vuelva a conectarlo.


Parece que lo cambiaron de nuevo en 12.10
El subsistema ahora es "usb"

Encontré un comando que muestra lo que necesitas. Para eso solo necesita saber el número de Bus y Dispositivo del dispositivo conectado (use lsusb)

Bus 003 Dispositivo 010: ID 03eb: lsusb

Así que mi número de bus de la ISP es 003 y el dispositivo es 010 (edite el final / 003/010 según sus necesidades)

udevadm info --attribute-walk --name = bus / usb / 003/010


muestra entre muchas otras cosas

SUBSISTEMA == "usb"

ATTR {idVendor} == "03eb"

ATTR {idProduct} == "2104"

Reemplace / cambie la regla creada arriba y todo debería funcionar

Si hay otros problemas, el Comando se los mostrará, comprueba las reglas (encontró un error tipográfico de esa manera :)) Si no hay ningún error, no mostrará nada (No se dio cuenta durante algún tiempo)


Regla actualizada que funciona para 13.10:

SUBSYSTEM!="usb", ACTION!="add", GOTO="avrisp_end" # Atmel Corp. JTAG ICE mkII ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", MODE="660", GROUP="dialout" # Atmel Corp. AVRISP mkII ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="660", GROUP="dialout" # Atmel Corp. Dragon ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", MODE="660", GROUP="dialout" LABEL="avrisp_end"

Basado en publicaciones anteriores sobre cambios.


Resulta que Ubuntu reconocerá que el objeto está allí, pero no jugará bien con él hasta que arregles algunas de las reglas de udev. Gracias a http://steve.kargs.net/bacnet/avr-isp-mkii-on-ubuntu-hardy/ que proporcionaba archivos que solo necesitaban una pequeña actualización.

Crear nuevo archivo /etc/udev/avrisp.rules

SUBSYSTEM!="usb", ACTION!="add", GOTO="avrisp_end" # Atmel Corp. JTAG ICE mkII ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", MODE="660", GROUP="dialout" # Atmel Corp. AVRISP mkII ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="660", GROUP="dialout" # Atmel Corp. Dragon ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", MODE="660", GROUP="dialout" LABEL="avrisp_end"

Ahora crea un enlace virtual al archivo y dale una prioridad de regla

cd /etc/udev/rules.d sudo ln ../avrisp.rules 60-avrisp.rules

Comprueba que estás en el grupo dialout

groups

Reiniciar udev

sudo service udev restart

¡Hurra!


Usé el siguiente archivo de reglas de udev para que funcione en Fedora 19 :

SUBSYSTEM!="usb", ACTION!="add", GOTO="avrisp_end" # Atmel Corp. JTAG ICE mkII ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", MODE="660", GROUP="dialout" # Atmel Corp. AVRISP mkII ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="660", GROUP="dialout" # Atmel Corp. Dragon ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", MODE="660", GROUP="dialout" LABEL="avrisp_end"

Como puede ver, algunas cosas menores son diferentes de lo que se sugiere anteriormente. También tuve que reiniciar la computadora. Usar "udevadm control --reload" no fue suficiente.