¿Cómo responde avrdude con AVR-ISP-MKII cuando no hay ninguna placa de destino conectada?

¿Cómo responde avrdude con AVR-ISP-MK2 cuando no hay ninguna placa de destino conectada?

Estoy tratando de solucionar mi configuración y me gustaría saber si el problema radica entre la computadora portátil y el programador o entre el programador y la placa de destino.

Para mí, este comando avrdude da el mismo resultado independientemente de si la placa de destino está conectada o no. No importa si el archivo existe o no.

# avrdude -c avrispmkII -p m328 -U flash:w:flashled.hex
avrdude: usbdev_open(): Found AVRISP mkII, serno: 000200012345
avrdude: Sent: . [01]
avrdude: usbdev_recv_frame(): usb_bulk_read(): Input/output error
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: Sent: . [01]
avrdude: usbdev_recv_frame(): usb_bulk_read(): Input/output error
avrdude: stk500v2_recv_mk2: error in USB receive
avrdude: Sent: . [01]
avrdude: usbdev_recv_frame(): usb_bulk_read(): Input/output error
avrdude: stk500v2_recv_mk2: error in USB receive
¿En qué sistema operativo estás?
¿Qué comandos estás ejecutando?
@coding_corgi Estoy en Arch Linux x86_64 y he probado avrdude -c avrispmkII -p m328 -U flash:w:filename.hex. Ya actualicé el firmware AVR-ISP-mk2 usando Atmel Flip al que maneja avrdude y libusb.
Ok, bueno, tuve problemas con mi AVR ISP MKII en Ubuntu (hasta que explotó) y recibía errores similares, ¿estás compilando archivos .c/.cpp?
@coding_corgi Sí, estoy compilando archivos .c usando avr-gcc. Pero eso no importa: obtengo el mismo comportamiento independientemente de si existe el archivo .hex o si la placa de destino está conectada al programador.
Este podría ser el punto en el que desea ejecutarlo en otro sistema operativo durante el tiempo suficiente para verificar que realmente funciona y que está correctamente conectado a su placa de destino. Tal vez hayan ido y ajustado el protocolo de alguna manera que no se esperaba. También puede verificar si tiene permiso para el nodo del dispositivo USB, aunque no estoy seguro de que no tener eso no haya causado una falla anterior. Finalmente, si solo necesita programar algo, un boceto de ISP en una placa Arduino generalmente funciona (aunque también podrá encontrar a aquellos que han tenido problemas con eso)
Si miro estos mensajes de error, tengo la impresión de que falta la pila de protocolos para hablar con el programador a través de USB. esta uisp - Micro In-System Programmer for Atmel's AVR MCUsinstalado? No sé cómo comprobar que en Arch tu Google es tan bueno como el mío.
@jippie Me parece que uisp y avrdude son dos programas diferentes que se pueden usar para comunicarse con programadores a través de USB.
Mala mía, tienes razón, perdón por la confusión. ¿ Hay algo dmesgdespués de conectar el programador? Intente desconectarse; sudo dmesg -c; clear; volver a sudo dmesg -cconectar
@jippie: Se detecta:[43011.039111] usb 5-1: new full-speed USB device number 4 using uhci_hcd [43013.342476] usb 5-1: USB disconnect, device number 4
@ChrisStratton: Gracias. Hice eso y ahora logré programar el atmega desde una máquina con Windows.

Respuestas (1)

Actualización: README.xcompile.20180518 está en el mismo repositorio , pero se revisó para la versión estable más reciente de gcc (8.1.0), binutils (2.30), así como algunas otras mejoras. El parche avrdude-6.3 sigue siendo alarmantemente relevante. Espero que esto ayude...


Actualización: he conservado un repositorio de github con instrucciones completas para crear la cadena de herramientas AVR GNU de vanguardia (que incluye avr-gcc 7.2.0 y avr-libc 2.0.0), así como parchear avrdude-6.3 para eliminar USB I/ oh errores.

Las instrucciones están enfocadas en OS X (usando MacPorts), pero deberían ser fáciles de adaptar para hosts Unix/BSD.

También proporciona instrucciones de uso dfu-programmerpara flashear el libusbfirmware basado en Olimex AVR-ISP-MK2, sobrescribiendo el AVR Studiofirmware predeterminado de fábrica.

Desde entonces, no he tenido problemas. Preparé una placa de programador mínima con un zócalo ZIF de 40 PDIP que consume 5 V de energía del AVR-ISP-MK2 con una configuración de puente de 5 V: ENCENDIDO.

lo suficientemente bueno para la programación rápida!

Implementación simple de veroboard para una programación rápida y sucia...


Instrucciones anteriores:

Sé que esta es una respuesta tardía, pero Olimex AVR-ISP-MKII necesita una actualización de firmware para usar con avrdude (a diferencia de AVR studio; consulte la documentación).

Como estoy en OSX, la utilidad Atmel Flip no era una opción conveniente. En cambio, agarré dfu-programmer y actualicé el programador con el firmware libUSB-AVRISP-MKII.hexdisponible de Olimex:

  1. Conecte el programador y presione el pin de actualización; los LED deben apagarse.
dfu-programmer at90usb162 erase
dfu-programmer at90usb162 flash libUSB-AVRISP-MKII.hex
dfu-programmer at90usb162 start

En este punto, los LED naranja y rojo estaban encendidos.

Es posible que deba modificar la dfu-programmerfuente, si libusb-1.0(requerido) se encuentra en otro lugar además de /usr/include. Se me considera presentar un configure.acsistema mejorado y compilado. (Los usuarios de MacPorts pueden instalar los paquetes dfu-programmery dfu-utils).

Conectando el ICSP10 a mi placa AVR-P40-8535 barata , con un ATmega8535 en el zócalo (los puentes MKII configurados en ON: 5V):

correr:avrdude -c avrisp2 -p m8535 -P usb

devolvió la firma de dispositivo correcta "0x1e9308"para el ATmega8535.

Gracias por tu respuesta. Logré actualizar el firmware usando Atmel Flip, pero eso no cambió los resultados. Lo hice funcionar en una máquina con Windows, por lo que no he pasado más tiempo tratando de arreglar la configuración de Linux.