La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les Fuses par Serge VE2HLS.

Présentations similaires


Présentation au sujet: "Les Fuses par Serge VE2HLS."— Transcription de la présentation:

1 Les Fuses par Serge VE2HLS

2 Nous allons dans ce document essayer de démystifier la section des Fuses que tous utilisent dans l’écriture d’un programme avec un microcontrôleur de modèle PIC!

3 Voici le choix de fuses que Claude VE2APS a utilisé pour son programme
"Horloge Calendrier" XT_OSC,WDT_OFF,MCLR_OFF,PWRT_ON,BOD_ON,LVP_OFF,CPD_OFF,PROTECT_OFF

4 Après avoir compilé le programme "Horloge Calendrier" nous obtenons
plusieurs fichiers dont le fichier HEX "Horloge et calendrier.HEX " 

5 Voici quelques trucs pour mieux comprendre ce fameux fichier " HEX "
Premièrement le fichier HEX est de format INTEL sa définition complète est disponible sur WIKIPIDIA à cette adresse :

6 Il est facile d’ouvrir le fichier HEX avec Bloc-notes

7 La section qui nous intéresse se situe complètement dans la bas
de ce fichier "HEX "

8 Cette ligne représente nos fuses en format
"INTEL«  :02400E00413F30

9 Il faut lire cette ligne en partant de la droite 02400E00413F30 mais en regroupant deux nombres à la fois : E F est le checksum de la ligne 3F41 défini les fuses qui sont utilisées

10 Voici un façon simple de comprendre ce que nous indique 3F41
Ce 3F41 représente en hexadécimale : 3 = 0011 F = 1111 4 = 0100 1 = 0001

11 La séquence 3F41 format Intel représente
en format Hexadécimale

12 est le "Configuration Word" de 14 bits qui sera envoyé au Pic pour lui indiquer le choix des fuses que le programmeur a choisit dans son programme

13 Dans la prochaine positive vous avez toutes les possibilités de configurations pour les fuses du Pic 16F628 choisit par Claude lors de l’écriture de son programme, le tableau est disponible dans le data sheet

14

15 La fuse XT_OSC se sert des Bits 4, 1 et 0
Prenons la première fuse XT_OSC dans la séquence choisit par Claude dans la liste : XT_OSC,WDT_OFF,MCLR_OFF,PWRT_ON,BOD_ON,LVP_OFF,CPD_OFF,PROTECT_OFF La fuse XT_OSC se sert des Bits 4, 1 et 0 dans la séquence bit 4, 1-0: FOSC2:FOSC0: Oscillator Selection bits(4) 111 = ER oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, Resistor on RA7/OSC1/CLKIN 110 = ER oscillator: I/O function on RA6/OSC2/CLKOUT pin, Resistor on RA7/OSC1/CLKIN 101 = INTRC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN 100 = INTRC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN 011 = EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN 010 = HS oscillator: High speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN 001 = XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN 000 = LP oscillator: Low power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN

16 Si on revient à notre "Configuration Word"
nous avons trois bits de trouvés : XT_OSC equ 3FEC0001h ; XX XXXX XXX0 XX01 Par la suite on refait la même séquence pour la fuse suivante : WDT_OFF WDT_OFF equ 3FFB0000h ; XX XXXX XXXX X0XX nous avons maintenant quatre bits de trouvés :

17 Il est par la suite facile de compléter la séquence
pour chacune des autres fuses : MCLR_OFF,PWRT_ON,BOD_ON,LVP_OFF,CPD_OFF,PROTECT_OFF C’est ainsi que nous obtenons notre "Configuration Word" de

18 Voici comment le compilateur PICBASICPRO construit le "Configuration Word" ce fichier se trouve dans votre compilateur PicBasicPro dans le dans le dossier C:\PBP\INC et ouvrez "M16F62XA.INC"

