Les bits de configuration sont des bits spéciaux qui peuvent être modifiés uniquement au moment de la programmation du microcontrôleur. Ces bits lus au moment du « reset », permettent d’activer ou de désactiver certaines fonctions du composant.

 

Rôles des bits de configuration

Ces bits permettent de gérer:

  • La source d’horloge ;
  • Le Timer du « Chien de garde » (Watchdog Timer) ;
  • Le Timer de mise sous tension (Power-up Timer) ;
  • La réinitialisation du microcontrôleur (Brown-out Reset) ;
  • Le mode programmation en basse tension (Low Voltage Programming) ;
  • La protection des données en EEPROM ;
  • L’écriture en mémoire Flash ;
  • La protection du code en mémoire Flash.

 

Sélection de la source d’horloge : FOSC

L’oscillateur produit une onde périodique sinusoïdale ou carrée ; il permet de convertir un signal continu issu de la tension d’alimentation du microcontrôleur en un signal alternatif, dont les fréquences dépendent du cristal du quartz qui le constitue.

Pour le PIC16F877, on distingue 4 modes de fonctionnement :

  • Le mode LP : Low Fréquency (Power) Crystal ;
  • Le mode XT : Crystal/Resonator ;
  • Le mode HS : High speed Crystal/Resonator ;
  • Le mode RC: External Resistor/Capacitor.

Les modes LP, XT et HS utilisent des quartzs à cristal ou à résonateur externes, connectés directement au microcontrôleur sur des broches prévues à cet effet.

Tandis que le mode RC utilise une résistance et un condensateur comme source d’horloge.

Chacun de ces modes est optimisé pour une certaine gamme de fréquences.

Mode LP

Ce mode est caractérisé par :

  • Un faible gain sélectionné sur l’amplificateur interne ;
  • La consommation en courant la plus faible parmi les quatre modes;
  • Un cristal de 32,768 kHz.

Mode XT : caractérisé par :

  • Un gain intermédiaire sélectionné sur l’amplificateur interne ;
  • Une fréquence du quartz pouvant atteindre 4 MHz.

Mode HS : caractérisé par :

  • Un gain élevé sélectionné sur l’amplificateur interne ;
  • Une fréquence du quartz dont la valeur est comprise entre 4 MHz et 20MHz.

Par exemple si on dispose d’un quartz de 8 MHz, ce sera le mode HS qui sera choisi pour être configuré.

 

Watchdog Timer ou « chien de garde » électronique : WDTE

Dans certaines situations le microcontrôleur présente des problèmes de dysfonctionnement, bien souvent il arrive alors qu’on appui sur le bouton du reset. Mais on ne peut pas toujours le faire à chaque fois qu’une telle situation se produit. Le Watchdog Timer est un Timer interne au microcontrôleur qui permet de détecter ce genre de problème, par exemple lorsqu’une instruction met du à s’exécuter; une impulsion interne est alors produite pour redémarrer le microcontrôleur.

 

Timer de mise sous tension ou Power-Up Timer : PWRTE

A la mise sous tension, un démarrage beaucoup trop rapide du microcontrôleur, peut entraîner des dysfonctionnements. Il est donc intéressant de fixer une certaine durée d’attente avant que le microcontrôleur ne démarre. C’est le rôle de ce Timer.

On s’assure ainsi que la tension d’alimentation est stable avant le démarrage de l’horloge.

 

Réinitialisation ou Brown-Out Reset : BOREN

Cette situation peut se produire lorsque la tension d’alimentation est en dessous d’un certain seuil, cette situation peut entraîner l’écriture des données erronées dans la mémoire RAM.

Si on désire réinitialiser le microcontrôleur lorsqu’une telle situation se produit, le bit BOR doit être activé.

 

Mode programmation en basse tension ou Low Voltage Programming (LVP)

Le microcontrôleur offre la possibilité d’être programmé directement dans la carte de circuit imprimé sur laquelle il est implanté, par la liaison série (C’est le mode de programmation ICSP In Circuit Serial Programming). La tension requise pour programmer le composant sera alors comprise entre 4,5 Volts et 5,5 Volts. Lorsque le bit correspondant à ce mode est actif, la broche RB3/PGM, est utilisée pour programmer le composant.

 

Protection des données en EEPROM

Le PIC 16F877 possède une mémoire EEPROM (Electrical Erasable Programmable Read Only Memory). Deux bits CPD et WRTD, assurent la protection des données contenues dans cette mémoire.

Le bit CPD protège l’accès de la zone mémoire en lecture et écriture externe.

 

Ecriture en mémoire Flash

Ce bit valide l’écriture en mémoire Flash, permettant ainsi au « microcode » (ou firmware) de la carte d’écrire des données en mémoire Flash. Le bit WRT sera utilisé pour accomplir cette tâche.

 

Mode protection de donnée en mémoire Flash

Si le programme est stocké en mémoire Flash, celle-ci peut être protégée par le bit CP.

 

Procédure d’activation des bits de configuration du PIC16F877, dans MPLAB X :

Pour activer ces bits, le projet est ouvert; cliquer sur le menu Production, puis sur Set Configuration Bits :

 

configurationbitpic16f877 1

 

Sélectionner les bits correspondants au mode de configuration souhaitée :

 

configurationbitpic16f877 2

 

Puis cliquer sur Generate Source Code to Output, pour obtenir un code qu’on peut insérer dans le fichier source du programme rattaché au projet.