Vous êtes sur la page 1sur 43

Micro-contrleurs PIC : MC-II3

Le module de gnration de
signaux MLI (PWM)

Prsentation

Un signal MLI (Modulation de Largeur


d'Impulsions) ou PWM en anglais (Pulse
Width Modulation) est un signal dont le
rapport cyclique varie.

Prsentation

En gnral, les applications les plus courantes


travaillent frquence fixe :

Alimentation dcoupage, variateur de vitesse


et d'une manire gnrale un grand nombre
de dispositifs d'lectronique de puissance.

Prsentation

Autre application : conversion numrique


analogique

Cest une manire simple et efficace de


gnrer une tension analogique avec un
microcontrleur. Peu dentre eux sont en
effet quips dun convertisseur numrique
analogique.

Prsentation

Le principe est de gnrer un signal logique (valant 0


ou 1), frquence fixe mais dont le rapport cyclique
est contrl numriquement. La moyenne du signal
de sortie est gale au rapport cyclique : il suffit donc
de mettre un filtre pour obtenir la valeur analogique
recherche.

Prsentation

Les niveaux de tensions gnrs par le microcontrleur sont celles de son alimentation (en
gnral 0 ~ 5V), mais la frquence et le
rapport cycliques sont configurables/variables.

Ressources matriels

Que faut-il utiliser pour gnrer un tel signal ?

Le micro-contrleur PIC 18F4520 dispose de


deux modules appels CCP1 et CCP2
CCP : Capture/Compare/PWM
En fonction de son mode d'utilisation, le
module CCP1 ou CCP2 utilise le Timer 1, 2
ou 3

Un module CCP est forcment li un Timer

Principe de fonctionnement

La gnration d'un signal MLI se fait en deux


temps :

On utilise un compteur qui fixe la frquence du


signal gnrer.
On compare en permanence la valeur du
compteur une valeur fixe qui permet de
dfinir le rapport cyclique

Principe de fonctionnement

Lorsque le compteur est


infrieur la valeur
fixe, la sortie est 1

Lorsque le compteur
est suprieur la valeur
fixe, la sortie est 0.

Principe de fonctionnement

La documentation constructeur nous donne,


page 140 :

Pour gnrer un signal PWM, il faudra donc


utiliser le Timer 2.

C'est donc ce compteur qui fixera la frquence


du signal.

Principe de fonctionnement

La valeur de comparaison, qui permet de


configurer le rapport cyclique, est fixe dans
un registre du module CCP1 (ou CCP2).
C'est donc ce registre qui est compar en
permanence au registre de comptage du
Timer 2.

Possibilits des modules CCP1/2

Le table 15-4 nous donne les caractristiques


des signaux susceptible dtre gnrs avec
un micro-contrleur PIC cadenc 40MHz :

On peut par exemple gnrer un signal carr


39 kHz avec 1024 valeurs diffrentes de
rapport cyclique.

Configuration des modules CCP

Comme nous l'avons vu prcdemment, nous


pouvons dcomposer le problme en deux
parties distinctes :

Configuration de la frquence de la MLI

Configuration du rapport cyclique

Cette tache est assure par le Timer 2


Cette tache est assure par le module CCP

Les signaux gnrs seront sortis sur les


broches RC1(pour le module CCP2) et RC2
(pour le module CCP1) du micro-contrleur PIC.

Configuration des modules CCP

Si les deux modules CCP (CCP1 et CCP2)


sont utiliss en mme temps pour gnrer
deux signaux PWM, ceux-ci auront la mme
frquence.

C'est normal car chacun d'eux doit utiliser le


Timer 2 pour configurer la frquence ...

Fonctionnement

Timer 2 : rappels

Le dbut de comptage est obligatoirement 0 et


la fin de comptage est la valeur entrer dans
le registre PR2 (valeur dfinie).

Timer 2 : rappels
C'est un compteur 8 bits appel TMR2
Un pr-compteur fixe (diviseur par 4)
Un pr-compteur variable (diviseur
par 1, 4 ou 16)
Le registre TMR2 sincrmente
chaque front dhorloge de la sortie
du prescaler jusqu ce quil soit gal
au contenu du registre PR2.

