Académique Documents
Professionnel Documents
Culture Documents
microcontrôleurs STM32F5
Programmation d’un système embarqué- ARM CORTEX M4
10/16/2015 7
Définitions générales
0x1FFFFFFF Zone Constructeur
0xE0100000
0xE00FFFFF Périphériques système
(1 MO)
0xE0000000
adressage
code du
nécessaire
0xDFFFFFFF Périphériques Externes Adressage
périphériquesdu
agissant à très
(1 GO)
périphériques
du Cortex-M3
bas niveau :
Un périphérique informatique est un dispositif
0xA0000000 ajoutés
Contrôleur
(Driver)
par le
Stockage du
RAM Externe constructeur
d’interruption,
stockage
Permettre auxdu
du
connecté à un0x9FFFFFFF
système informatique
(1 GO) qui ajoute à ce
données
microcontrôleur
le Timer
code
applications
exécutable
relatives au
dernier des0x60000000
fonctionnalités. intégrant
système,
et
d’utiliser le
le bloc
du données.
code.
0x5FFFFFFF Périphériques Cortex-M3.
de contrôle,
matériel d’uneetc.
(0,5 GO) façon
transparente.
0x40000000
0x3FFFFFFF SRAM
(0,5 GO)
0x20000000
0x1FFFFFFF CODE
(0,5 GO)
0x00000000
8
Ecosystème STM32
Cœur Cortex M3
*Communauté ARM
*Cœur standard
9
Les périphériques du cœur et les périphériques STM32
Les périphériques
• GPIO et AFIO du cœur
• Analog to Digital Converter
• Digital to Analog Converter
• Timers
• Secure Digital Input/Output
• USB Full Speed - Device
• USB Full speed - On The Go
• Controller Area Network
• USART
Les
• SPI
périphériques du
STM32
• I2C
• Ethernet MAC Controller
10/16/2015 10
Les périphériques du cœur
Nested Vectored
System control Memory protection
Interrupt System timer
Controller (NVIC) block (SCB) unit (MPU) la
• améliore
fiabilité du
système en
• C’est l'interface définissant la
• un contrôleur de modèle de • 24-bit mémoire pour les
d'interruption programmeurs au • un système différents attributs
intégré qui prend processeur. d'exploitation régions de
en charge une • il permet temps réel mémoire.
faible latence du l’implémentation , (RTOS) • Il fournit jusqu'à
traitement la configuration et • un simple huit régions
d'interruption. le control du compteur. différentes, et une
système. région
‘background
‘prédéfini
facultatif.
10/16/2015 11
les périphériques STM32
Exemples
Open 103C
Connecting to Connecting to Connecting to
Devolopment
debugger touch screen LCD touch screen LCD
Board
12
Définitions
RS232
DTE:
SPI
DCE:
Ordinateur Modem
Ecran convertisseur
RS485
imprimante RS232 RS485
Protocol de transfert
Spécification de donnée
électrique pour
asynchrone
un
SPI
système multipoints.
Lit le registre interne du
échanger
IL permetdes informations
d’utiliser sous forme
plusieurs
STM32F4.
série sur une distance maximale de 15m
émetteurs
Protocole SPI travaille dans
faciliter différentielle
Liaison l'interconnexion de terminaux
(résultat
le cadre ou STM32F4 est le
(DTE = Data Terminal
est la soustraction Equipment) et
du tensions)
maitre et la carde SD est
de périphériques série
Communication "modems" (DCE =
l’esclave.
Data Circuit Equipment) .
asynchrone.
Plus
utiliser un simple
simple signal.
et économique.
13
Définitions
Protocole?? Communicat
Des PCs
ion
Résultat
Des
périphérique
Série d’étapes s
Notion
maitre/esclave??
Maitre
générer Esclave
l’horloge répondre aux
Sélectionner requêtes du
l’esclave qui maitre
veut le
communiquer
10/16/2015 14
Définitions
Mode synchrone??
Réponse
Exécution
Processus appelant
Processus appelé
Mode asynchrone ??
Processus appelant
Processus appelé
15
3- LES GPIOs
GPI: General Purpose Input Output
Le microcontrôleur STM32F407 dispose de 7 ports d’entrées/sorties (dénommés GPIOA à
GPIOG), partagés avec d’autres périphériques. A chaque port I/O est associé:
- Quatre registres de configuration 32 bits
- Deux registres de données 32bits
- Un registre de 32bits set/reset
- Un registre 32bits de verrouillage
- Deux registres 32bits pour les fonctions secondaire (Alternate function)
Chaque port GPIO possède son propre signal d’horloge et contient des registres de contrôle
qui déterminent le mode de fonctionnement des pins ainsi que des registres permettant de lire
l’état binaire des pins en entrée et d’imposer l’état des pins en sortie.
Ces pins sont également reliés aux différents périphériques du microcontrôleur (USART,
Timer, ..) à travers l’AFIO (Auxiliary Function Input Output). L’AFIO permet de multiplexer
les connexions entre pins et périphériques. Il offre ainsi une flexibilité au niveau du choix du
pin à utiliser pour véhiculer un signal donné. Quand l’AFIO est désactivé, les connexions par
défaut entre pins et périphériques sont établies. Une fois l’AFIO activé, il est possible de
remapper (multiplexer) les pins.
Architecture d’un port GPIO & modes de fonctionnement des
IO
Chaque port GPIO est constitué de :
16 cellules identiques consistant chacune en une circuit électronique connectée à un pin
externe et pouvant être configurée afin de déterminer le sens (Entrée ou sortie) ainsi que les
caractéristiques électriques du pin. Il est à noter que chaque pin d’un port peut être
configuré en entré ou sortie indépendamment des autres pins du même port.
Les IO du STM32 sont de type Five Volt Tolerant (FT), c'est-à-dire qu’ils peuvent
supporter une tension d’entrée de 5V sans dommage ou dysfonctionnement.
Des registres occupant des adresses de la zone BitBanding et pouvant être accédés
comme mots de 32 bits :
Un registre d’entrées (Input Data Register : IDR) de 32 bits. Les 16 bits poids faible
étant utilisés pour la lecture des valeurs logiques issues des 16 pins du port.
Un registre de sorties (Output Data Register : ODR) de 32 bits. Les 16 bits poids
faible étant utilisés pour imposer les valeurs logiques au niveau des 16 pins du port.
Et qu’on veut mettre à 1 les valeurs des bits b14, b13 et b2 qui sont à 0. Dans ce cas, il
suffit d’écrire dans le registre BSRR les bits correspondants ( b14, b13 et b2 ) à 1
indiquant qu’on veut mettre à 1 les bits du registre ODR :
Au départ le registre ODR contient avec la valeur (0x8F0B) et BSRR avec 0x0000 :
Après l’exécution de l’instruction permettant de mettre b14, b13 et b2 de BSRR à 1
De même, si on veut mettre des bits à 0 (exemple : les bits b0, b1 et b15), c’est le
registre de reset BRR qu’on doit utiliser en mettant à 1 les bits correspondants :
La structure de base d'une port I/O
Le mode Analogique
• Permet de lire ou délivrer un signal analogique
• Attention à ne pas appliquer de tension trop élevée ou négative sous peine d’endommager
le microcontrôleur
Les fonctions alternatives des broches des GPIOs :
Permet d’ajouter des fonctionnalités aux broches d’E/S
• Timer
• I2C
• USART
• SPI
• ADC
• USB
• JTAG
• Capteur de température
• Audio PLL (8kHz-192kHz)
•…
Sélection des fonctions alternatives : Le multiplexage
• Chaque broche du MCU est connectée à différents périphériques
• Sélection d’une fonction parmi 16 possibles via les registres GPIOx_AFRL(H)
Rappel :
• Configuration des broches entrées ?
Configurations d'entrée pull up / pull down
Configurations de sortie
Registre GPIOx_OSPEEDR :
- sélection de la vitesse de commutation des sorties
• 4 valeurs possibles (Fmax dépendant de VDD)
-‘00’ Low speed (max [2-8]MHz)
-‘01’ Medium speed (max [12,5-50]MHz)
-‘10’ Fast speed (max [25-100]MHz)
-‘11’ High speed (max [50-180]MHz)
Registre GPIOx_PUPDR : mise en œuvre du pull-up/pull-down
• 4 valeurs possibles :
-‘00’ no pull-up, no pull-down
-‘01’ pull-up
-‘10’ pull-down
-‘11’ reserved
Registres de données des ports• Registres de données d’entrée (accessibles en lecture) :
Pour chaque broche, 4 bits de sélection permettant le pilotage du multiplexeur et donc le choix parmi 16 (24 )
fonctions alternatives (0-15)
Chaque fois qu'une exception matérielle ou logicielle se produit, nécessite une réponse de
cette interruption. En réponse, un appel de fonction se produit et la réponse requise est
exécutée sous la forme d'un morceau de code connu sous le nom de routine de service (SR) ou
de routine de service d'interruption (ISR). Après cet ensemble d'instructions dans le service, le
programme est exécuté et la commande revient au programme principal dans lequel
l'interruption s'est produite.
Une interruption est générée par n'importe quelle source
matérielle ou logicielle.
Le processeur suspend la tâche en cours d'exécution en
réponse à l'interruption.
Après cela, le processeur traite ensuite la routine de
service d'interruption (également appelée gestionnaire
d'interruption) pour traiter l'interruption qui s'est produite.
Le processeur revient alors à la tâche suspendue et reprend
L'espace d'adressage pris en charge par ARM est de 4 Go. Cette carte mémoire est divisée en différentes
sections de mémoire telles que le code, la RAM, le périphérique, la mémoire externe, la région de la
mémoire système.