USBasp sur Mac ne détecte pas mes cartes ATmega328P : "could not find USB device"
Traduit de English par IA ·
Nous fabriquons de petites cartes de capteurs RS-485 autour d’un ATmega328P nu ; elles sont reliées à un bus derrière une passerelle qui les remonte vers Hermetry. La programmation se fait depuis toujours sur un poste Linux à l’atelier, avec un USBasp. J’essaie de configurer mon MacBook (M2, macOS 14) pour les interventions sur site, afin de ne pas devoir emporter le portable Linux.J’ai installé avrdude via Homebrew. À chaque tentative :
$ 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
L’USBasp est branché sur un adaptateur USB-C vers USB-A. Le même programmateur fonctionne sous Linux. Faut-il un pilote sous macOS ? Tout ce que je trouve en ligne date 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.
Traduit de English par IA ·
Ça fonctionne directement sur ma machine Linux, je n’ai jamais essayé avec un Mac.
Works out of the box on my Linux machine, never tried a Mac.
Traduit de English par IA ·
Avez-vous essayé l’avrdude fourni avec l’IDE Arduino ? Parfois, la version Homebrew se comporte bizarrement.
Have you tried the avrdude that comes with the Arduino IDE? Sometimes the Homebrew build is odd.
Traduit de English par IA ·
Même erreur avec l’avrdude de l’Arduino IDE.
Same error with the Arduino IDE’s avrdude.
Traduit de English par IA ·
Apparaît-il seulement dans Informations système, sous USB ?
Does it even show up in System Information under USB?
Traduit de English par IA ·
La question de Daniel est la bonne première étape. Sous macOS, aucun pilote n’est nécessaire : avrdude communique avec l’USBasp via libusb, installé avec Homebrew. Si Informations système > USB ne liste pas « USBasp » du tout, le problème vient de l’adaptateur, pas d’avrdude. J’ai eu exactement ce problème avec deux adaptateurs USB-C bon marché dans notre usine : l’USBasp est un périphérique USB bas débit dont le firmware fait du bit-banging USB, et certains adaptateurs et hubs USB-C ne le détectent pas de façon fiable. Un hub USB-A alimenté placé entre l’adaptateur et l’USBasp a réglé le problème, tout comme un autre adaptateur (Apple).Une fois le périphérique trouvé, l’erreur suivante que vous rencontrerez probablement sur des puces neuves est celle-ci :
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target does not answer (0x01)
Un 328P neuf fonctionne à 1 MHz avec l’oscillateur interne, et l’horloge ISP par défaut est trop rapide pour lui. Ralentissez-la :
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
(ces fusibles sont prévus pour un quartz externe de 16 MHz ; vérifiez le vôtre avant de les écrire). L’avertissement « cannot set sck period » provient de l’ancien firmware USBasp et est sans gravité tant que -B fonctionne ; sur les anciennes versions, le cavalier de bas débit d’horloge fait la même chose.
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.
Traduit de English par IA ·
Vérifie aussi l’adaptateur ISP 10 broches vers 6 broches si tu en utilises un. J’en ai eu un dont MISO et MOSI étaient croisés, qui ne fonctionnait que par chance sur un type de carte.
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.
Traduit de English par IA ·
C’était l’adaptateur. Informations système n’affichait rien via mon dongle USB-C sans marque ; via un hub alimenté, « USBasp » apparaît et avrdude le trouve. J’ai flashé quatre cartes sur site hier : la carte de rechange toute neuve avait besoin de -B 32, exactement comme l’a dit tsmith. Les fusibles étaient déjà configurés sur les autres. Le portable Linux reste maintenant à l’atelier.
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.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

