Que sont les fusibles Atmel?

21

Que sont les fusibles dans les microprocesseurs Atmel et quand dois-je ou dois-je changer les paramètres par défaut?

tuupola
la source
7
Attention, il est facile de désactiver le FAI et de se verrouiller en réglant les mauvais fusibles.
starblue

Réponses:

23

Ce sont essentiellement des paramètres de configuration, ou comme le BIOS de la puce. Il y a un calculateur de fusibles fantastique pour les AVR Atmega ici: http://www.engbedded.com/fusecalc/

Ils contrôlent des éléments tels que l'oscillateur à utiliser et la vitesse d'exécution (par exemple, l'oscillateur interne à 8 MHz ou un cristal externe), la détection des baisses de tension et la taille du flash de démarrage.

blalor
la source
désolé d'intervenir, mais je me demandais s'il y avait des fusibles physiques à l'intérieur de l'ATmega ou sont-ils comme une émulation logicielle d'un fusible? Oh, et que se passe-t-il si vous faites sauter un fusible? Suis-je même en train de penser au même type de fusible?
Jim
5
non, ils ne sont pas du tout comme ce genre de fusible. ce ne sont en fait que quelques bits de mémoire flash ou eeprom, séparés des autres, qui sont utilisés comme paramètres de configuration.
davr
24

Je vois que blalor a déjà une excellente réponse pour les fusibles Atmel.

Pour répondre à la question suivante "s'agit-il de fusibles physiques ou de logiciels programmables", la réponse n'est ni l'un ni l'autre. Tous les microcontrôleurs modernes Atmel et Microchip stockent les «bits de fusible» dans les cellules de mémoire non volatile - physiquement les mêmes que les cellules flash SLC.

Lorsque vous utilisez un programmeur à puce pour télécharger un nouveau programme dans la mémoire Flash du programme du microcontrôleur, il efface et reprogramme également ces cellules de mémoire de bits de fusible.

Cependant, le logiciel exécuté sur un microcontrôleur ne peut pas changer les bits de fusible - pas même si vous utilisez un microcontrôleur "auto-programmé" - c'est-à-dire un microcontrôleur qui permet au logiciel du chargeur de démarrage qui s'exécute dessus de reprogrammer sa propre mémoire flash de programme .

Certains processeurs Atmel (en particulier ceux à faible puissance) permettent aux logiciels qui s'exécutent sur eux de changer la source d'horloge à la volée en écrivant dans un registre de configuration - mais chaque fois qu'ils sont réinitialisés (ou que l'alimentation s'éteint puis revient) , ils recommencent à utiliser la source d'horloge spécifiée dans les bits de fusible. La seule façon de changer ces bits de fusible est avec un programmateur de puce.

Il y a des décennies, ces bits de configuration (et la mémoire du programme également) étaient en fait stockés dans des fusibles - un tas de brins fins de métal; ceux appropriés ont été sélectivement "soufflés" en appliquant du 12 V jusqu'à ce que le métal fonde et se déconnecte et que le trépan devienne non conducteur. Comme vous l'avez probablement compris, cela rend le microprocesseur programmable une fois (OTP) - la seule façon de faire sauter un fusible était de jeter tout le microprocesseur, d'en retirer un nouveau et de tout recommencer.

Nous appelons toujours ces bits de configuration "bits de fusible" pour des raisons historiques - un peu comme nous appelons souvent la mémoire de programme "ROM" (même si elle n'est pas vraiment "en lecture seule" sur un microcontrôleur auto-programmé), et nous avons "solide" - des relais d'état "qui ne comportent pas de pièces mobiles et des" compagnies de téléphone "qui ne passent qu'une petite fraction de leur temps à traiter le son, et des" ordinateurs "qui passent la plupart de leur temps à afficher des images et à jouer de la musique plutôt que, vous savez, calcul des nombres.

davidcary
la source
8

Ils peuvent être un peu pénibles si vous vous trompez avec eux et configurer votre puce pour une utilisation avec un oscillateur externe lorsqu'il utilise un cristal ou un oscillateur interne. Vous constatez ensuite que vous ne pouvez pas programmer votre puce et que vous devez injecter un signal d'horloge dans la broche de l'oscillateur pour le récupérer, en réglant correctement le fusible.

Leon Heller
la source