Page Personnelle de Vincent Kerhoas
Vincent Kerhoas
Enseignant du Supérieur
Professeur Agrégé
Page Personnelle de Vincent Kerhoas

Génération d’un Signal PWM avec un Timer

Back                  << Index >>


DOCUMENTATION


Configurations

Le signal PWM ( Pulse Width Modulation / Modulation de Largeur d’Impulsion ) résulte de la comparaison entre une valeur courante de comptage contenue dans CNT, et un registre représentant le rapport cyclique :

La période de remise à zéro du timer est définie, comme précédemment, par PSC et ARR.
Le registre duty correspond au registre CCRx.
Le résultat de la comparaison entre CNT et CCRx met à jour la sortie channel x : TIMx_CHx.
Un timer possède 4 signaux de sortie : CH1, CH2, CH3, CH4.

Les registres CCMR1 et CCMR2 permettent de configurer respectivement CH1, CH2 et CH3, CH4.

Configuration des Broches

Nous souhaitons contrôler la luminosité de la Led verte avec un signal PWM :

La led verte est reliée à la broche PC7.
D’après la Datasheet STM32F411 (p50) :

Nous pouvons utiliser le Timer 3 ( alternate function 02 ) pour générer un signal PWM à destination de la led verte.

Il faudra donc ajouter ( et appeler ) la fontion suivante dans le fichier stm32f4xx_hal_msp.c :

stm32f4xx_hal_msp.c

Génération du signal PWM

La fonction HAL_TIM_PWM_Init() permet de définir les registres PSC et ARR, et le mode de fonctionnement.

stm32f4xx_hal_tim.c

La fonction HAL_TIM_PWM_ConfigChannel() permet , pour un channel donné, de :

stm32f4xx_hal_tim.c

La fonction HAL_TIM_PWM_Channel_Set() permet de changer le rapport cyclique d’un channel donné :

stm32f4xx_hal_tim.c

REMARQUE : Ne pas oublier d’appeler la fonction HAL_TIM_Base_Start() pour autoriser le comptage du timer.


Travaux Pratiques

Rapport cyclique Fixe

Q1. Configurer le périphérique Timer de telle sorte que la luminosité de la LED verte soit contrôlée par un signal PWM généré par le Timer 3.
La période du signal PWM doit être de 10 ms afin de faire varier l’intensité de l’éclairement.

Effectuer un test pour un rapport cyclique de 90%, puis de 10%.
Vérifier à l’oscilloscope la fréquence du signal, et le rapport cyclique.

REMARQUE : pour des périodes PWM supérieures à 100ms, on observe un clignotement de la LED.

Contrôle du rapport Cyclique avec les boutons

Q2. Modifier le programme pour contrôler la luminosité de la LED Rouge et de la LED bleue avec un signal PWM.
Le rapport cylclique doit être modifiable en appuyant sur les boutons.

REMARQUE : Bien repérer pour chaque broche le numéro de l’alternate function permettant d’utiliser le périphérique Timer nécessaire ( cette information est dans le doc Datasheet STM32F411 (à partir de la p46)).
Ne pas confondre avec le numéro de channel du timer.


Back                  << Index >>