Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Commande embarquée de moteurs
1 Prise en main du Microcontrôleur Christian Koechli
2
Composants de l’électronique de commande
CPU: DSP ou mcontrôleur Signaux de mesure Mesure Capteurs Signaux logiques Driver Alim. de la « logique » Signaux de commande Alim puissance
3
Au sommaire: Présentation du microcontrôleur et de ses fonctionnalités
Tâches dans la commande électronique Manière d’utiliser les divers périphériques
4
Tâches du CPU Calculer les paramètres de commutation et de réglage
Effectuer la commande des transistors (Pwm) Mesurer les grandeurs de réglage (AD, IO) Communiquer avec l’utilisateur (CAN, RS232, SPI,I2C,AD,IO) Surveiller que rien ne casse
5
mC: STM32F401RE ARM Cortex M4 (32bit) avec FPU + DSP
512KB flash /96KB RAM 84Mhz 64 pattes Basse consommation 4.5$ (1000 pièces) Comment choisit-on un uC? Fréquence pour faire les calculs FPU: a-t-on besoin de calculer en virgule flottante Quels sont les périphs. nécessaires
6
Périphérique Unité de calcul Mémoire vive (RAM) Exemples de
périphériques Etage de sortie (Push/Pull) GPIO: output Unité de calcul Pattes Convertisseur AD Etage d’entrée (Sample and hold) Mémoire morte (Flash)
7
STM32F401RE
8
Memory Map 1
10
Exemple GPIO
11
Configuration par CubeMX
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
12
Configuration par les registres
void HAL_GPIO_WritePin( GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) { /* Check the parameters */ assert_param(IS_GPIO_PIN(GPIO_Pin)); assert_param(IS_GPIO_PIN_ACTION(PinState)); if(PinState != GPIO_PIN_RESET) GPIOx->BSRR = GPIO_Pin; } else GPIOx->BSRR = (uint32_t)GPIO_Pin << 16U;
14
Périphériques importants
GPIO Timers + PWM+Capture/Compare/QEP Convertisseur AD DMA Gestionnaire d’interruptions Watchdog timer Communication
15
Famille STM32
18
Interruptions 16 ARM Cortex M4
52 lignes d’interruption masquables (NVIC) 16 niveaux de priorité Notion d’interruption Notion de masque Notion de priorité Vecteur d’interruption Sauvegarde du contexte Restauration du contexte
19
Interruption / événement
Une interruption coupe l’exécution du programme La plupart des routines d’interruption peuvent/doivent être reprogrammées Un événement n’interrompt pas le programme Il permet de déclencher l’action d’un autre périph. sans intervention du «CPU»
20
DMA Accès direct à la mémoire au lieu d’interrompre le CPU
interruption Périph. (ADC, Com, Timers,…) CPU DMA Gère le fait qu’on ne peut pas écrire en même temps au même endroit, etc… RAM
21
Timers 1 advanced control timer 16-bit (TIM1)
4 General purpose times (TIM2-TIM5) 2x 32-bit (TIM2 & TIM5) 2x 16-bit (TIM3 & TIM4) Utilisation DMA, interface capteur incrémental (QEP) 3 General purpose timers 16-bits (TIM9-TIM11) Le timer 1 est le plus complet et permet de faire la commande d’un moteur triphasé avec un seul timer
22
TIM9
23
TIM1
24
Timer 1 propriétés (§12.2 ref)
16-bit up, down, up/down auto-reload counter. 16-bit programmable prescaler allowing dividing the counter clock frequency either by any factor between 1 and Up to 4 independent channels for: Input Capture Output Compare PWM generation (Edge and Center-aligned Mode) One-pulse mode output Complementary outputs with programmable dead-time Synchronization circuit to control the timer with external signals and to interconnect several timers together. Repetition counter to update the timer registers only after a given number of cycles of the counter. Break input to put the timer’s output signals in reset state or in a known state.
25
Timer 1 propriétés (suite)
Interrupt/DMA generation on the following events: Update: counter overflow/underflow, counter initialization (by software or internal/external trigger) Trigger event (counter start, stop, initialization or count by internal/external trigger) Input capture Output compare Break input Supports incremental (quadrature) encoder and hall-sensor circuitry for positioning purposes Trigger input for external clock or cycle-by-cycle current management
26
Mode et exemple d’événements
27
Configuration 1 Slave mode, trigger source, clock source Channels:
Capture Output compare PWM Forced Output Break Input One pulse
28
Configuration 2 Prescaler
Mode: UP / Down / Center align mode(1-3) (interrupt flag set when counting 1=down, 2=up, 3=UP and down) Period Trigger Output (TRGO) Break state/polarity Dead Time
29
PWM Channel configuration
PWM Mode 1 = Active Low PWM Mode 2 = Active High Pulse = Niveau de comparaison Polarity = signal de sortie lorsqu’actif
30
Watchdog timers Assurent que le uc n’est pas planté
Compteurs à ne jamais laisser atteindre 0 2 possibilités: Independent watchdog (IWDG) Window Watchdog (WWDG)
31
ADC
32
Modes de conversion AD Scan Countinuous Discontinuous
Action du DMA et EOC flag Trigger
33
Exemple d’application
Commande en vitesse d’un moteur à courant continu: Tâches temps réel: Régulateur courant Régulateur vitesse Autres tâches: Acquisition de la consigne de vitesse, affichage de la vitesse,…
34
Implémentation 1 Interruption rapide (20 kHz) pour le régulateur de courant 1 interruption lente pour le régulateur de vitesse (1kHz) Communication dans la boucle « main »
35
Modulation à largeur d’impulsion : PWM
Source: wikipedia
36
Interruption rapide et PWM
AD, int rapide AD, int rapide CNTR CMP PWM i(t) t
37
Avantages Nombre limité d’interruptions=> garantie du temps réel
Régulateur de courant dans interruption rapide, prioritaire, générée par le PWM=> synchrone avec le PWM Régulateur de vitesse dans interruption lente mais à temps fixe Tâche non-prioritaires dans main=> système simple et efficace
38
Prochain Labo
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.