Étape 3: Programmation de haute tension et réinitialisation de fusible
Les fusibles sont fondamentales pour un microcontrôleur. Ils définissent beaucoup de choses essentielles à ce sujet, qui est nécessaires pour son exécution.
Généralement, les fusibles sont un ensemble de bits qui ont leur endroit spécial dans le microcontrôleur. Habituellement 2 ou 3 octets. Chaque bit permet une caractéristique différente du microcontrôleur. Certaines fonctionnalités sont EEPROM erase lock (serrures EEPROM sorte de programmation ne sera pas l’effacer), utilisation de broche Reset (IO pin ou Reset), Brown-out détection (BOD), utilisation de l’oscillateur externe... Plus sur les fusibles et ce qu’ils font ici...
Mais les fusibles sont aussi dangereux ! Vous pouvez définir à l’aide de votre fournisseur d’accès, tout comme vous téléchargez votre programme, mais il arrive que votre ISP est incapable de leur remise à zéro. Dans certains cas cela briques complètement votre microcontrôleur. Un exemple classique est le suivant :
Vous devez utiliser la broche Reset comme une tige de IO. Vous téléchargez le code bien à l’aide de votre FAI et puis vous activez le RSTDISBL fusibles (le fusible qui rend la réinitialisation épingler un port d’e/s). Maintenant, le microcontrôleur a aucun externe réinitialiser. Tout à coup vous vous rendez compte qu’il y a un bogue dans votre code, alors vous y remédier, compilez et vous essayez de reupload il dans le microcontrôleur... Ce n’est plus faire! C’est parce que l’ISP utilise la réinitialisation externe pour rendre le microcontrôleur comprendre autrement dit avoir programmé. Vous avez maintenant un microcontrôleur de briques ...
Cependant, il existe une solution à cela. La solution s’appelle Haute tension programmateur... Cette rampe de bête broche Reset du microcontrôleur avec 12Volts (au lieu de 5V) et affiche qui est le patron ! Sérieusement, microcontrôleurs sont programmés pour comprendre que 12V sur les moyens de broche de Reset « Programmation » quelles que soient les fusibles sont et de cette façon, vous pouvez modifier retour le RSTDISBL à la normale (de continuer à utiliser un fournisseur d’accès classique). Vous pouvez trouver un sketch Arduino pour remettre à zéro les fusibles par défaut (avec un schéma) ici.
Ma Station de programmation implémente une source d’alimentation externe (contrôlée par un transistor par le signal de Reset de l’ISP) pour être utilisé comme source de 12V. Cette voie Haute tension de programmation (et sauvetage de la brique) est possible...