USBasp en Mac no detecta mis placas ATmega328P: "could not find USB device"
Traducido del English por IA ·
Fabricamos pequeñas placas de sensores RS-485 con un ATmega328P sin encapsular; van conectadas a un bus detrás de una pasarela que las reporta a Hermetry. La programación siempre se ha hecho en un equipo Linux del taller con un USBasp. Estoy intentando configurar mi MacBook (M2, macOS 14) para las reparaciones en campo, para no tener que llevar el portátil Linux.Instalé avrdude con Homebrew. En cada intento:
$ avrdude -c usbasp -p m328p -U flash:w:rs485node.hex:i
avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
avrdude: error: unable to open programmer usbasp on port usb
El USBasp está conectado a un adaptador USB-C a USB-A. El mismo programador funciona en Linux. ¿Necesito un controlador en macOS? Todo lo que encuentro en internet es de 2012.
We build small RS-485 sensor boards around a bare ATmega328P; they sit on a bus behind a gateway that reports them to Hermetry. Programming has always been done on a Linux box in the workshop with a USBasp. I’m trying to set up my MacBook (M2, macOS 14) for field fixes so I don’t have to carry the Linux laptop.
Installed avrdude via Homebrew. Every attempt:
$ avrdude -c usbasp -p m328p -U flash:w:rs485node.hex:i
avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'
avrdude: error: unable to open programmer usbasp on port usb
The USBasp is plugged into a USB-C to USB-A adapter. Same programmer works on Linux. Do I need a driver on macOS? Everything I find online is from 2012.
Traducido del English por IA ·
Funciona de inmediato en mi máquina Linux, nunca lo he probado en un Mac.
Works out of the box on my Linux machine, never tried a Mac.
Traducido del English por IA ·
¿Has probado el avrdude que viene con el IDE de Arduino? A veces la versión de Homebrew da problemas.
Have you tried the avrdude that comes with the Arduino IDE? Sometimes the Homebrew build is odd.
Traducido del English por IA ·
Mismo error con el avrdude del Arduino IDE.
Same error with the Arduino IDE’s avrdude.
Traducido del English por IA ·
¿Aparece siquiera en Información del sistema, en USB?
Does it even show up in System Information under USB?
Traducido del English por IA ·
La pregunta de Daniel es el primer paso correcto. En macOS no hace falta controlador: avrdude se comunica con el USBasp a través de libusb, que Homebrew instala junto con él. Si Información del sistema > USB no muestra «USBasp» en absoluto, el problema está en el adaptador, no en avrdude. Me pasó exactamente esto con dos adaptadores USB-C baratos en nuestra planta: el USBasp es un dispositivo USB de baja velocidad cuyo firmware implementa USB por software (bit-banging), y algunos adaptadores y hubs USB-C no lo enumeran de forma fiable. Un hub USB-A con alimentación entre el adaptador y el USBasp lo solucionó, y también otro adaptador (de Apple).Una vez encontrado, el siguiente error que probablemente verá en chips nuevos es este:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target does not answer (0x01)
Un 328P nuevo funciona a 1 MHz con el oscilador interno, y el reloj ISP por defecto es demasiado rápido para él. Reduzca la velocidad:
avrdude -c usbasp -p m328p -B 32 -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0xFD:m
avrdude -c usbasp -p m328p -B 4 -U flash:w:rs485node.hex:i
(esos fusibles son para un cristal externo de 16 MHz; compruebe el suyo antes de escribirlos). La advertencia «cannot set sck period» la provoca el firmware antiguo del USBasp y es inofensiva mientras funcione -B; en versiones antiguas, el jumper de reloj lento hace lo mismo.
Daniel’s question is the right first step. No driver is needed on macOS, avrdude talks to the USBasp through libusb, which Homebrew installs with it. If System Information > USB doesn’t list «USBasp» at all, it’s the adapter, not avrdude. I had exactly this with two cheap USB-C adapters at our plant: the USBasp is a low-speed USB device with the firmware bit-banging USB, and some USB-C adapters and hubs don’t enumerate those reliably. A powered USB-A hub between the adapter and the USBasp fixed it for me, so did a different (Apple) adapter.
Once it’s found, the next error you’ll probably meet on fresh chips is this:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target does not answer (0x01)
A new 328P runs at 1 MHz from the internal oscillator, and the default ISP clock is too fast for it. Slow it down:
avrdude -c usbasp -p m328p -B 32 -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0xFD:m
avrdude -c usbasp -p m328p -B 4 -U flash:w:rs485node.hex:i
(those fuses are for an external 16 MHz crystal, check yours before you write them). The «cannot set sck period» warning is the old USBasp firmware talking, harmless as long as -B works; on older ones the slow-clock jumper does the same.
Traducido del English por IA ·
Y revisa también el adaptador ISP de 10 a 6 pines si usas uno. Tuve uno con MISO y MOSI cruzados que solo funcionaba por casualidad en un tipo de placa.
And check the 10-to-6 pin ISP adapter if you use one. I’ve had one with MISO and MOSI crossed that worked only by luck on one board type.
Traducido del English por IA ·
Era el adaptador. Información del sistema no mostraba nada con mi dongle USB-C genérico; con un hub con alimentación aparece «USBasp» y avrdude lo encuentra. Ayer grabé cuatro placas en campo; la placa de repuesto recién comprada necesitaba -B 32, tal como dijo tsmith. Los fusibles ya estaban configurados en las demás. El portátil con Linux se queda ahora en el taller.
Adapter it was. System Information showed nothing through my no-name USB-C dongle; through a powered hub it shows «USBasp» and avrdude finds it. Flashed four boards in the field yesterday, the brand-new spare board needed -B 32 exactly like tsmith said. Fuses were already set on the others. Linux laptop stays in the workshop now.
- Debes estar registrado para responder a este debate.
Únete a la conversación
Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

