Ligne 107 : |
Ligne 107 : |
| ===Configuration via CubeMX=== | | ===Configuration via CubeMX=== |
| Avant de sauvegarder le fichier .ioc (fichier de config STM32CubeMX) et générer le code du projet, nous devons faire quelques configurations supplémentaires. | | Avant de sauvegarder le fichier .ioc (fichier de config STM32CubeMX) et générer le code du projet, nous devons faire quelques configurations supplémentaires. |
− | # Nous choisissons le pin PA5 pour générer le PWM (pin connecté à la LED intégrée LD2). Le signal est généré par un timer et donc nous devons “connecter” le pin à ce périphérique. Pour ce faire, veuillez cliquer sur la pâte PA5 (dans la vue ‘’Pinout view’’). D'après le menu qui apparaît, ce pin peut être connecté au canal 1 du timer 2 (TIM2_CH1) et au canal 1 du timer 8 (TIM8_CH1N). Nous choisissons TIM2_CH1 (cliquer pour activer). | + | # Nous choisissons le pin PA5 pour générer le PWM (pin connecté à la LED intégrée LD2). Le signal est généré par un timer et donc nous devons “connecter” le pin à ce périphérique. Pour ce faire, veuillez cliquer sur la pâte PA5 (dans la vue ‘’Pinout view’’). D'après le menu qui apparaît, ce pin peut être connecté au canal 1 du timer 2 (TIM2_CH1) et au canal 1 du timer 8 (TIM8_CH1N). Nous choisissons TIM2_CH1 (cliquer pour activer). [[Fichier:PWM1.png]] |
− | [[Fichier:PWM1.png]] | + | # Ensuite, accéder à la catégorie ‘’Timers’’ (menu à gauche) et sélectionner le TIM2. Activer le canal 1 en mode ‘’PWM Generation’’ et choisir ‘’Internal Clock’’ comme ‘’Clock Source’’.[[Fichier:PWM2.png]] |
− | | + | # Maintenant, nous devons configurer les horloges du microcontrôleur. Accéder à l'onglet ‘’Clock Configuration’’. Puis enter 180 MHz comme fréquence de processeur (maximale pour ce microcontrôleur) et appuyer sur entrée. CubeMX règle automatiquement la fréquence des périphériques. [[Fichier:PWM3.png]] |
− | # Ensuite, accéder à la catégorie ‘’Timers’’ (menu à gauche) et sélectionner le TIM2. Activer le canal 1 en mode ‘’PWM Generation’’ et choisir ‘’Internal Clock’’ comme ‘’Clock Source’’. | |
− | [[Fichier:PWM2.png]] | |
− | | |
− | # Maintenant, nous devons configurer les horloges du microcontrôleur. Accéder à l'onglet ‘’Clock Configuration’’. Puis enter 180 MHz comme fréquence de processeur (maximale pour ce microcontrôleur) et appuyer sur entrée. CubeMX règle automatiquement la fréquence des périphériques. | |
− | [[Fichier:PWM3.png]] | |
− | | |
| # D'après la [https://www.st.com/resource/en/datasheet/stm32f446re.pdf documentation] du microcontrôleur (p.16) nous voyons que le timer 2 est connecté au bus APB1. [[Fichier:PWM4.png]] et d'après la vue précédente, les timers de APB1 tournent à 90 MHz (x2 de APB1 peripheral clocks). [[Fichier:PWM5.png]] | | # D'après la [https://www.st.com/resource/en/datasheet/stm32f446re.pdf documentation] du microcontrôleur (p.16) nous voyons que le timer 2 est connecté au bus APB1. [[Fichier:PWM4.png]] et d'après la vue précédente, les timers de APB1 tournent à 90 MHz (x2 de APB1 peripheral clocks). [[Fichier:PWM5.png]] |
− |
| |
| # Revenant sur la configuration du TIM2, nous devons configurer le registres ‘’Prescaler’’ et ‘’Counter Period’’ pour régler la fréquence du signal généré d'après la formule suivante : f_PWM = f_APBx_timer/((PSC+1)*(CounterPeriod+1)). Pour arriver à une fréquence de 50 Hz, nécessaire pour piloter un servomoteur analogique, nous pouvons entrer les valeurs suivantes: [[Fichier:PWM6.png]] | | # Revenant sur la configuration du TIM2, nous devons configurer le registres ‘’Prescaler’’ et ‘’Counter Period’’ pour régler la fréquence du signal généré d'après la formule suivante : f_PWM = f_APBx_timer/((PSC+1)*(CounterPeriod+1)). Pour arriver à une fréquence de 50 Hz, nécessaire pour piloter un servomoteur analogique, nous pouvons entrer les valeurs suivantes: [[Fichier:PWM6.png]] |
| | | |