Professional Documents
Culture Documents
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.
La question des interactions entre les modules et ces timers doit tre traite :
CCPxMode
CCPyMode
Interactions
Capture
Capture
Capture
Compare
Compare
Compare
PWM
PWM
PWM
Capture
PWM
Compare
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 :
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
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 :
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.
05 - Fiche_PIC18_modules CCP.odt
27/02/06
3/6
Lyce Grandmont
STS Systmes Electroniques
Fiche PIC18
05 - Fiche_PIC18_modules CCP.odt
27/02/06
4/6
Lyce Grandmont
STS Systmes Electroniques
Fiche PIC18
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.
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 :
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