La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Commande embarquée de moteurs

Présentations similaires


Présentation au sujet: "Commande embarquée de moteurs"— Transcription de la présentation:

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

9

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;

13

14 Périphériques importants
GPIO Timers + PWM+Capture/Compare/QEP Convertisseur AD DMA Gestionnaire d’interruptions Watchdog timer Communication

15 Famille STM32

16

17

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


Télécharger ppt "Commande embarquée de moteurs"

Présentations similaires


Annonces Google