Étape 6: Pour résumer.
L’étape précédente peut sembler déroutant et désordonnés, mais cette étape donnera une image claire de l’ensemble du processus.Donc ce qui en fait voulons-nous faire ?
Nous avons un microcontrôleur (ici Atmega 8). Il fonctionne sur la fréquence par défaut, avec qu'il a été livré. Nous voulons faire fonctionner sur crystal externe 16Mhz.
Alors que faire exactement ? Seulement voir et modifier les valeurs de bit de fusible. Nous ne devons également pas oublier que 1 signifie non programmées et 0 signifie programmé.
Maintenant, la puce est assis avec sa configuration par défaut d’octet fusible.
Tout d’abord nous devons décider, comment faire fonctionner le microcontrôleur ? Pour plus de simplicité, permet de tirer que nous n’avons que trois options externes crystal, résonateur externe ou oscillateur interne.
Nous avons découvert que le cristal oscillateur est un SOURCEet de maintien de temps fiable nous ne me dérange un peu les dépenses pour les deux condensateurs de 22pf. Notre choix est désormais clair, nous voulons lancer la puce avr avec un cristal externe.
Mais où trouver les options pour faire le choix de l’oscillateur à quartz externe ?
Les options sont disponibles à CKSEL3 à CKSEL0 dans l’octet bas fusible.
Nous leva les yeux le tableau fourni dans la fiche technique du micro-contrôleur et découvert qu’il y a un résonateur cermaic appelé option ou oscillateur de crytal. Nous voulons certainement cela, si nous notons les valeurs de bit de CKSEL3-CKSEL0 qui lui sont associés.
Hmm, mais il y a une plage de valeurs pour cela, 1111-1010. Celle à prendre spécifiquement ? Et comment spécifier la fréquence de l’oscillateur à quartz ? Évidemment, il y a beaucoup de fréquences disponibles pour les cristaux, nous voulons faire fonctionner uniquement sur 16Mhz.
Pour ce faire, nous regardons vers le haut une autre table, contenant la fréquence et la plage recommandée de condensateurs à utiliser avec eux.
Dans ce tableau, nous constatons que 16Mhz est plus grande que 1 Mhz si l'on choisit cette option. La valeur de bit qui a été associée à la CKOPT pour notre choix est 0 et parallèlement à cela, nous avons choisi 111 pour les valeurs de CKSEL3-CKSEL1.
Maintenant, nous sommes certains que nous avons pris la puce avr avec un externe crytal de 16Mhz.
Il suffit de nous lire un instructable sur fuse bits et il a parlé de certaines choses de temps qui le crytal a besoin de se réchauffer et de commencer à donner des signaux relaible de démarrage.
Comment trouvons-nous il ?
Nous retrouver dans un tableau fourni dans les mêmes instructable. Maintenant, cette table contient les valeurs CKSEL0 et SUT1 et SUT0. Nous choisissons l’option de démarrage de temps de 65 millisecondes et nos valeurs de bit correspondant sont donc CKSEL0-, SUT1 - 1, 1 SUT0 - 1.
Ainsi, nous avons complété avec succès choisir l’ensemble des fusibles basse octets.
Au départ était le paramètre octets de fusible haute-
RSTDISBL-7) 1
6) WDTON - 1
SPIEN 5)-0
4) CKOPT -1
3) EESAVE -1
2) BOOTSZ1-0
1) BOOTSZ0-0
0) BOOTRST -1
Maintenant, nous devons changer leur-
7) RSTDISBL -1
6) WDTON -1
SPIEN 5)-0
4) CKOPT-0
3) EESAVE -1
2) BOOTSZ1-0
1) BOOTSZ0-0
0) BOOTRST -1
Voilà 11001001 en binaire ou C9 en hexadécimal. Nous changeons seulement de la CKOPT de 1 à 0, laissant tous les autres intactes.
Maintenant pour l’octet bas fusible, initialement, il était-
7) BODLEVEL -1
6) BODEN -1
5) SUT1 -1
4) SUT0-0
3) CKSEL3-0
2) CKSEL2-0
1) CKSEL1-0
0) CKSEL0 -1
Nous changeons de-
7) BODLEVEL -1
6) BODEN -1
5) SUT1 -1
4) SUT0 -1
3) CKSEL3 -1
2) CKSEL2 -1
1) CKSEL1 -1
0) CKSEL0 -1
Voilà 11111111 en binaire ou FF en hexadécimal.
Maintenant puisque nous sommes fait faire evrything, nous avons juste besoin de graver ces nouveaux paramètres dans le microcontrôleur.
À l’aide de la syntaxe avrdude, il devrait être-
avrdude - ch. usbasp -p m8 - U lfuse:w:0b11111111:m - U hfuse:w:0b11001001:m
Mais il est préférable d’écrire cela en hexadécimal, comme-
avrdude - ch. usbasp -p m8 - U lfuse:w:0xff:m - U hfuse:w:0xC9:m
Les valeurs par défaut pour Atmega8 interne oscillateur 1Mhz a été-
avrdude -p atmega8 - ch. usbasp - U lfuse:w:0xE1:m - U hfuse:w:0xD9:m
Enfin, la procédure totale se termine ici. Bien que cela n’explique pas complètement sur les fusibles et comment les programmer, cela donne certainement une idée approximative pour débutants sur ce que sont les fusibles et comment ils doivent être traités.
BRICOLAGE-ment heureux:)