Dans le mode de fonctionnement PWM,


nous nutiliserons pas le post-diviseur

Ds que la valeur de TMR2 atteint PR2,


TMR2 repasse 0
et recommence sincrmenter

Timer 2 : rappels

Formule permettant de calculer le temps de


comptage :

T =T quartz Valeur du pr-compteur fixe Valeur du pr-compteur rglable (Valeur dfinie + 1)

Cette formule est similaire celle donne


dans la documentation (page 144) :

Timer 2 : rappels

Il n'y a que 2 registres configurer :

T2CON

et PR2

Exemple

On dsire crer un signal 400Hz.

Il faut donc crer une temporisation avec le


Timer 2 de 2,5ms ( T = 1 / F = 1 / 400).
Avec la formule ci-dessous :

T = T quartz Valeur du pr-compteur fixe Valeur du pr-compteur rglable (Valeur dfinie + 1)

Plusieurs possibilits soffrent nous :

Nous prendrons celle laissant le plus de choix


possible pour le rapport cyclique.
Pour cela nous allons prendre pour PR2 la
valeur la plus grande possible.
Soit un prcompteur de 16, et une valeur de
PR2 de 156.

Le module CCP

La configuration du Timer 2 nous permet


simplement de dfinir la frquence du signal
gnr.
Le module CCP1 ou CCP2 va nous permettre
de gnrer un signal MLI en agissant sur le
rapport cyclique.
Les modules CCP1 et CCP2 sont identiques,
un dtail prs que l'on verra plus tard ...

Le module CCP

Registre de configuration CCP1CON ou CCP2CON

Le module CCP

Registre de configuration CCP1CON ou CCP2CON

1re tape : configurer le module CCP pour


qu'il gnre un signal PWM
C'est le rle des bits CCPxM<3:0>

CCP1M<3:0> pour CCP1CON

CCP2M<3:0> pour CCP2CON

Le module CCP

Registre de configuration CCP1CON ou CCP2CON

Il reste 2 bits configurer dans ce registre

que l'on verra tout l'heure ...

Le module CCP

Principe de fonctionnement (module CCP1)

Le Timer2 compte les impulsions


provenant de lhorloge du PIC
(horloge prdivise par les diffrents
pr-compteurs du Timer2)
Le registre TMR2 est compare :

PR2, ce qui permet de


configurer la frquence
CCPR1H, ce qui permet de
configurer le rapport cyclique

Ces 2 comparateurs sont connects


sur les entres 'R' et 'S' d'une bascule
RS, dont la sortie est connecte sur la
broches RC2 (ou RC1 pour CCP2)

Le module CCP

Principe de fonctionnement (module CCP1)

Lorsque le registre TMR2 est gal la valeur


place dans PR2 trois actions se produisent :

Le compteur TMR2 est remis 0


Lentre S de la bascule RS est active
plaant la sortie Q de celle-ci 1
La valeur place dans CCPR1L est affecte
CCPR1H

Le compteur continu compter les impulsions


provenant de lhorloge du micro-contrleur PIC.

Le module CCP

Principe de fonctionnement (module CCP1)

Lorsque le registre TMR2 est gal la valeur


place dans le registre CCPR1H, lentre R de
la bascule RS est active plaant la sortie Q de
celle-ci '0'.
Remarque importante : Lorsque la valeur dans
le registre CCPR1H est plus grande que la
valeur max du Timer2, la sortie du module CCP
reste '1'.
Le signal de sortie sera remis '1', lorsque le
registre TMR2 sera gal PR2.

Le module CCP

Principe de fonctionnement (module CCP1)

Cette dernire partie du schma nous prcise


quil faut absolument affecter la broche RC2 en
sortie pour pouvoir disposer du signal PWM en
sortie du PIC .

Les diffrents registres associs

Les diffrents registres associs

Les registres INTCON, PIR1, PIE1, IPR1 sont utiliss pour


grer le Timer2 et le module CCP en interruption.
Le registre TRISC est utilis pour placer la ligne RC2 et RC1
en sortie pour visualiser les signaux provenant respectivement
du module CCP1 ET CCP2 .
Les trois registres TMR2, PR2, T2CON sont lis au timer2.
Il ny a donc que trois registres configurer/utiliser pour
chacun des modules CCP :

