Vous êtes sur la page 1sur 6

Lyce Grandmont

STS Systmes Electroniques


Fiche PIC18

PIC18 : Modules CCP


Pour les PIC18Fxx2 et/ou PIC18Fxx20
Ces modules sont implments de manire fort similaires sur les deux familles, cependant, quelques
diffrences sont noter.

Introduction
Chaque C est dot de 2 modules CCP (Capture / Compare / PWM). Chaque module est compos d'un
registre 16 bits qui peut faire office de registre de comparaison, de capture ou un registre de PWM de type
matre / esclave .
Pour les PIC18Fxx2 ainsi que pour les PIC18Fxx20 28 broches, ces deux modules sont identiques.
Pour les PIC18Fxx20 40 ou 44 broches, le module CCP1 est un Enhanced CCP module (ECCP), le
fonctionnement spcifique de ce module fait l'objet d'une autre fiche.

Fonctionnement des modules CCP


Chaque module CCP (CCP1 et CCP2) est associ un registre 16 bits CCPRx (x=1 ou x=2), compos de
deux registres 8 bits : CCPxH et CCPxL. Les modules sont configurs travers CCPxCON.
Ces modules utilisent les timers du C :

La question des interactions entre les modules et ces timers doit tre traite :
CCPxMode

CCPyMode

Interactions

Capture

Capture

En utilisant comme bases de temps les timers 1 et 3, chaque module peut


avoir sa propre base de temps.

Capture

Compare

Compare

Compare

PWM

PWM

PWM

Capture

PWM

Compare

La fonctionnalit Special event trigger peut tre utilise.


Le registre remis 0 sera soit TMR1 soit TMR3 en fonction du timer utilis.
Les deux modules PWM doivent avoir la mme frquence de base ainsi que
la mme frquence de mise jour (interruption TMR2).
Aucune interaction.

Le registre CCPxCON

05 - Fiche_PIC18_modules CCP.odt

27/02/06

1/6

Lyce Grandmont
STS Systmes Electroniques
Fiche PIC18

Le mode Capture
Dans ce mode de fonctionnement, la valeur du registre TMR1 (ou TMR3) est copie dans le registre CCPRx
(CCPR1 ou CCPR2) lorsque survient un vnement sur la ligne RC2/CCP1 (ou RC1/CCP2).
L'vnement dclenchant la capture est programmable, il peut tre :

Chaque front descendant

Chaque front montant

Tous les 4 fronts montants

Tous les 16 fronts montants


Le type d'vnement est choisi par l'intermdiaire des bits CCPxM3 CCPxM0 (Registre CCPxCON).
Lorsqu'une capture est effectue, l'interruption CCPxIF est dclenche.
Remarques :

Attention au pige : RC2/CCP1 et RC1/CCP2

Les lignes de capture (RC2/CCP1 et/ou RC1/CCP2) doivent tre configures en entre (TRISC)

Les timers utiliss pour la capture (Timer1 et/ou Timer3) doivent tre configurs en timer ou en
compteur synchrone.

05 - Fiche_PIC18_modules CCP.odt

27/02/06

2/6

Lyce Grandmont
STS Systmes Electroniques
Fiche PIC18

Schma bloc du fonctionnement en mode Capture

Le mode Compare
Dans ce mode, le registre 16 bits CCPRx est compar en permanence au contenu du registre de comptage
du timer 1 ou du timer 3 (TMR1 ou TMR3). Lorsque les deux valeurs sont identiques, une action
programme se produit sur la ligne CCPx, cette action peut tre :

Une mise l'tat haut

Une mise l'tat bas

Inverse

Une recopie de la valeur prsente sur le bit registre de sortie LATCx correspondant (aucun
changement).
Dans tous les cas, l'interruption CCPxIF est gnre.
L'action est programme l'aide des bits CCPxM3 CCPxM0 du registre CCPxCON.
Remarque :
Pour que ce mode soit fonctionnel, il est ncessaire que les lignes utilise soient configures comme des
sorties l'aide du registre TRIS correspondant.

