Le chien de garde

publicité
Le PIC16F84
Exemples
◘
Le chien de garde
Le chien de garde (Watc dog) est un dispositif matériel et logiciel qui permet de se prémunir
contre les plantages accidentels ou le microprocesseur s’arrête ou exécute n’importe quoi. L’idée est
de provoquer un RESET du CPU si le programme de tourne pas normalement. Une solution
matérielle simple peut être assurée par le circuit représenté sur la figure suivante.
Le programme envoie périodiquement une impulsion positive brève sur l’entrée du circuit
(Port X de la figure ) , le transistor T décharge le condensateur C et la tension de sortie est haute ce
qui permet le fonctionnement normal du CPU.La Cte de temps RC doit être supérieure à la durée
entre chaque top. Si le CPU ‘ se plante ‘ les impulsions n’arrivent plus et le condensateur C , via R
se recharge à +5V, la tension de sortie s’annule ce qui provoque un RESET du microprocesseur .
Le PIC16F84 est muni d’un circuit interne qui assure cette fonction sans qu’il soit besoin de
composants extérieurs. Ce système appelé chien de garde (Watch Dog) doit être activé au niveau
des fusibles accessibles seulement à la programmation du circuit. ( Fusible WDT) , il utilise le timer
interne qui par conséquent ne peut plus dans ce cas être utilisé pour une autre tâche. Lorsque le
registre TMR0 atteint 255 un
RESET est appliqué, il faut
+5
donc éviter qu’il atteigne jamais
cette valeur en le mettant à
1M
zéro périodiquement par
le
programme. Cette remise à
MCLR
zéro
est
effectuée
par
10k
Port X
l’instruction
CLRWDT
Reset CPU
.L’intervalle de temps
entre
100nF
100nF
deux RAZ doit être inférieure à
39k
18mS , il est possible de
l’augmenter en mettant en
RC=100mS
œuvre le prédiviseur grâce au
commutateur PSA de STATUS. ( durée choisie par PS2-PS1-PS0 voir tableau dans le chapitre
précédent )
Le WD ne doit jamais être activé (fusible WDT) avant que la mise au point du programme ne
soit achevée.
R
T
C
1
Téléchargement