Vous êtes sur la page 1sur 7

CHAPITRE VI GENERATION DES SIGNAUX PWM

1-Introduction
L’application majeure des signaux PWM est la commande de convertisseurs statiques.
Un signal PWM est caractérisé par sa période T et la durée de l’état haut  (duty cycle).

T
t

Figure V-1 : le signal PWM

La valeur moyenne d’un tel signal est : Vmoy=E*/T


La majorité des PIC18F sont munis de périphériques capables de commander des convertisseurs
statiques des plus simples comme les hacheurs séries au plus complexes telle que les onduleurs
triphasés (cas du 18F4431).
Comme tout périphérique, le fonctionnement du module PWM est régi par un certain nombre
de registres qu’il faut configurer.

2-Schéma bloc du module PWM

DRIHMI F. Cours Microcontrôleurs Page 57


Figure V-2 : schéma bloc du module PWM

La période du signal PWM est fixée par le timer2

DRIHMI F. Cours Microcontrôleurs Page 58


3-Fonctionnement
Le registre PR2 contient une image de la période (valeur à calculer, voir formule) ; le
registre TMR2 commence le comptge à partir de zéro ; chaque fois que le comparateur détecte
une coïncidence entre les contenus de TMR2 et PR2, il met à 1 la bascule RS fixant ainsi la
période.

Le duty cycle (ton) est fixé par le contenu des registres CCPRxL et CCPRxH(le premier est
le tampon du second) et des bits <4 :5> (DCxB0 et DCxB1) du registre CCPxCON. Un comparateur
10 bit compare le contenu de CCPRxH et des bits <4 :5> du registre CCPxCON avec le contenu
du timer2 concaténé avec deux bit internes, s’ils sont égaux, le comparateur remet à zéro la
bascule RS.

Duty cycle

Période
t
TMR2 = PR2
TMR2 = PR2

TMR2 = Image
du Duty cycle

L’image du duty cycle est


donnée par CCPRxL et les bits
<4:5> de CCPxCON

TRIS bit

DÉFINIR ENB
S Q
Sortie PWM

R CLR Q

Figure V-5 : fonctionnement du module PWM

L’équation de la période du signal PWM est donnée par :

Tpwm=[(PR2)+1]*4*Tosc*(valeur prédiviseur du TIMER2)

DRIHMI F. Cours Microcontrôleurs Page 59


Avec :

Tpwm : période PWM

(PR2) : valeur à mettre dans le registre PR2

Valeur pré-diviseur du TIMER2 : facteur de pré-division peut être 1, 4 ou 16

Tosc=1/Fosc

L’équation du duty cycle du signal PWM est donnée par :

 = (CCPRxL :CCPxCON<5 :4>)* Tosc*(valeur prédiviseur du TIMER2)

Avec :

 : duty cycle du signal PWM

(CCPRxL :CCPxCON<5 :4>) : contenu à mettre dans le registre CCPRxL et dans les bits 4
et 5 du registre CCPxCON (DCxB0 et DCxB1).

4-Etapes à respecter pour lancer la PWM


Pour lancer la PWM, les étapes suivantes sont à respecter (par ordre):

1. Fixer la période de la PWM en configurant PR2


2. Fixer le duty cycle en configurant CCPRxL et les bits 4 et 5 du registre CCPxCON
3. Configurer la broche CCPx en sortie
4. Configurer la valeur du pré-diviseur du timer 2 et démarrer le timer 2
5. Configurer le module CCPx pour fonctionner en mode PWM, ceci se fait en mettant les
bits 2 et 3 du registre CCPxCON à 1.

DRIHMI F. Cours Microcontrôleurs Page 60


Figure V-6 : le registre CCPxCON

DRIHMI F. Cours Microcontrôleurs Page 61


Figure V-7 : ensemble des registres associés au module CCP

5-Exemple de programme de génération d’un signal PWM


On donne :

Fosc=8Mhz

Fpwm=20Khz

Rapport cyclique 80%

Module à utiliser : CCP1

Détermination de la valeur de PR2 :

Tpwm=[(PR2)+1]*4*Tosc*(valeur prédiviseur du TIMER2)

DRIHMI F. Cours Microcontrôleurs Page 62


On part avec la valeur du pré-diviseur = 1

PR2=(Tpwm/4*Tosc)-1 = (8000000 /4*20000)-1 = 199 .

Détermination des valeurs de CCPRxL, DCxB0 et DCxB1 :

Rapport cyclique =  /Tpwm →  = Tpwm* Rapport cyclique = 0.8/20000 = 0.000040s

 = (CCPRxL :CCPxCON<5 :4>)* Tosc*(valeur prédiviseur du TIMER2)

(valeur prédiviseur du TIMER2)=1

On pose Y= (CCPRxL :CCPxCON<5 :4>)

Y=  /Tosc = 0.000040*8000000 = 320

En binaire Y= 101000000

Ce qui donne CCPR1L=01010000, DC1B0 =0 et DC1B1=0;

#include<xc.h>

main()
{
PR2=199;
CCPR1L=0b01010000;
DC1B0=0;
DC1B1=0;
TRISC2=0;
T2CON=4;
CCP1M2=1;
CCP1M3=1;
While(1)
{}
}

DRIHMI F. Cours Microcontrôleurs Page 63

Vous aimerez peut-être aussi