Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Ceci est un petit guide pour flasher un nouveau firmware sur un clone USBasp comme le mien. Ce guide est spécifiquement écrit pour le clone USBasp vu dans les images, mais il devrait toujours fonctionner avec d'autres. Le câblage est montré à l'étape 5, il y a un TL;DR à l'étape 9.
Prendre plaisir!
Étape 1: Le problème
Avrdude me dit que le programmeur que j'utilise a un firmware obsolète. Le cavalier normal pour l'auto-programmation n'existe pas sur ma carte. Voici comment y remédier. Les schémas de l'USBasp sont disponibles sur fischl.de.
Étape 2: Matériel nécessaire
Tu auras besoin de…
- Un fer à souder
- Un Arduino (de préférence Nano)
- Quelques fils de liaison
- Un PC avec l'IDE Arduino et avrdude installés
Étape 3: la solution
Pour que nous puissions flasher un nouveau firmware sur l'ATmega8, nous devons prendre le contrôle de sa broche RESET. Normalement, un cavalier sur l'USBasp peut être fermé pour permettre l'auto-programmation, cependant le fabricant de ma carte n'en a pas inclus.
Sur l'ATmega8, la broche RESET est la broche 29, la quatrième broche en haut à partir de la gauche. Il est connecté à une résistance pull-up de 10k à 5V. Nous devons le connecter à la broche 5 de l'en-tête ICSP.
On pourrait essayer de souder un fil directement sur la résistance ou sur la broche elle-même, cependant c'est fastidieux et peut endommager votre carte. (Je l'ai essayé et j'ai arraché la résistance de rappel, je ne le recommande pas) De plus, il existe un moyen beaucoup plus simple !
Bien que le fabricant n'ait pas inclus de véritable cavalier pour permettre l'auto-programmation, il a mis un en-tête sous le microcontrôleur. Nous pouvons simplement souder un fil et…
Étape 4: Voilà
Nous avons connecté les deux broches de réinitialisation ! Les deux trous en bas relient la broche 29 et la broche 14 du microcontrôleur.
Étape 5: Configuration de l'Arduino
Pour flasher le nouveau firmware sur le programmeur, nous avons besoin d'un autre programmeur, dans ce cas un Arduino avec le croquis ArduinoISP dessus. Juste pour vous assurer que votre configuration est la même, veuillez décommenter la ligne 81
// #définir USE_OLD_STYLE_WIRING
Connectez maintenant l'Arduino avec l'en-tête ICSP sur votre programmeur.
Arduino USBasp
5V Broche 2 (VCC) GND Broche 4/6/8/10 (GND) Broche 10 Broche 5 (Reset) Broche 11 Broche 9 (MISO) Broche 12 Broche 1 (MOSI) Broche 13 Broche 7 (SCK)
L'USBasp reste débranché du PC.
Ouvrez un terminal et tapez
avrdude -cavrisp -pm8 -b19200 -P[Votre numéro de port va ici, il devrait être le même que dans l'IDE Arduino]
Si tout se passe bien, avrdude devrait imprimer des informations sur l'ATmega8 (fusibles, signature, etc.)
Étape 6: Flasher l'ATmega8
Pour flasher la puce, nous avons encore besoin du firmware. Rendez-vous sur fisch.de et téléchargez la dernière version. Extrayez l'archive et accédez-y à l'aide du shell.
La compilation du code n'a pas fonctionné pour moi, mais heureusement l'archive contient tous les programmes compilés sous
bac/micrologiciel
Ici, vous devriez voir trois fichiers.hex. Choisissez celui qui porte le même nom que votre puce. Mon programmeur utilise un ATmega8, j'ai donc choisi
usbasp.atmega8.aaaa-mm-jj.hex
Avec une connexion fonctionnelle à l'ATmega8, le flasher ne devrait nécessiter que de taper
avrdude -cavrisp -pm8 -b19200 -P[PORT] -U flash:w:[fichier hexadécimal]
Si tout a été fait correctement, avrdude doit écrire et vérifier le firmware sélectionné.
Étape 7: S'assurer que le programmeur fonctionne
Pour utiliser à nouveau l'USBasp comme programmeur, nous devons supprimer la connexion entre la broche 29 et la broche 14. Couper le cavalier en bas devrait suffire, mais le retirer ne peut pas non plus faire de mal.
Vous pouvez l'essayer en le rebranchant sur le PC et en tapant
avrdude -cusbasp -pm8
Même si avrdude ne peut pas atteindre la cible, il devrait au moins reconnaître le nouveau firmware de notre programmeur.
Étape 8: Dépannage
Si avrdude affiche une erreur comme celle-ci, cela a probablement quelque chose à voir avec la fonction de réinitialisation automatique de l'Arduino. Pour contourner cela, veuillez ajouter un condensateur entre RESET et GND de l'Arduino. Il est généralement recommandé d'utiliser un condensateur de 10 µF, mais dans mon cas, un condensateur de 100 µF a très bien fonctionné.
Si vous obtenez une erreur comme
avrdude: erreur: activation du programme: la cible ne répond pas. 1
ou une signature invalide est retournée, veuillez vérifier votre câblage. J'ai eu un problème avec mes câbles d'alimentation qui rouillent et ne conduisent plus l'électricité. Je recommande de vérifier tous les cavaliers au préalable.
Assurez-vous également de basculer la broche 11 et la broche 12 sur l'Arduino, si le problème persiste.
Veuillez également vous assurer de définir le débit en bauds correct pour l'Arduino en tant que FAI, 19200. Il peut être défini avec l'option
-b19200
Si vous avez des questions ou avez repéré une erreur, faites-le moi savoir:)
Étape 9: TL; DR
- Soudez un fil entre les deux broches au bas de la carte
- Configurer un Arduino en tant que FAI, en veillant à activer l'ancien schéma de câblage
- Connectez l'Arduino au programmeur via l'en-tête ICSP
- Flashez le nouveau firmware sur le programmeur
- Retirez la connexion en bas
- N'arrachez aucune résistance SMD