Utilisation du Special event trigger


Le mode compare peut tre configur pour gnrer l'action special event trigger . Il s'agit d'un signal
interne gnr par le mode compare pour dclencher des actions au niveau d'autres modules.
Cet vnement est activ en donnant aux bits CCPxM[3..0] les valeurs 1011.
Le trigger dclenche la remise 0 du timer associ au module et peut dclencher une conversion
analogique numrique (CCP2).

05 - Fiche_PIC18_modules CCP.odt

27/02/06

3/6

Lyce Grandmont
STS Systmes Electroniques
Fiche PIC18

Schma bloc du mode compare

05 - Fiche_PIC18_modules CCP.odt

27/02/06

4/6

Lyce Grandmont
STS Systmes Electroniques
Fiche PIC18

Mode PWM : Pulse Width Modulation


Dans ce mode, la ligne CCPx gnre une sortie PWM de rsolution 8 ou 10 bits. La ligne correspondante
doit tre configure comme une sortie.
Le schma bloc simplifi de ce mode est le suivant :

Une sortie PWM est dfinie par une une frquence (ou
une priode) de base et par le temps l'tat haut.
Le rapport entre le temps haut et la priode est appel
rapport cyclique (duty cycle).

Le rapport cyclique de la PWM est configur grce au registre CCPRxL pour une PWM 8 bits. Il est possible
d'tendre la rsolution de la modulation 10 bits en ajoutant les bits CCPxCON[5..4].
Dans ce cas, le registre CCPRxL contient les 8 bits de poids fort et les deux bits de CCPxCON sont
considrs comme des dcimales binaires.

Configurer le mode PWM


V

Il s'agit de gnrer un signal dont le rapport cyclique (th / tc) est configurable par logiciel.

th

t
tc = T
Pour gnrer un signal en PWM, il faut programmer deux valeurs : tc et th.
Le timer TMR2 permet de fixer tc (le temps de cycle, la priode du signal). Le registre PR2 recevra la valeur
permettant d'obtenir ce temps (en tenant compte de la prdivision si ncessaire, par contre, le postdiviseur
n'est pas utilis en mode PWM). Le front montant sur CCPx se produit lorsque TMR2 passe de PR2 0x00.
Les relations entre PR2 et tc sont :

tc= PR214 T oscPrdiv

05 - Fiche_PIC18_modules CCP.odt

27/02/06

PR2=

tc
1
Prediv 4 T osc

5/6

Lyce Grandmont
STS Systmes Electroniques
Fiche PIC18
Reste dterminer le moment o le signal CCPx passera 0. Cela se produira lorsque TMR2 sera gal la
valeur COMPAR. Cette valeur est code sur 10 bits : 8 bits plus 2 dcimales binaires (b7b6...b0,b-1b-2). La
prsence de ces deux dcimales permet d'augmenter la prcision de la PWM.
La valeur COMPAR est stocke dans le registre CCPRxL pour sa partie entire et dans les deux bits DcxB1
et DCxB0 de CCPxCON.
Les relations entre th et COMPAR sont les suivantes :

COMPAR=

th=COMPARPredivT osc

th
Prediv T osc

Si COMPAR est entier, DCBx1,0 = 00. Si la partie fractionnaire se rapproche de , DCBx1,0 = 01.
Pour , on aura DCBx1,0 = 10. Enfin pour , DCBx1,0 = 11. La partie entire de COMPAR est stocker
dans CCPRxL.
Synthse de la procdure pour mettre en oeuvre un module PWM
1. Initialiser PR2 en fonction de la dure du cycle tc.
2. Configurer CCPxCON pour un fonctionnement en PWM
3. Configurer la ligne CCPx en sortie (TRISC)
4. Calculer la la valeur COMPAR, charger le registre CCPRxL et les deux bits DCxB1 et DCxB0
5. Configuration du prdiviseur pour TMR2 et lancement du comptage (TMR2ON)

05 - Fiche_PIC18_modules CCP.odt

27/02/06

6/6