PROGRAMMATION DES FUSIBLES SOUS WINPIC

CAS DU PIC16F628A


Une mauvaise programmation du registre de configuration (appelé fusibles dans WinPic) est la principale cause de non fonctionnement des systèmes à base de microcontrôleur PIC. Ces quelques lignes détaillent les principaux paramètres à configurer lors de la programmation d'un microcontrôleur PIC16F628A.

CONFIGURATION DE L'OSCILLATEUR

Le déroulement du programme est cadencé par une horloge qui est gérée par un oscillateur interne ou externe. Le 16F628A offre plusieurs possibilités pour cet oscillateur.

Oscillateur à quartz (ou résonateur céramique):

LP (Low Power) à utiliser avec un quartz basse fréquence (faible consommation)
XT pour quartz moyenne fréquence (4MHz par exemple)
HS (High Speed) pour quartz haute fréquence (8 à 20 MHz)

Oscillateur externe (EC): Cocher la case ExtClk. Utile pour synchroniser plusieurs circuits.

Oscillateur interne RC (INTOSC):

La fréquence de l'oscillateur est définie par un circuit RC interne (environ 4MHz).

L'option INTRC IO permet de libérer les pattes clkin et clkout qui deviennent ainsi des entrées/sorties utilisables (RA7 & RA6).
L'option
INTRC CLKOUT permet de disposer sur la patte Clkout d'un signal à la fréquence de l'horloge divisée par 4.

Oscillateur RC

La fréquence est fixée par un circuit RC externe connecté à la broche clkin.

L'option RC IO permet de libérer la broche clkout qui devient une entrée/sortie utilisable (RA6)
L'option
RC CLKOUT permet de disposer sur la patte Clkout d'un signal à la fréquence de l'horloge divisée par 4.


PROTECTION DU CODE (CP)

Il est possible de rendre le code illisible et donc de rendre la duplication impossible. Cette pratique n'est pas justifiée dans le domaine amateur et j'y suis totalement opposé, donc laisser toujours CP sur off.

De même, il est possible de protéger la zone des données (EEPROM) en cochant la case CPD, ce qui est sans intérêt.


INITIALISATION

Lors de la mise sous tension du circuit, le fonctionnement du PIC est initialisé (Reset) tant que la tension d'alimentation Vdd (5V en général) n'a pas atteint une valeur de l'ordre de 1,2 à 1,7V. C'est le POWER ON RESET (POR).

La vitesse d'établissement de la tension d'alimentation Vdd est très variable d'un circuit à l'autre, elle dépend notamment de la capacité des condensateurs de filtrage.

Il est impératif de ne pas débuter le déroulement du programme tant que la tension d'alimentation n'est pas parfaitement établie.

On peut s'assurer de ceci de deux manières:

1- En activant le Power-up Timer (PWRT) ce qui s'effectue en cochant la case PWRTE (PWRTEnable) dans WinPic. Dans ce cas, le Reset est prolongé de 72ms après la fin du Power On Reset.

2- En activant l'entrée de reset extérieur MCLR ce qui s'effectue en cochant la case MCLRE de WinPic. Cette entrée (pin 4 du 16F628A) est reliée à un trigger qui déclenche à 0,8Vdd (4V pour Vdd=5V). On relie extérieurement cette entrée soit directement au Vdd soit préférentiellement à un circuit RC (par exemple 10k-100nF) qui assure un petit délai supplémentaire.

SURVEILLANCE DE LA TENSION D'ALIMENTATION

Si la tension d'alimentation Vdd=5V tombe au dessous de Vbor=4V pendant un temps supérieur à 100µs, le circuit est réinitialisé si on a activé la case BOREN (Brown out reset enable). Utile en cas d'alimentation parasitée ou de système déporté (balise, relais,...).

CHIEN DE GARDE (watch dog)

Le chien de garde est un dispositif indépendant chargé de vérifier le bon déroulement d'un programme. En cas de plantage, le chien de garde peut déclencher une réinitialisation du microcontrôleur si l'on a activé l'option WDTE (Watch Dog Timer Enable). Dans ce cas, le temps pendant lequel le circuit est réinitialisé est de 18 ms (valeur par défaut, programmable jusqu'à plus de 2s).


PROGRAMMATION IN SITU

Lorsque le pic est programmé sur place (c'est à dire dans son environnement et pas avec un programmateur classique) et uniquement dans ce cas, il faut activer l'option LVP (Low Voltage Programming).


73 de Joël F6CSX

Dernière mise à jour le 6 janvier 2011