Chap 4 : Systemes sur puces : Reseaux sur
puce « NoC », Interruptions « NVIC », Timers
Mustapha Hamdi mfhamdi@gmail.com
IM...
Page  2
Systemes sur puces : Reseaux sur puce « NoC »,
Interruptions « NVIC », Timers
Réseaux sur puce « NoC »
Exynos 5 d...
Page  3
Systemes sur puces : Reseaux sur puce
« NoC », Interruptions « NVIC », Timers
Réseaux sur puce
Efficacité accrue ...
YOUR LOGO
Page  4
Qu'est-ce qu'un NoC ?
• Un réseau d'interconnexion relie des routeurs ou switches, auxquels sont
connec...
Page  5
Systemes sur puces : Reseaux sur puce
« NoC », Interruptions « NVIC », Timers
Systemes sur puces : Reseaux sur puce
« NoC », Interruptions « NVIC », Timers
Page  6
Bus : ligne de communication relian...
YOUR LOGO
Page  7
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
SOC: BCM2835 Block Diagra...
Page  8
Bus pour systèmes embarqués:
Bus AMBA: Advanced Microcontroller Bus Architecture
Conçu par ARM
Permet de simplifi...
Page  9
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Advanced High-performance Bus (AHB)...
Page  10
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Exemple :
mustapha.hamdi@insat.rnu...
Page  11
Etude de cas
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
SoC stm32f407vg:
Bus ...
Page  12
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Ports GPIO et Bus ARM:
RM0090, cha...
Page  13
Etude de cas
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
SoC stm32f407vg:
Bus ...
Page  14
Etude de cas
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
SoC stm32f407vg:
Bus ...
Page  15
Etude de cas
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
SoC stm32f407vg:
Bus ...
Page  16
Etude de cas
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
SoC stm32f407vg:
Bus ...
Page  17
DAC
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Fig. 64, RM0090, page 431
Page  18
Etude de cas
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
SoC stm32f407vg:
Bus ...
Page  19
Etude de cas
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
SoC stm32f407vg:
Bus ...
Page  20
DAC
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Groupe Timer Fmax 84 mhz via APB1
Groupe Tim...
Page  23
Bus pour systèmes embarqués:
Bus AMBA: Advanced Microcontroller Bus Architecture
Conçu par ARM
Permet de simplif...
Page  24
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Advanced High-performance Bus (AHB...
Page  25
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Exemple :
mustapha.hamdi@insat.rnu...
Page  26
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Exemple :
mustapha.hamdi@insat.rnu...
Page  27
Etude de cas : BUS AHB1 pour GPIOA
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers...
Page  28
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers
Page 178, DM00031020.pdf
Etude de ...
Page  29
Etude de cas : BUS AHB1 pour GPIOA
Systemes sur puces : Réseaux sur puce
« NoC », Interruptions « NVIC », Timers...
Page  30
Etude de cas: Bus APB1 pour Timer2
BUS ARM
SoC stm32f407vg:
Bus AHB, GPIO, DAC
APB1ENR
MODER
CR
DHR12R1/R2
GPIOD...
Page  31
BUS ARM
TIMER2:
RCC->APB1ENR |= 0x01; // Clock for Timer2
Page 172, DM00031020.pdf
Page  32
Etude de cas: Bus APB1 pour Timer2
BUS ARM
SoC stm32f407vg:
Bus AHB, GPIO, DAC
RCC->APB1ENR |= 0x01;
MODER
CR
DH...
Page  33
Les TIMERS
Les TIMERS
8 Timers DM00037051.pdf, Table 3, p.29
Groupe Timer Fmax
84 mhz via APB1
Groupe Timer Fmax...
Page  34
Les TIMERS
Les TIMERS
8 Timers DM00037051.pdf, Table 3, p.29
4 sorties
MLI
Quels PIN ?
AF
mustapha.hamdi@insat.r...
Page  35
Les TIMERS
Alternates functions
RM0090, chapter 6.3, Fig 13
mustapha.hamdi@insat.rnu.tn
Page  36
Les TIMERS
Alternates functions:
AF1: TIM1/TIM2, AF2 TIM3..5, AF9: can …
16 AF sur chaque pin, la configuration ...
Page  37
Les TIMERS
Alternates functions AFRL
TIM3..5
0x2 pour configure le
TIM3 et TIM4
Guide DM00031020.pdf P283
Page  38
Les TIMERS
Alternates functions
AFRL pour configurer les pins de 0 à 7
AFRH pour configurer les pins de 8 à 15
L...
Page  39
Les TIMERS
Alternates functions
Registre AFR[1]: AFH, pin 0->7
Registre AFR[0]: AFL, pin 8->15
Exemple 4 sorties...
Page  40
Les TIMERS
Alternates functions
TIME
R
TIM3 (4
chaines)
TIM4 (4
chaines)
ADC1
input
DAC
GPIO PC6->PC9 PD12->15 P...
Page  41
Les TIMERS
Etude de cas: MLI via TIMER 3
mustapha.hamdi@insat.rnu.tn
Page  42
Les TIMERS
Etude de cas: MLI via TIMER 3
Mustapha.hamdi@insat.rnu.tn
Page  43
Les TIMERS
Etude de cas: MLI via TIMER 3
ccr1
ccr3
Page  44
Les TIMERS
Etude de cas: MLI via TIMER 4
TIM4 connecté aux pins PD12…PD15 : LEDS
Timer4 en mode PWM à largeur d’...
Page  45
Les interruptions
Fonctionnement des interruptions
• NVIC : Nested Vectored Interrupt Controller
• Gère les prio...
Page  46
Les interruptions
Sources d’interruptions
• GPIO
• Périphériques autres pour
réveiller le cœur
• Ethernet
• USB ...
Page  47
Les interruptions
Etude de cas: Interruption par Timer 5
Le processeur genere deux impulsions dans le port E ped...
Page  48
Les interruptions
Etude de cas: Interruption par Timer 5
But : Interruption periodique chaque 1 ms pour générer ...
Page  49
Les interruptions
Mustapha.hamdi@insat.rnu.tn
Page  50
Les interruptions
Deux impulsions chaque 1 ms, l’interruption prend ~3.5us.
Chaque impulsion sur le port PE08 pr...
Page  51
Les interruptions
Clignotement de la led
Chaque 100ms
Mustapha.hamdi@insat.rnu.tn
Page  52
Les interruptions
Mustapha.hamdi@insat.rnu.tn
Implémentation d'un régulateur PID
IRQ
Conversion+PID
Autres tache...
Page  53
Les interruptions
Implémentation d'un régulateur PID
Etapes :
1)Activation ADC, TIMER, DAC
2)NVIC
3)Fonction pri...
Page  54
Les interruptions
Activation GPIO ADC Timer DAC:
ADC 1,2
Chaines Cr1 et cr2
Pin: PA02 et PA03 analog input
Le ti...
Page  55
Les interruptions
DAC->CR |=(1<<0)+(1<<16) = 0x00010001;
Activation de deux chaines de sortie
Mustapha.hamdi@ins...
Page  56
Les interruptions
DAC->SQ3 |=(1<<0)+(1<<16) = 0x00010001;
Activation de deux entrées PA2 et PA3
SQ1= 10 et SQ1=1...
Page  57
Les interruptions
Programme principale , Notes et indications :
While(1)
{
Ajustement de Kp :
si PE0 et PE05 son...
Page  58
Les interruptions
Fonction d’interruption : indications
Conversion ADC1et2
Error[Ptr] = Ref[Ptr] - x[Ptr]; // ca...
Page  59
Les interruptions
Code:
Mustapha.hamdi@insat.rnu.tn
Page  60
Les interruptions
Code_suite:
Mustapha.hamdi@insat.rnu.tn
Page  61
Les interruptions
Code_suite:
Mustapha.hamdi@insat.rnu.tn
Page  62
Les interruptions
Code_suite:
Mustapha.hamdi@insat.rnu.tn
Page  63
Les interruptions
Code_suite:
Mustapha.hamdi@insat.rnu.tn
Page  64
Les interruptions
Code_suite:
Mustapha.hamdi@insat.rnu.tn
Prochain SlideShare
Chargement dans…5
×

SoC Hamdi -chap4

804 vues

Publié le

IMI5-IIA5
Chapitre 4 :
Systèmes sur puces : NoC, NVIC, Timers, ADC, DAC

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
804
Sur SlideShare
0
Issues des intégrations
0
Intégrations
25
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

SoC Hamdi -chap4

  1. 1. Chap 4 : Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers Mustapha Hamdi mfhamdi@gmail.com IMI5 Trimestre1 2013-2014
  2. 2. Page  2 Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers Réseaux sur puce « NoC » Exynos 5 dual de samsung
  3. 3. Page  3 Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers Réseaux sur puce Efficacité accrue au niveau des communications => solutions à base de réseaux sur puce (Networks on Chip, NoC) *  Infrastructures de communication configurables  Caractéristiques proches de celles des réseaux : topologie, technique de commutation, algorithme de routage,…  Mais avec des spécificités : taille, consommation, fiabilité, …
  4. 4. YOUR LOGO Page  4 Qu'est-ce qu'un NoC ? • Un réseau d'interconnexion relie des routeurs ou switches, auxquels sont connectées les IP • Diverses topologies peuvent être utilisées, souvent régulières • On retrouve classiquement une partie des couches du modèle OSI (surtout au niveau des couches basses) Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers
  5. 5. Page  5 Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers
  6. 6. Systemes sur puces : Reseaux sur puce « NoC », Interruptions « NVIC », Timers Page  6 Bus : ligne de communication reliant les différents composants, ou le SoC et ses périphériques mustapha.hamdi@insat.rnu.tn
  7. 7. YOUR LOGO Page  7 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SOC: BCM2835 Block Diagram ARM1176JZ Réseaux sur puce :Network On chip NoC:
  8. 8. Page  8 Bus pour systèmes embarqués: Bus AMBA: Advanced Microcontroller Bus Architecture Conçu par ARM Permet de simplifier l’integration au niveau système. Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers mustapha.hamdi@insat.rnu.tn
  9. 9. Page  9 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Advanced High-performance Bus (AHB) : Bus système rapide, synchrone, multimaître.. Advanced System Bus (ASB) : AMBA ASB une alternative au système AHB , utilisé dans les cas ou les hautes performances du bus AHB ne sont pas nécessaires. Advanced Peripheral Bus (APB) APB (Advanced Peripheral Bus) : bus périphérique, plus lent et de plus faible consommation (pour périphériques lents), synchrone, maître unique.. mustapha.hamdi@insat.rnu.tn
  10. 10. Page  10 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Exemple : mustapha.hamdi@insat.rnu.tn
  11. 11. Page  11 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC AHB1ENR 32b OSPEEDER 32b MODER 32b IDR/ODR 16 GPIOx mustapha.hamdi@insat.rnu.tn
  12. 12. Page  12 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Ports GPIO et Bus ARM: RM0090, chapter 6.3, Fig 13 mustapha.hamdi@insat.rnu.tn
  13. 13. Page  13 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC 1<<00 *~(3<<2*00) *~(3<<2*00) Data=GPIOA&(1<<0) GPIOA pin0 pin15 Mode input pour pin0 Frequ = 2 Mhz Masque , data:(0/1) DM00031020.pdf
  14. 14. Page  14 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC |=(1<<3) |=(2<<2*15) |=(1<<2*15) |=(1<<15) GPIOD pin0 pin15 Mode output Fréq=50MHz Pin 15=1
  15. 15. Page  15 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC |=(1<<3) ….. ….. …. GPIOD pin0 Pin15,14 Mode output fpin15=50MHz,Fpin14=100 Pin 15=1, pin14=0
  16. 16. Page  16 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC |=(1<<3) |=(2<<15*2)+(3<<14*2) |=(1<<15*2)+(1<<14*2) |=(1<<15)+(0<<14) GPIOD pin0 Pin15,14 Mode output fpin15=50MHz,Fpin14=100 Pin 15=1, pin14=0
  17. 17. Page  17 DAC Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Fig. 64, RM0090, page 431
  18. 18. Page  18 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC APB1ENR MODER CR DHR12R1/R2 GPIOD pin0Pin 5, 4 DAC control reg Port/pin pour sortie Data holding register 1 et 2 DM00031020.pdf p172
  19. 19. Page  19 Etude de cas Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC |=0x20000000 |=111100000000 |=0x10001 DHR12R1/R2 GPIOD pin0Pin 5, 4 both channels ON; activation Port4/pin5 pour sortie (3<<2*4)+(3<<2*5) 3: analog output Données à convertir
  20. 20. Page  20 DAC Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers
  21. 21. Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers
  22. 22. Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Groupe Timer Fmax 84 mhz via APB1 Groupe Timer Fmax 168 mhz via APB2
  23. 23. Page  23 Bus pour systèmes embarqués: Bus AMBA: Advanced Microcontroller Bus Architecture Conçu par ARM Permet de simplifier l’integration au niveau système. Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers
  24. 24. Page  24 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Advanced High-performance Bus (AHB) : Bus système rapide, synchrone, multimaître.. Advanced System Bus (ASB) : AMBA ASB une alternative au système AHB , utilisé dans les cas ou les hautes performances du bus AHB ne sont pas nécessaires. Advanced Peripheral Bus (APB) APB (Advanced Peripheral Bus) : bus périphérique, plus lent et de plus faible consommation (pour périphériques lents), synchrone, maître unique.. mustapha.hamdi@insat.rnu.tn
  25. 25. Page  25 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Exemple : mustapha.hamdi@insat.rnu.tn
  26. 26. Page  26 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Exemple : mustapha.hamdi@insat.rnu.tn
  27. 27. Page  27 Etude de cas : BUS AHB1 pour GPIOA Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC AHB1ENR 32b OSPEEDER 32b MODER 32b IDR/ODR 16 GPIOx mustapha.hamdi@insat.rnu.tn
  28. 28. Page  28 Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers Page 178, DM00031020.pdf Etude de cas : BUS AHB1 pour GPIOA mustapha.hamdi@insat.rnu.tn
  29. 29. Page  29 Etude de cas : BUS AHB1 pour GPIOA Systemes sur puces : Réseaux sur puce « NoC », Interruptions « NVIC », Timers SoC stm32f407vg: Bus AHB, GPIO, DAC 1<<00 *~(3<<2*00) *~(3<<2*00) Data=GPIOA&(1<<0) GPIOA pin0 pin15 Mode input pour pin0 Frequ = 2 Mhz Masque , data:(0/1) DM00031020.pdf
  30. 30. Page  30 Etude de cas: Bus APB1 pour Timer2 BUS ARM SoC stm32f407vg: Bus AHB, GPIO, DAC APB1ENR MODER CR DHR12R1/R2 GPIOD pin0Pin 5, 4 DAC control reg Port/pin pour sortie Data holding register 1 et 2 DM00031020.pdf p172
  31. 31. Page  31 BUS ARM TIMER2: RCC->APB1ENR |= 0x01; // Clock for Timer2 Page 172, DM00031020.pdf
  32. 32. Page  32 Etude de cas: Bus APB1 pour Timer2 BUS ARM SoC stm32f407vg: Bus AHB, GPIO, DAC RCC->APB1ENR |= 0x01; MODER CR DHR12R1/R2 GPIOD pin0Pin 5, 4 DAC control reg Port/pin pour sortie Data holding register 1 et 2 DM00031020.pdf p172 mustapha.hamdi@insat.rnu.tn
  33. 33. Page  33 Les TIMERS Les TIMERS 8 Timers DM00037051.pdf, Table 3, p.29 Groupe Timer Fmax 84 mhz via APB1 Groupe Timer Fmax 168 mhz via APB2 mustapha.hamdi@insat.rnu.tn
  34. 34. Page  34 Les TIMERS Les TIMERS 8 Timers DM00037051.pdf, Table 3, p.29 4 sorties MLI Quels PIN ? AF mustapha.hamdi@insat.rnu.tn
  35. 35. Page  35 Les TIMERS Alternates functions RM0090, chapter 6.3, Fig 13 mustapha.hamdi@insat.rnu.tn
  36. 36. Page  36 Les TIMERS Alternates functions: AF1: TIM1/TIM2, AF2 TIM3..5, AF9: can … 16 AF sur chaque pin, la configuration par 4 bits via aux reg AFRL et AFRH
  37. 37. Page  37 Les TIMERS Alternates functions AFRL TIM3..5 0x2 pour configure le TIM3 et TIM4 Guide DM00031020.pdf P283
  38. 38. Page  38 Les TIMERS Alternates functions AFRL pour configurer les pins de 0 à 7 AFRH pour configurer les pins de 8 à 15 Les Timer 3 et 4 à utiliser ici, sont connectés à quel pin ? TIM3: PC6 ..9 TIM4: PD12..15 mustapha.hamdi@insat.rnu.tn
  39. 39. Page  39 Les TIMERS Alternates functions Registre AFR[1]: AFH, pin 0->7 Registre AFR[0]: AFL, pin 8->15 Exemple 4 sorties de TIM3 comme AF via au port C : GPIOC->AFR[0] |=(2<<4*6)+(2<<4*7); // en hexa 0x22000000 GPIOC->AFR[1] [=(2<<4*0)+;(2<<4*1); //pin 8et9 : les 2 premiers bits de AFH en hexa : 0x00000022 Comment configure les 4 Sorties de TIM4 comme AF via au port D: GPIOD->AFR[0] |= ?? Chaque pin est configurable par 4 bits mustapha.hamdi@insat.rnu.tn
  40. 40. Page  40 Les TIMERS Alternates functions TIME R TIM3 (4 chaines) TIM4 (4 chaines) ADC1 input DAC GPIO PC6->PC9 PD12->15 PA0-> PA7 PA4, PA5 “Voir outil Cube MX” Registre AFR[1]: AFH, pin 0->7 Registre AFR[0]: AFL, pin 8->15 Exemple 4 sorties de TIM3 comme AF via au port C : GPIOC->AFR[0] |=0x22000000; GPIOC->AFR[1] [=0x00000022; Exemple 4 Sorties de TIM4 comme AF via au port D: GPIOD->AFR[0] |= ?? Chaque pin est configurable par 4 bits mustapha.hamdi@insat.rnu.tn
  41. 41. Page  41 Les TIMERS Etude de cas: MLI via TIMER 3 mustapha.hamdi@insat.rnu.tn
  42. 42. Page  42 Les TIMERS Etude de cas: MLI via TIMER 3 Mustapha.hamdi@insat.rnu.tn
  43. 43. Page  43 Les TIMERS Etude de cas: MLI via TIMER 3 ccr1 ccr3
  44. 44. Page  44 Les TIMERS Etude de cas: MLI via TIMER 4 TIM4 connecté aux pins PD12…PD15 : LEDS Timer4 en mode PWM à largeur d’impulsion variable Proposer une solution pour rendre la L.I variable
  45. 45. Page  45 Les interruptions Fonctionnement des interruptions • NVIC : Nested Vectored Interrupt Controller • Gère les priorités entre interruptions • Gère la sauvegarde/restauration des registres • Le tout de façon optimisée (tail chaining, stack pop pre-emption, late arrival) • Le fabriquant du micro-contrôleur peut y greffer ses interruptions (ex : UART, DMA, EXTI), le cœur ayant aussi ses propres interruptions (ex : Hard Fault) Mustapha.hamdi@insat.rnu.tn
  46. 46. Page  46 Les interruptions Sources d’interruptions • GPIO • Périphériques autres pour réveiller le cœur • Ethernet • USB OTG • Horloge RTC Mustapha.hamdi@insat.rnu.tn
  47. 47. Page  47 Les interruptions Etude de cas: Interruption par Timer 5 Le processeur genere deux impulsions dans le port E pedant chaque interruption.
  48. 48. Page  48 Les interruptions Etude de cas: Interruption par Timer 5 But : Interruption periodique chaque 1 ms pour générer deux impulsions Solution? Mustapha.hamdi@insat.rnu.tn
  49. 49. Page  49 Les interruptions Mustapha.hamdi@insat.rnu.tn
  50. 50. Page  50 Les interruptions Deux impulsions chaque 1 ms, l’interruption prend ~3.5us. Chaque impulsion sur le port PE08 prend ~0.5 us Mustapha.hamdi@insat.rnu.tn ~3.5us ~0.5 us
  51. 51. Page  51 Les interruptions Clignotement de la led Chaque 100ms Mustapha.hamdi@insat.rnu.tn
  52. 52. Page  52 Les interruptions Mustapha.hamdi@insat.rnu.tn Implémentation d'un régulateur PID IRQ Conversion+PID Autres taches sur le uc: Paramétrage de kp,ki, kd
  53. 53. Page  53 Les interruptions Implémentation d'un régulateur PID Etapes : 1)Activation ADC, TIMER, DAC 2)NVIC 3)Fonction principale 4)Fonction d’interruption L ’ADC effectue une conv chaque 100 us. Le NVIC(ADC_IRQn) interrompe Le prog principale chaque 100 us. Mustapha.hamdi@insat.rnu.tn
  54. 54. Page  54 Les interruptions Activation GPIO ADC Timer DAC: ADC 1,2 Chaines Cr1 et cr2 Pin: PA02 et PA03 analog input Le timer2 comme source de synchronisation TIMER 2: Comme source périodique d’interruption Periode = 1us, f=10 kHz, TIM2->ARR = 8400; DAC : PA04, PA05 are analog outputs TIMER3: Source MLI largeur d’impulsion=sortie de regulateur Freq à choisir Mustapha.hamdi@insat.rnu.tn
  55. 55. Page  55 Les interruptions DAC->CR |=(1<<0)+(1<<16) = 0x00010001; Activation de deux chaines de sortie Mustapha.hamdi@insat.rnu.tn
  56. 56. Page  56 Les interruptions DAC->SQ3 |=(1<<0)+(1<<16) = 0x00010001; Activation de deux entrées PA2 et PA3 SQ1= 10 et SQ1=11, ADC1->SQ3|=0X2 ADC2->SQ3|=0X3 Mustapha.hamdi@insat.rnu.tn
  57. 57. Page  57 Les interruptions Programme principale , Notes et indications : While(1) { Ajustement de Kp : si PE0 et PE05 sont activés au même temps Alors Kp++ : if ((GPIOE->IDR & 0x003f) == (0x01 + 0x20)) Kp++; // manually set Kp Rq 0x003f=111111: masque, 0x01 + 0x20= 100001 : PE0 et PE05 si PE0 et PE04 sont activés au même temps Alors Kp-- if ((GPIOE->IDR & 0x003f) == (0x01 + 0x10)) Kp--; Ajuste de kd via PE01 et PE05 : Kd+0.001 , PE01 et PE04 kd -0.001 Ajustement de Ki via PE02 et PE05, ki+0.0001, PE02 et PE04 ki -0.0001 } Mustapha.hamdi@insat.rnu.tn
  58. 58. Page  58 Les interruptions Fonction d’interruption : indications Conversion ADC1et2 Error[Ptr] = Ref[Ptr] - x[Ptr]; // calculate error Prop = Kp * (float)Error[Ptr]; // proportional part Dif = Kd * (float)(Error[Ptr] - Error[(Ptr-1) & 63]) / Ts; // diff. part Int += Ki * (float)Error[Ptr]; // integral part Reg[Ptr] = (int)(Prop + Dif + Int); // summ all three Sorties : Reg et Error via au DAC1et2 Le DAC est limité entre 0 et 4095 Mustapha.hamdi@insat.rnu.tn
  59. 59. Page  59 Les interruptions Code: Mustapha.hamdi@insat.rnu.tn
  60. 60. Page  60 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn
  61. 61. Page  61 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn
  62. 62. Page  62 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn
  63. 63. Page  63 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn
  64. 64. Page  64 Les interruptions Code_suite: Mustapha.hamdi@insat.rnu.tn

×