Le chien de garde
Transcription
Le chien de garde
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