Formation d'initiation sur le développement sur microcontroleurs stm32 a base de microprocesseur ARM.
Elle présente tout les éléments de base nécessaire pour attaqué le domaine de développement sur cible embarqué.
1. objectifs
• Comprendre le fonctionnement d’un microcontrôleur
• Savoir manipuler les entrées / sorties
• Maitriser les fonctions d'entrée sortie de stm32f4-discovery
• Réaliser un circuit électronique programmé
• Développer un programme sur IAR embedded workbench
1
2. Plan
1.Introduction aux microcontrôleurs.
2.Le monde des applications basées sur un microcontrôleur.
3.Familles de microcontrôleurs .
4.Les Outils de développement.
5.Création d’un nouveau projet.
6.Configuration du projet.
2
3. 1.1 Qu'est-ce qu'un microcontrôleur ? (1/2)
Un microcontrôleur
Introduction aux microcontrôleurs
= + +
périphériques d'entrée
sortie
Mémoire microprocesseur
Gravé sur la même puce
Bus de communication
3
4. 1. Qu'est-ce qu'un microcontrôleur ? (2/2)Introduction aux microcontrôleurs
Architecture de baseMicrocontrôleur
4
5. 1.2 Caractéristique d’un microcontrôleurIntroduction aux microcontrôleurs
• Faible consommation
• Bas coûts
• Dimension réduite
• Mémoire de taille limitée
• Faible vitesse de fonctionnement.
5
7. 1.5 Programmation de microcontrôleurIntroduction aux microcontrôleurs
Ordinateur
Programmateur: interface de
programmation et du débogage
Microcontrôleur
Fichier binaire ou hexadécimal
contenue des registres
7
8. 2.1 Domaine d’automobile
2. Le monde des applications basées sur un
microcontrôleur
Ordinateur de bord des voitures
• Calcule de vitesse
• Mesure de température
• Contrôle des medias
8
9. KUKA robot: robots utiliser pour l’assemblage des voituresNAO ROBOT
2.2 ROBOTIQUE
2. Le monde des applications basées sur un
microcontrôleur
9
10. La domotique est l’ensemble des techniques de l'électronique, de physique du bâtiment,
d'automatisme, de l'informatique et des télécommunications utilisées dans les bâtiments
• pilotage des volets, portes,
lampes via un smart phone
• Régulation automatique de
température
• Détection des fuites d’eau et
coupures électriques
2.3 DOMOTIQUE
2. Le monde des applications basées sur un
microcontrôleur
10
11. 2. Le monde des applications basées sur un microcontrôleur
Est ce que tous ces systèmes utilisent la même
famille de microcontrôleur ?
11
14. 3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg
14
15. Fabricant STMicroelectronics
Largeur du bus de données 32 bit
Fréquence de l'horloge max 168 MHZ
Taille de la mémoire du programme 1 MB
Taille de la RAM de données 192 KB
Cœur ARM Cortex M4
Tension d'alimentation de
fonctionnement
1.8 V to 3.6 V
Température de fonctionnement max + 85 C
Type de Ram de données SRAM
Type d'interface CAN, I2C, I2S, SPI, UART
Température de fonctionnement min - 40 C
Nombre d'E/S 82 I/O
Type de la mémoire programme Flash
Caractéristique du microcontrôleur stm32f407vg
3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg
15
17. 3. Familles de microcontrôleurs
51/82/114/140 I/Os
USB 2.0 OTG
FS/HS
Encryption**
Camera Interface
3x 12-bit ADC
24 channels / 2Msps
3x I2C
Up to 16 Ext. ITs
Temp Sensor
2x6x 16-bit PWM
Synchronized AC Timer
2x Watchdog
(independent & window)
5x 16-bit Timer
XTAL oscillators
32KHz + 8~25MHz
Power Supply
Reg 1.2V
POR/PDR/PVD
2x DAC + 2 Timers
2 x USART/LIN
1 x SPI
1 x Systic Timer
PLL
Clock Control
RTC / AWU
4KB backup RAM
Ethernet MAC
10/100, IEEE1588
USB 2.0 OTG FS
4x USART/LIN
1x SDIO
Int. RC oscillators
32KHz + 16MHz
3 x 16bit Timer
2x 32-bit Timer
2x CAN 2.0B
2 x SPI / I2S
STM32F4xx Block Diagram
ARM®32-bitmulti-AHBbusmatrix
Arbiter(max150MHz)
FlashI/F
CORTEX-M4
CPU + FPU +
MPU
168 MHz
128KB SRAM
JTAG/SW Debug
DMA
16 Channels
Nested vect IT Ctrl
Bridge
Bridge APB1 (max 42MHz)
ETM
512kB- 1MB
Flash Memory
External Memory
Interface
AHB1
(max 168MHz)
AHB2 (max 168MHz)
APB2(max84MHz)
D-bus
I-bus
S-bus
3.2 La famille stm32f4 STM32f407vg
17
18. 3. Familles de microcontrôleurs
• AMBA: Advanced Microcontroller Bus Architecture
• AHB: Advanced High-performance Bus AHB1 & AHB2 (168MHz)
• APB: Advanced Peripheral Bus AP1 ( 42MHz) & AP2 (84MHz)
system Bus : ARM On-Chip
3.2 La famille stm32f4 STM32f407vg
18
19. 3. Familles de microcontrôleurs
NVIC:
Nested
Vectored
Interrupt
Controller
Contrôleur des interruptions
EXTI:
EXTernal
Interrupt
Cœur du
processeur
cortex M4
Périphérique:
ADC
DMA
UART
SPI
I2C
I2S
TIM
USB
DAC
3.2 La famille stm32f4 STM32f407vg
EXTI0EXTI15
20. 3. Familles de microcontrôleurs
51/82/114/140 I/Os
USB 2.0 OTG FS/HS
Encryption**
Camera Interface
3x 12-bit ADC
24 channels / 2Msps
3x I2C
Up to 16 Ext. ITs
Temp Sensor
2x6x 16-bit PWM
Synchronized AC Timer
2x Watchdog
(independent & window)
5x 16-bit Timer
XTAL oscillators
32KHz + 8~25MHz
Power Supply
Reg 1.2V
POR/PDR/PVD
2x DAC + 2 Timers
2 x USART/LIN
1 x SPI
1 x Systic Timer
PLL
Clock Control
RTC / AWU
4KB backup RAM
Ethernet MAC 10/100,
IEEE1588
USB 2.0 OTG FS
4x USART/LIN
1x SDIO
Int. RC oscillators
32KHz + 16MHz
3 x 16bit Timer
2x 32-bit Timer
2x CAN 2.0B
2 x SPI / I2S
ARM®32-bitmulti-AHBbusmatrix
Arbiter(max150MHz)
FlashI/F
CORTEX-M4
CPU + FPU +
MPU
168 MHz
128KB SRAM
JTAG/SW Debug
DMA
16 Channels
Nested vect IT Ctrl
Bridge
Bridge APB1 (max 42MHz)
ETM
512kB- 1MB
Flash Memory
External Memory
Interface
AHB1
(max 168MHz)
AHB2 (max 168MHz)
APB2(max84MHz)
D-bus
I-bus
S-bus
Up to 15 communication interfaces
– Up to 3 × I2C interfaces
– Up to 4 USARTs/2 UARTs
– Up to 3 SPIs (37.5 Mbits/s),
– 2 × CAN interfaces (2.0B Active)
– SDIO interface
■ Advanced connectivity
– USB 2.0 full-speed device
– USB 2.0 high-speed/full-speed
device
– 10/100 Ethernet MAC
■ 8- to 14-bit parallel camera interface up to
54 Mbytes/s
Périphérique de communication:
3.2 La famille stm32f4 STM32f407vg
20
21. STM32f4-discovery
programmateur st link v2
STM32f407VGt6
Périphérique extérieur aux µC:
• Microphone
• DAC audio
• Accéléromètre
• Bouton (user/reset)
• USB OTG
3. Familles de microcontrôleurs 3.2 La famille stm32f4 La carte STM32F4-discovery
21
22. programmateur st link v2 jumper connection
3. Familles de microcontrôleurs 3.2 La famille stm32f4 La carte STM32F4-discovery
22
23. 4.1 environnement matérielle
• Matériel de base:
• PC Windows (XP, vista,7 ,8, 10)
• câble USB type A to Mini-B
• matériel supplémentaire:
• câble USB type A to Micro-B
• Casque avec connecteur jack mâle
4. Les Outils de développement
23
24. 4. Les Outils de développement 4.2 Environnement logiciel
IAR Embedded Workbench
4.2.1 Vue d’ensemble
Atollic True studio
Keil µvision 5 24
25. 4. Les Outils de développement 4.2.1 Environnement logiciel IAR embedded workbench
Workspace
window
build window
file
window
4.2 Environnement logiciel
Code bien
compilé
Débogage
Compilation
Breakpoint
25
26. 5. Structure de projet
Embedded Workbench ARM:
Contient les fichiers driver du processor de microcontrôleur
4. Création d’un nouveau projet 4.3 structure de projet(1/4)
26
27. STM32f4-discovery:
Contient les fichiers driver de périphérique externe au microcontrôleur
stm32f407vg:
• Stm32f4_discover.c :
contient les fonctions driver de manipulation des LED et des buttons
• stm32f4_discovery_audio_codec.c:
contient les fonctions driver de manipulation du codeur audio
• stm32f4_discovery_lis302dl.c:
contient les fonctions driver de manipulation de l’accéléromètre
4. Création d’un nouveau projet 4.3 structure de projet(2/4)
27
29. User:
Contient les fichiers de l’application
• Main.c: contient le code de l’application
• Stm32f4xx_it.c: contient le code a exécuté lors d’une interruption.
• System_stm32f4xx.c: contient deux fonctions:
• SystemInit(): initialisation du l’horloge de système.
• SystemCoreClockUpdate():mise à jour de fréquence d’horloge de
microcontrôleur.
4. Création d’un nouveau projet 4.3 structure de projet(4/4)
29
30. Etape 1: Création du nouveau projet en langage C.
Etape 2: Ajout des fichiers pilotes.
Etape 3: Configuration du projet.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
30
31. 4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
Etape 1: Création du nouveau projet en langage C.
31
32. Projet simple en langage C qui implémente la fonction main
Etape 1: Création du nouveau projet en langage C.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
32
33. Etape2: Ajout des fichiers pilotes.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
33
34. Dossier 1: STM32f4-discovery
Contient les fichiers driver de microcontrôleur stm32f407vg:
• Driver du core ARM cortex m4
• driver des périphériques interne (GPIO, EXTI,…) au
microcontrôleur
Contient des exemples de projet
Contient les fichiers driver des périphériques de la carte stm32f4-
discovery
Etape2: Ajout des fichiers pilotes. (1/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
34
35. Dossier 2: useful_stm32f4
Fichier de configuration d’appel des fichier driver des
périphériques interne au µc
Contient les fonctions du configuration des tâches à exécuter lors
d’une interruption
Contient les en-tête des fonction implémenter dans le fichier
stm32f4xx_it.c
Etape2: Ajout des fichiers pilotes (2/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
35
36. Le 1ére groupe est « EWARM » : ce dossier va contenir les
Fichiers pilotes du processeur ARM. Dans notre exemple c’est le
processeur ARM-cortex M4.
• System_stm32f4xx.c: contient deux fonctions:
• SystemInit(): initialisation du l’horloge de système.
• SystemCoreClockUpdate():mise à jour de fréquence
d’horloge de microcontrôleur.
GroupedefichiersFichiersajouter
STM32F4-Discovery_FW_V1.1.0LibrariesCMSISSTSTM32F4xxSourceTemplatesiar
Etape2: Ajout des fichiers pilotes (3/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
36
37. Le 2éme groupe est « STM32F4-discovery » : ce dossier va contenir les
Fichiers pilotes des périphérique de la carte stm32f4-discovery (les buttons,
DAC audio, les 4 LED, le microphone et accéléromètre).
GroupedefichiersFichiersajouter
STM32F4-Discovery_FW_V1.1.0UtilitiesSTM32F4-Discovery
Etape2: Ajout des fichiers pilotes (4/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
37
38. Le 3éme groupe est « STM32F4xx_StdPeriph_Driver» : ce dossier va contenir
les Fichiers pilotes des périphériques internes au microcontrôleur(GPIO,
ADC, TIMEUR, EXTI …).
GroupedefichiersFichiersajouter
STM32F4-Discovery_FW_V1.1.0LibrariesSTM32F4xx_StdPeriph_Driversrc
Etape2: Ajout des fichiers pilotes (5/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
38
39. Le 3éme groupe est « user» : ce dossier va contenir
les Fichiers d’implémentation de l’application.
GroupedefichiersFichiersajouter
STM32F4-Discovery_FW_V1.1.0LibrariesCMSISSTSTM32F4xxSourceTemplates
useful_files_STM32F4
NB: le fichier main doit être placer dans le dossier user
Etape2: Ajout des fichiers pilotes (6/6)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
39
40. Etape3: configuration du projet.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
40
41. Configuration du projet (1/4)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
Choisir la référence du microcontrôleur
CMSIS:
Cortex
Microcontroleur
Software
Interface
Coucher la case « Use CMSIS»
41
42. Configuration du projet (2/3)
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
1. $PROJ_DIR$: variable signifie le dossier qui contient le projet.
contient la bibliothèque d’interruption.
2. STM32F4-Discovery_FW_V1.1.0LibrariesCMSISInclude
contient les bibliothèques de processeur cortex m4
3. STM32F4-Discovery_FW_V1.1.0LibrariesCMSISSTSTM32F4xxInclude
4. STM32F4-Discovery_FW_V1.1.0LibrariesSTM32F4xx_StdPeriph_Driverinc
contient les bibliothèques des périphériques de µC STM32F407vg
5. STM32F4-Discovery_FW_V1.1.0UtilitiesSTM32F4-Discovery
contient les bibliothèques des périphériques de la carte stm32f4-discovery.
• USE_STDPERIPH_DRIVER:
définir ce symbole pour facilité la manipulation des
périphériques.
• STM32F4xx:
définir ce symbole pour facilité la manipulation des
registre du processeur via des fonctions prés
préparer par ST. 42
43. Configuration du Link Configuration du Downlod:
1. Activer l’option « verify downlod ».
2. Activer l’option « use flash loder(s) ».
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
Configuration du projet (3/4)
43
44. Il faut activer le driver du programmateur st-link
Dans les options du débogueur.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
Configuration du projet (4/4)
44
45. Création du nouveau projet terminée
Et voila notre environnement est prêt pour la programmation
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet
45