Vous êtes sur la page 1sur 46

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
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
Introduction aux microcontrôleurs 1.1 Qu'est-ce qu'un microcontrôleur ? (1/2)

Bus de communication

= + +
Mémoire microprocesseur périphériques d'entrée
Un microcontrôleur sortie

Gravé sur la même puce 3


Introduction aux microcontrôleurs 1. Qu'est-ce qu'un microcontrôleur ? (2/2)

Microcontrôleur Architecture de base

4
Introduction aux microcontrôleurs 1.2 Caractéristique d’un microcontrôleur

• Faible consommation
• Bas coûts
• Dimension réduite
• Mémoire de taille limitée
• Faible vitesse de fonctionnement.

5
Introduction aux microcontrôleurs 1.3 Fonctionnement d’un microcontrôleur

6
Introduction aux microcontrôleurs 1.5 Programmation de microcontrôleur

Fichier binaire ou hexadécimal

contenue des registres


Ordinateur
Programmateur: interface de
programmation et du débogage

7
Microcontrôleur
2. Le monde des applications basées sur un
microcontrôleur 2.1 Domaine d’automobile

• Calcule de vitesse

• Mesure de température

• Contrôle des medias

Ordinateur de bord des voitures 8


2. Le monde des applications basées sur un
microcontrôleur 2.2 ROBOTIQUE

NAO ROBOT KUKA robot: robots utiliser pour l’assemblage des voitures

9
2. Le monde des applications basées sur un
microcontrôleur 2.3 DOMOTIQUE

• pilotage des volets, portes,


lampes via un smart phone

• Régulation automatique de
température

• Détection des fuites d’eau et


coupures électriques

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 10
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
3. Familles de microcontrôleurs 3.1 exemples des familles

12
3. Familles de microcontrôleurs 3.2 La famille stm32

13
3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg

14
3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg

Caractéristique du microcontrôleur stm32f407vg

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 1.8 V to 3.6 V
fonctionnement
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
15
3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg

STM32f407VGt6
STM32F407vgt6 pinout
16
3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg

STM32F4xx Block Diagram


CORTEX-M4 AHB2 (max 168MHz)
D-bus Encryption**
CPU + FPU +
MPU I-bus

Flash I/F
512kB- 1MB Camera Interface
168 MHz

ARM ® 32-bit multi-AHB bus matrix


Flash Memory
S-bus
USB 2.0 OTG FS
128KB SRAM
JTAG/SW Debug External Memory Power Supply
ETM Interface Reg 1.2V

Arbiter (max 150MHz)


POR/PDR/PVD
Nested vect IT Ctrl USB 2.0 OTG
FS/HS XTAL oscillators
1 x Systic Timer 32KHz + 8~25MHz
Ethernet MAC
DMA 10/100, IEEE1588 Int. RC oscillators
16 Channels 32KHz + 16MHz

Bridge APB1 (max 42MHz) PLL


Clock Control AHB1
RTC / AWU
(max 168MHz)
5x 16-bit Timer
51/82/114/140 I/Os
Bridge 4KB backup RAM
2x 32-bit Timer
2x6x 16-bit PWM
Synchronized AC Timer 2x DAC + 2 Timers
2x Watchdog
APB2 (max 84MHz)

(independent & window)


3 x 16bit Timer 2x CAN 2.0B

Up to 16 Ext. ITs 1x SDIO


2 x SPI / I2S
3x 12-bit ADC
1 x SPI 24 channels / 2Msps 4x USART/LIN

2 x USART/LIN Temp Sensor 3x I2C 17


3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg

system Bus : ARM On-Chip


• AMBA: Advanced Microcontroller Bus Architecture
• AHB: Advanced High-performance Bus  AHB1 & AHB2 (168MHz)
• APB: Advanced Peripheral Bus  AP1 ( 42MHz) & AP2 (84MHz)

18
3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg

Contrôleur des interruptions


Périphérique:
ADC

EXTI 0
DMA
UART
SPI Cœur du
I2C processeur
I2S cortex M4
TIM
USB EXTI 15
DAC

NVIC:
EXTI: Nested
EXTernal Vectored
Interrupt Interrupt
Controller
3. Familles de microcontrôleurs 3.2 La famille stm32f4 STM32f407vg

Périphérique de communication:
CORTEX-M4 AHB2 (max 168MHz)
CPU + FPU +
MPU
168 MHz

Flash I/F
512kB- 1MB
D-bus
Flash Memory Encryption**

ARM ® 32-bit multi-AHB bus matrix


 Up to 15 communication interfaces I-bus
Camera Interface
128KB SRAM
– Up to 3 × I2C interfaces S-bus
JTAG/SW Debug USB 2.0 OTG FS
– Up to 4 USARTs/2 UARTs External Memory
ETM Interface
– Up to 3 SPIs (37.5 Mbits/s),

Arbiter (max 150MHz)


Nested vect IT Ctrl
Power Supply
– 2 × CAN interfaces (2.0B Active) Reg 1.2V
POR/PDR/PVD
– SDIO interface USB 2.0 OTG FS/HS
■ Advanced connectivity 1 xDMA
Systic Timer
XTAL oscillators
32KHz + 8~25MHz
– USB 2.0 full-speed device 16 Channels Ethernet MAC 10/100,
IEEE1588 Int. RC oscillators
– USB 2.0 high-speed/full-speed Bridge APB1 (max 42MHz) 32KHz + 16MHz

