0% ont trouvé ce document utile (0 vote)
156 vues6 pages

Formation STM32 PWM: Génération CH2 CH2N, PE11 Et PB0 Seront Des Sorties Complémentaires. de Même On

Transféré par

helali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
156 vues6 pages

Formation STM32 PWM: Génération CH2 CH2N, PE11 Et PB0 Seront Des Sorties Complémentaires. de Même On

Transféré par

helali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Formation STM32 PWM

PWM
I. introduction
Dans cette manipulation on va voir la configuration nécessaire pour générer un signal
PWM. On va générer deux signaux complémentaires pour commander un onduleur et deux
autres indépendants. La largeur d’impulsion et définie comme suit :

Largeur PWM (us) = PULSE *(PRESC+1)/ Fapb(MHZ)

Avec PULSE, PRESC sont des valeurs à écrire dans les registres.

Généralement la largeur d’impulsion est exprimée en pourcent, la valeur numérique


écrite dans le registre

PULSE=largeur de PWM(en %)*valeur ARR

Avec PSC=2

II. Manipulation
1. Sorties PWM complémentaire
Le timer utilisé sera TIM1

Dans le menu pinnout on active TIM1 et on sélectionne CHANNEL 2 comme PWM


Génération CH2 CH2N, PE11 et PB0 seront des sorties complémentaires. De même on
fait à Channel 3. PE13 et PB1 seront des sorties complémentaires aussi.

2. Sortie PWM indépendante


Le timer utilisé sera TIM12

MAHER Boumiza Page 1


Formation STM32 PWM

Les sorties sont PB15 et PB14

• Sortie complémentaire

Onglet configuration menu control on sélectionne TIM1

MAHER Boumiza Page 2


Formation STM32 PWM

 Prescaler : pré-diviseur noté précédemment PRESC


 Counter Period : période du signal
 Internal clock division : pour calcul du temps mort.
 Automatic output State : l’état des pins reflète l’état de ces bits correspond dans le
registre
 Off State Selection for Run mode / Off State Selection for idle mode : l’état des pins
dans le fonctionnement normale et en état d’arrêt, est définit par le registre.
 Dead Time : valeur du temp mort qui est calculé comme suit :

il faut tout d’abord paramètrer Internal Clock Division (CKD) comme suit :

La valeur de temps mort DT est exprimé en fonction du nombre d’impulsion d’horloge


comme suit :

MAHER Boumiza Page 3


Formation STM32 PWM

 Pulse : largeur d’impulsion du signal note précédemment PULSE.


 Mode : PWM1
 CH polarity : high, si le bit est actif il sera à 3.3V
 CHN polarity : high si le bit est actif le signal sera à 0V
 CH Idle state/CHN Idle state : au repos les deux sortie seront a l’état reset.
• Sortie indépendante

On configure les largeurs d’impulsion pour chaque sortie PWM.

MAHER Boumiza Page 4


Formation STM32 PWM

III. Fonction a utilisé


 Lancement du timer en mode PWM

HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)

 Arrêt du timer en mode PWM

HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)

 Lancement du timer en mode PWM avec génération d’interruption

HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)

 Arrêt du timer en mode PWM avec interruption

HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)

Le variable channel peut prendre l’un des valeurs suivant


 TIM_CHANNEL_1 : TIM Channel 1 selected
 TIM_CHANNEL_2 : TIM Channel 2 selected
 TIM_CHANNEL_3: TIM Channel 3 selected
 TIM_CHANNEL_4 : TIM Channel 4 selected

HAL_StatusTypeDef

 HAL_OK = 0x00
 HAL_ERROR = 0x01
 HAL_BUSY = 0x02
 HAL_TIMEOUT = 0x03

IV. Tips
Pour changer la largeur d’impulsion on agissant directement sur le registre

TIMx->CCRx=valeur

Pour changer la valeur du temps mort

TIMx->BDTR=valeur

x : numéro du timer en mode PWM

MAHER Boumiza Page 5


Formation STM32 PWM

Si il ya un problème de génération de signaux PWM complémentaires on a joute cette


instruction

 Channel 1 complémentaire TIM (1ou 8) ->CCER=0x0005


 Channel 2 complémentaire TIM (1ou 8) ->CCER=0x0050
 Channel 3 complémentaire TIM (1ou 8) ->CCER=0x0500

Pour activer plus Qu’une chaine on fait un ou logique entre les valeurs e.g channel
1+3 en PWM complémentaire

TIM(1 ou 8) ->CCER+0X0505

MAHER Boumiza Page 6

Vous aimerez peut-être aussi