Vous êtes sur la page 1sur 17

Chapitre 7 : les Timers

OBJECTIF : gérer le temps de façon précise. Aussi bien


pour mesurer un signal extérieur au µC que pour
élaborer des signaux.
Généralités

Un Timer est un périphérique spécialisé dans la gestion du temps. On peut


le voir comme un simple compteur de temps. Rappelez-vous le module
SIN1 !

Que compte-t-il ?

Le nombre de front d’une horloge

Fréquence de l’horloge connue !

Compte de 0 à Nmax puis revient à 0

2 IUT de TOURS GEII INFO2 17/11/2021


Schéma bloc interne d’un Timer


Clock : horloge de référence de fréquence connue

Prescaler : diviseur de fréquence pour ajuster la fréquence d’horloge du
compteur

Counter : compteur 8 ou 16 bits en général

Overflow : signal indiquant la valeur max du compteur atteinte


Valeur max de comptage configurable

Tout est paramétrable par du code C !

3 IUT de TOURS GEII INFO2 17/11/2021


Applications typiques des Timers

3 applications typiques :


Mesures temporelles d’un signal


Générateur de signaux PWM (MLI en français)


Temporisation précise de courte ou longue durée

4 IUT de TOURS GEII INFO2 17/11/2021


Mode capture (mesure temporelle)

Une fonction intéressante d'un Timer est de pouvoir mesurer les


caractéristiques temporelles (période, rapport cyclique, nombre
d’occurrence) d'un signal présent sur son entrée de capture. En général,
cette broche est nommée ICP (Input Capture Pin) sur les symboles des
microcontrôleurs.

Comment ?
→ Il suffit de compter les périodes d’un signal connu !

(TD de SIN1 sur le capteur de distance à ultrason ou sur le capteur de


vitesse...)

5 IUT de TOURS GEII INFO2 17/11/2021


Mode capture (mesure temporelle)

→ Horloge connu ici sur clock


→ signal période inconnue sur la GPIO Pin_5

Si mesure de période :
- on compte entre 2 fronts montants du signal d’entrée, le nombre de
période de l’horloge de référence.
Si mesure du temps à l’état haut :
- on compte entre 2 fronts du signal d’entrée, le nombre de période de
l’horloge de référence.

6 IUT de TOURS GEII INFO2 17/11/2021


Mode capture : exemple sur le TCS230

→ capteur de lumière (bande spectrale réglable par les entrées S2 et S3)


→ fréquence du signal de sortie du capteur = f (intensité lumineuse
mesurée)
→ il faut donc mesurer la période du signal logique de sortie !
=> utilisation du mode capture d’un Timer

7 IUT de TOURS GEII INFO2 17/11/2021


Mode MLI (Modulation Largeur Impulsion)

Une application typique (très utilisée dans la commande des moteurs


électriques, LED de puissance, diode laser, etc...) est la génération de
signaux carré à rapport cyclique variable (PWM en anglais).

Effectuons quelques rappels sur la valeur moyenne d’un signal carré...

8 IUT de TOURS GEII INFO2 17/11/2021


Rappel sur la valeur moyenne

Vmoy = f (rapport cyclique)


d’où Vmoy = α.Vcc

Rappel SIN1 :
→ MCC : Vitesse=f(Ualim)
- Si TMLI << cste de temps du moteur
alors Vitesse = f(Vmoy) donc
de α !!
(Moteur = Filtre P.Bas)

9 IUT de TOURS GEII INFO2 17/11/2021


Principe de la MLI Compteur
8 bits du Timer Seuils de
comparaison

Signaux
PWM
Générateur PWM à 2 sorties dans cet exemple

On fait varier le rapport cyclique des signaux PWM en ajustant


la valeur des seuils de comparaison par du code C

10 IUT de TOURS GEII INFO2 17/11/2021


Principe de la MLI

En modifiant par programmation, la valeur du seuil de comparaison, on va


pouvoir modifier la largeur de l'impulsion.

La période du signal PWM est fonction de la période de l'horloge du Timer


et du nombre d'états du compteur (256 pour un compteur 8 bits comme sur
la figure).

11 IUT de TOURS GEII INFO2 17/11/2021


Configuration du Timer en mode PWM

Choix de la résolution
du compteur

Nombre
de sorties PWM

Période PWM

Valeur initiale du
rapport cyclique

Choix PWM
inversée

12 IUT de TOURS GEII INFO2 17/11/2021


PSoC : Bloc graphique et fonctions C

PWM_1_Start() Validation du Timer

Réglage seuil 1 de
PWM_1_WriteCompare1() comparaison

Réglage seuil 2 de
PWM_1_WriteCompare2() comparaison

Réglage période signal


PWM_1_WritePeriod() PWM

En ajustant, le rapport cyclique ET la période du signal PWM, on peut créer du son !

13 IUT de TOURS GEII INFO2 17/11/2021


Timer en mode Temporisation
Lorsque le Timer est utilisé dans ce mode, son fonctionnement est très
simple: son compteur interne compte les périodes d'une horloge, on fixe
un seuil de comparaison (Nmax ou une quelconque valeur du compteur) et
on génère une interruption quand il y a égalité.

Connaissant la période de l'horloge du Timer et la valeur de comparaison,


nous avons donc une demande d'interruption périodique.

14 IUT de TOURS GEII INFO2 17/11/2021


Timer en mode Temporisation
A chaque interruption
périodique, on incrémente Y !

La temporisation obtenue est


matérielle (Timer) donc très
précise.

On peut générer des


temporisations très courtes
(µs) à très longues (mn ou
heures)

15 IUT de TOURS GEII INFO2 17/11/2021


Les interruptions du Timer

l'interruption de fin de comptage : overflow interrupt. Interruption
quand le compteur interne atteint Nmax.


l'interruption de comparaison : compare interrupt. Interruption quand le
seuil de comparaison est atteint.


ATTENTION DANS PSoC Creator :

Utilisation de la fonction ReadStatusRegister() pour forcer à zéro le bit
d’indication d’interruption (Flag). Sinon on ne sort pas de la fonction
d’interruption !

Code à mettre dans la fonction d’interruption

16 IUT de TOURS GEII INFO2 17/11/2021


Quelques vidéos :

What is PWM ?(4 mn) :


https://www.youtube.com/watch?v=B_Ysdv1xRbA

Encore nos amis suisses ! (13 mn chacune)


https://www.youtube.com/watch?v=iipcWGPWrqg

https://www.youtube.com/watch?v=3qdSN2cawpc&list=PLEVjCycRK1D0YvSf9bTjISt
hjLdoXacy8&index=25

17 IUT de TOURS GEII INFO2 17/11/2021

Vous aimerez peut-être aussi