AHB1 PLL
device Clock Control (max 168MHz)
– 10/100 Ethernet MAC 5x 16-bit Timer
RTC / AWU

■ 8- to 14-bit parallel camera interface up to 51/82/114/140 I/Os Bridge


4KB backup RAM
2x 32-bit Timer
54 Mbytes/s 2x6x 16-bit PWM
2x DAC + 2 Timers

APB2 (max 84MHz)


Synchronized AC Timer
2x Watchdog
(independent & window)
3 x 16bit Timer 2x CAN 2.0B

Up to 16 Ext. ITs 1x SDIO


2 x SPI / I2S
3x 12-bit ADC
1 x SPI 24 channels / 2Msps 4x USART/LIN

2 x USART/LIN Temp Sensor 3x I2C 20


3. Familles de microcontrôleurs 3.2 La famille stm32f4 La carte STM32F4-discovery

programmateur st link v2

Périphérique extérieur aux µC:


• Microphone
• DAC audio
• Accéléromètre
• Bouton (user/reset) STM32f407VGt6
• USB OTG

STM32f4-discovery 21
3. Familles de microcontrôleurs 3.2 La famille stm32f4 La carte STM32F4-discovery

programmateur st link v2 jumper connection


22
4. Les Outils de développement 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

23
4. Les Outils de développement 4.2 Environnement logiciel 4.2.1 Vue d’ensemble

Atollic True studio

IAR Embedded Workbench


Keil µvision 5 24
4. Les Outils de développement 4.2 Environnement logiciel 4.2.1 Environnement logiciel IAR embedded workbench

Compilation

Workspace
window file Débogage
window

Breakpoint

build window

Code bien
compilé
25
5. Création
4. Structured’un
de projet
nouveau projet 4.3 structure de projet(1/4)

Embedded Workbench ARM:


Contient les fichiers driver du processor de microcontrôleur

26
4. Création d’un nouveau projet 4.3 structure de projet(2/4)

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

27
4. Création d’un nouveau projet 4.3 structure de projet(3/4)

STM32f4xx_stdPeriph_Driver:
Contient les fichiers driver des périphériques internes au microcontrôleur
stm32f407vg

28
4. Création d’un nouveau projet 4.3 structure de projet(4/4)

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.

29
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.


Etape 2: Ajout des fichiers pilotes.
Etape 3: Configuration du projet.

30
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
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.

Projet simple en langage C qui implémente la fonction main

32
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Etape2: Ajout des fichiers pilotes.

33
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Etape2: Ajout des fichiers pilotes. (1/6)

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

34
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Etape2: Ajout des fichiers pilotes (2/6)

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

35
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Etape2: Ajout des fichiers pilotes (3/6)


Groupe de fichiers

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.

STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\ST\STM32F4xx\Source\Templates\iar
Fichiers a jouter

• 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.
36
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Etape2: Ajout des fichiers pilotes (4/6)


Groupe de fichiers

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).
Fichiers a jouter

STM32F4-Discovery_FW_V1.1.0\Utilities\STM32F4-Discovery

37
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Etape2: Ajout des fichiers pilotes (5/6)


Groupe de fichiers

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 …).
STM32F4-Discovery_FW_V1.1.0\Libraries\STM32F4xx_StdPeriph_Driver\src
Fichiers a jouter

38
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Etape2: Ajout des fichiers pilotes (6/6)


Groupe de fichiers

Le 3éme groupe est « user» : ce dossier va contenir


les Fichiers d’implémentation de l’application.
STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\ST\STM32F4xx\Source\Templates
Fichiers a jouter

useful_files_STM32F4\

NB: le fichier main doit être placer dans le dossier user


39
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Etape3: configuration du projet.

40
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Configuration du projet (1/4)

CMSIS:
Cortex
Microcontroleur
Software
Interface

Coucher la case « Use CMSIS»


Choisir la référence du microcontrôleur
41
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Configuration du projet (2/3)

1. $PROJ_DIR$: variable signifie le dossier qui contient le projet.


contient la bibliothèque d’interruption.
2. STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\Include
contient les bibliothèques de processeur cortex m4
3. STM32F4-Discovery_FW_V1.1.0\Libraries\CMSIS\ST\STM32F4xx\Include

4. STM32F4-Discovery_FW_V1.1.0\Libraries\STM32F4xx_StdPeriph_Driver\inc
contient les bibliothèques des périphériques de µC STM32F407vg
5. STM32F4-Discovery_FW_V1.1.0\Utilities\STM32F4-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
42
préparer par ST.
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Configuration du projet (3/4)

Configuration du Link Configuration du Downlod:


1. Activer l’option « verify downlod ».
43
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 (4/4)

Il faut activer le driver du programmateur st-link


Dans les options du débogueur.

44
4. Création d’un nouveau projet 4.4 Création d’un nouveau projet

Création du nouveau projet terminée

Et voila notre environnement est prêt pour la programmation

45
Partie pratique

Résistances
Afficheur LCD 16*4

Stm32f4-discovery Des diodes LED

Afficheur 7 segments
46

Vous aimerez peut-être aussi