19 ; *** DEVICE Fuses Definitions RC_OSC_CLKOUT equ 3FEC0013h ; XX XXXX XXX1 XX11 ER_OSC_CLKOUT equ 3FEC0013h ; XX XXXX XXX1 XX11 RC_OSC_NOCLKOUT equ 3FEC0012h ; XX XXXX XXX1 XX10 ER_OSC_NOCLKOUT equ 3FEC0012h ; XX XXXX XXX1 XX10 RC_OSC equ 3FEC0012h ; XX XXXX XXX1 XX10 INTRC_OSC_CLKOUT equ FEC0011h ; XX XXXX XXX1 XX01 INTOSC_OSC_CLKOUT equ 3FEC0011h ; XX XXXX XXX1 XX01 INTRC_OSC_NOCLKOUT equ 3FEC0010h ; XX XXXX XXX1 XX00 INTOSC_OSC_NOCLKOUT equ 3FEC0010h ; XX XXXX XXX1 XX00 INTRC_OSC equ 3FEC0010h ; XX XXXX XXX1 XX00 EXTCLK_OSC equ 3FEC0003h ; XX XXXX XXX0 XX11 EC_OSC equ 3FEC0003h ; XX XXXX XXX0 XX11 HS_OSC equ 3FEC0002h ; XX XXXX XXX0 XX10 XT_OSC equ 3FEC0001h ; XX XXXX XXX0 XX01 LP_OSC equ 3FEC0000h ; XX XXXX XXX0 XX00 WDT_ON equ 3FFB0004h ; XX XXXX XXXX X1XX WDT_OFF equ 3FFB0000h ; XX XXXX XXXX X0XX PWRT_ON equ 3FF70000h ; XX XXXX XXXX 0XXX PWRT_OFF equ 3FF70008h ; XX XXXX XXXX 1XXX MCLR_ON equ 3FDF0020h ; XX XXXX XX1X XXXX MCLR_OFF equ 3FDF0000h ; XX XXXX XX0X XXXX BOD_ON equ 3FBF0040h ; XX XXXX X1XX XXXX BOD_OFF equ 3FBF0000h ; XX XXXX X0XX XXXX LVP_ON equ 3F7F0080h ; XX XXXX 1XXX XXXX LVP_OFF equ 3F7F0000h ; XX XXXX 0XXX XXXX CPD_ON equ 3EFF0000h ; XX XXX0 XXXX XXXX CPD_OFF equ 3EFF0100h ; XX XXX1 XXXX XXXX PROTECT_ON equ 1FFF0000h ; 0X XXXX XXXX XXXX PROTECT_OFF equ 1FFF2000h ; 1X XXXX XXXX XXXX

20 Ceci termine l’explication des fuses utilisées pour le programme "Horloge Calendrier" avec le PIC 16F628 Pour les prochains ateliers, nous utiliserons un nouveau PIC, le 16F690, si le programme avait été écrit avec ce PIC, voici les quelques changements aux fuses nécessaires au fonctionnement du programme

21 Premièrement comparons les deux "Configuration Word"
Le 16F628 Le 16F690

22 Le 16F690 possède deux nouvelles fonctions "FCMEN" bit 11 et "IESO" bit 10

23 Fail-Safe Clock Monitor Enabled
FCMEN Fail-Safe Clock Monitor Enabled Le "Fail-Safe Clock Monitor" permet au microcontrôleur 16F690 de continuer l'opération en cas d'un échec externe de l'oscillateur en commutant automatiquement l'horloge du dispositif au bloc interne d'oscillateur Par défaut, le "Fail-Safe Clock Monitor" est désactivé. bit 11 FCMEN: Fail-Safe Clock Monitor Enabled bit 1 = Fail-Safe Clock Monitor is enabled 0 = Fail-Safe Clock Monitor is disabled

24 Internal External Switchover
IESO Internal External Switchover Two speed start-up /Internal External switchover Le mode de démarrage à deux vitesses réduit au minimum la latence entre le démarrage de l’oscillateur et l'exécution externe du code. Le code commence à s'exécuter à partir des oscillateurs internes tandis que l'oscillateur externe se stabilise. Quand l'oscillateur externe est stable, le dispositif commute automatiquement à la source extérieure réduisant les périphériques du programme (program overhead). bit 10 IESO: Internal External Switchover bit 1 = Internal External Switchover mode is enabled 0 = Internal External Switchover mode is disabled

25

26 Claude n’utilise pas ces deux nouvelles fonctions nous allons donc désactiver ces deux fuses!

27 Voici la nouvelle ligne des fuses pour le 16F690 :
XT_OSC,WDT_OFF,MCLR_OFF,PWRT_ON,BOD_ON,CPD_OFF, PROTECT_OFF,IESO_OFF, FCMEN_OFF Note : Le 16F690 ne possède pas la fonction LVP, Low Voltage Programming

28 Après compilation avec le nouveau 16F690 du programme "Horloge Calendrier" nous obtenons dans le fichier HEX les fuses 33C1 en hexadécimale Le "Configuration Word" du 16F690 utilise seulement 12 bits pour programmer le registre 33C1 ou

29 J’espère que ce document vous a aidé à mieux
comprendre la section des Fuses dans un programme! Serge VE2HLS Février 2009


Télécharger ppt "Les Fuses par Serge VE2HLS."

Présentations similaires


Annonces Google