AVR – Annexe – Tutoriel sur la récuperation d’un ATTiny bloqué

Comment bloqué son microcontrôleur ?

Si vous êtes aussi pressé que moi de tester un montage, il a pu vous arriver de faire des boulettes. Il y a les classiques : la surtension, le court-circuit, le claquage de diode…

Mais il peut vous arriver également de vous tromper lors des réglages des fusibles de votre microcontrôleur.Pour ma part, j’ai mal configuré l’horloge de l’ATTiny…

Et cela se solde en général par une indisponibilité pour toute essai de programmation de sa mémoire. Pire, vous n’aurez même plus accès aux-dits fusibles. Dur !

Au secours !

Après avoir bloqué (on dit aussi brické) quatre ATTiny, je décide d’arrêter le massacre et de me renseigner.

Je suis tombé sur énormément de tutoriels qui proposaient d’utiliser l’environnement de développement officiel fourni par Atmel (AVR Studio). Mais celui-ci requiert du matériel officiel, et non un programmateur bricolé avec un Arduino. L’AVR ISP MKII est un boitier de programmation, qui coûte une quarantaine d’euros, et qui n’est pas aussi convivial à utilisé qu’un Arduino, du point de vue montage. Il y a aussi les copies chinoises sur eBay, mais qui restent tout de même assez chères (25€ environ).

En cherchant un peu plus loin, j’ai trouvé une méthode dite « High Voltage ». L’idée d’injecter une haute dose de courant dans mon circuit ne me plaisait pas, même s’il s’agissait d’un courant de 12V, ce qui finalement n’est pas bien haut.

Mais puisque je ne trouvais rien de plus convaincant sur le sujet, j’ai tenté l’expérience.

Allons-y !

Matériel et logiciels

Il vous faudra donc :

  • un PC
  • un Arduino et son câble USB
  • une plaque de prototypage
  • 6 résistances de 1kΩ
  • une pile A23 (trouvable en grande surface) et son support (à bricoler avec du papier alu et un support LR3 ou LR6)
  • un transistor NPN 2N3904 ou BC547B (d’autres références feront surement l’affaire)
  • quelques câbles
  • et un ATTiny souffrant (ça marche aussi avec un microcontrôleur sain, mais c’est moins utile)

Coté logiciel, il vous faudra :

  • l’environnement de développement Arduino, ici
  • ce sketch pour Arduino

Montage

Si vous optez pour une petite plaque de prototypage, les composants seront un peu serrés, mais ça passe :arduino_attiny_fuse_reset_bb

Faites quand même attention avec le 12V, il serait dommage de griller votre Arduino en plus de votre ATTiny !

Commencez les incantations !

Maintenant que votre montage est prêt, vous pouvez brancher votre Arduino, et envoyer le sketch fourni plus haut vers celui-ci.

Une fois qu’il tourne, connectez le terminal série, en prenant soin de régler la vitesse sur 19200 bauds. Tapez n’importe quel caractère (ASCII de préférence) et envoyez-le.

Si tout s’est bien passé, vous devriez avoir une réponse dans la foulée, précisant les nouveaux fusibles configurés pour votre microcontrôleur.

Bravo, il est reparé !

Comment trouver les bons fusibles ?

Maintenant que vous avez retrouvé votre microcontrôleur, il peut être bien de savoir comment changer ses fusibles. Le plus simple est d’utiliser [cci]avrdude[/cci], au travers du Makefile dont je parle ici. Et pour savoir comment choisir les valeurs pour ces fusibles, utilisez un calculateur comme celui-ci.

Le calculateur vous donnera des détails sur chaque bit des fusibles, et se chargera même de créer les arguments à transmettre à la commande [cci]avrdude[/cci].

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*