CCPR1L, CCPR1H et CCP1CON pour le module CCP1

CCPR2L, CCPR2H et CCP2CON pour le module CCP2

Prcision du rapport cyclique

Le Timer 2 est un compteur 8 bits


Les registres CCPR1H et CCPR1L sont galement
des registres sur 8 bits
Nous devrions donc avoir un signal PWM avec une
prcision sur 8 bits pour le rapport cyclique.
Or, le constructeur nous annonce (premire page de
la documentation) une PWM avec une prcision sur
10 bits :

Prcision du rapport cyclique

Le tableau ci-dessous nous donne des exemples :

Plus la frquence gnre est leve, moins la


prcision sur le rapport cyclique est importante.

Prcision du rapport cyclique

Revenons sur la figure 8.3 et faisons attention


maintenant aux parties encadres :

Prcision du rapport cyclique

Le registre CCPR1L fixant le rapport cyclique est sur


8 bits et peut tre complt avec les bits 4 et 5 du
registre CCP1CON pour former un mot de 10 bits.

Ce mot de 10 bits est compar au registre TMR2


complt par les deux bits les plus significatifs du
prescaler.

Exemple de programme

But du programme : Gnrer un signal carr


400Hz sur la sortie du module CCP1.
Void main (void)
{
// configuration de la ligne RC2 en sortie
TRISC.2 = 0;
// configuration du Timer2 (priode de 2.5ms)
PR2 = 156;
T2CON=0x07; // prescaler de 16
// configuration du module CCP
CCP1CON = 0x0C; // mode PWM
CCPR1H = PR2 / 2; // rapport cyclique 50%
}

while (1);

Gnration de son

Notes de musique

Nous allons expliquer succinctement quelques


notions de musique, mais pour de plus amples
informations vous pouvez consulter le site :
www.theoriedelamusique.com/notes.html

Les notes de musiques se dessinent sur une


porte compose de 5 lignes parallles :

Gnration de son

Au dbut de la porte se trouve la cl.


En gnral on utilise la cl de sol mais il existe aussi la cl de
FA, de DO ou d'UT

Le commun des mortels connait les sept notes: DO, RE, MI,
FA, SOL, LA, SI.
Leurs reprsentation
sur la partition est:
DO

RE

MI

FA

SOL

LA

SI

DO

Gnration de son

Les 12 notes :
En fait il existe douze notes. En effet, il existe des demi-tons
appels dise ou bmol suivant quils lvent ou abaissent la
note. Ces douze notes forment une octave.
Ces douze notes sont facilement visualisables sur un piano.
Les touches noires sont les dises.

Gnration de son

La note de rfrence:
Les musiciens, pour accorder leurs appareils de musiques,
utilisent gnralement un diapason. Cet appareil gnre un
son parfait correspondant un 'la' de la 4me octave.
Un son parfait = signal sinusodal 440 Hz

Les octaves : Nous avons tous remarqu qu'il n'y a pas que
ces douze touches sur un clavier mais beaucoup plus. Il y a
en effet beaucoup d'octaves. Notre oreille entend 10 octaves
de 16Hz 16kHz.

Gnration de son

Les frquences des notes d'une octave :


On prend le 'la' de rfrence en on multiplie
par un coefficient :
X/12
F note = LA * ( 2 )

O X reprsente la place de la note dsire par rapport au LA.


notes

La

La
#

Si

Do

Do
#

Re
#

mi

fa

Fa
#

sol

Sol
#

la

position

10

11

12

Frquence
Hz

440

Constations: Pour passer d'une octave la suivante on multiplie par 2.

880

Gnration de son

Gnration de son

La dure d'une note :


Nous avons tous en mmoire qu'il existe des
rondes, des blanches, des noires, des
croches, des doubles croches, des triples
croches et des quadruples croches.
La dure de chacune des notes est lie au
temps donn la ronde.

rondes blanches noires croches


T

T/2

T/4

T/8

doubles
croches

triples
croches

quadruples
croches

T/16

T/32

T/64

Gnration de son

La dure d'une note :

Le tempo de la mlodie peut augmenter ou


diminuer le temps T.