Vous êtes sur la page 1sur 6

CHAPITRE 1 : INTRODUCTION GENERALE AUX

MICROCONTROLEURS STM32

1. Introduction
Le processeur Stm32 est une famille de microcontrôleurs 32 bits développée par
STMicroelectronics, une société Franco-Italienne. Ces microcontrôleurs sont largement
utilisés dans l'industrie électronique pour créer des applications embarquées.
Le processeur Stm32 offre une puissance de traitement élevée, une grande flexibilité et une
faible consommation d'énergie, ce qui en fait un choix populaire pour de nombreuses
applications.

2. Caractéristiques principales
Les microcontrôleurs Stm32 se distinguent par leurs caractéristiques avancées qui les
rendent adaptés à une large gamme d'applications. Voici quelques-unes de leurs
caractéristiques principales :
a) Architecture 32 bits : Le processeur Stm32 est basé sur une architecture 32 bits, ce
qui le rend capable d'exécuter des instructions plus rapidement et de traiter de
grandes quantités de données.
b) Fréquence d'horloge rapide : Les microcontrôleurs Stm32 sont conçus pour
fonctionner à des fréquences d'horloge élevées, ce qui leur permet d'effectuer des
calculs complexes en peu de temps.
c) Mémoire intégrée : Les microcontrôleurs Stm32 intègrent une mémoire flash pour
le stockage du programme, ainsi qu'une mémoire RAM pour les données
temporaires. Cette mémoire intégrée réduit la nécessité de composants externes
supplémentaires.
d) Interfaces de communication : Les microcontrôleurs Stm32 prennent en charge
plusieurs interfaces de communication, telles que l'UART, le SPI et l'I2C. Cela permet
une communication facile avec d'autres périphériques et modules.
e) Périphériques intégrés : Les microcontrôleurs Stm32 sont dotés de nombreux
périphériques intégrés, tels que des convertisseurs ADC et DAC, des interfaces
PWM, des temporisateurs, des interfaces Ethernet et USB, etc. Ces périphériques
intégrés facilitent le développement d'applications complexes.

3. Architecture
L’architecture de puce ARM du STM32 est connue pour offrir un des meilleurs ratios
performance/efficacité du marché, tout en consommant très peu d’énergie. Ces
architectures ARM ont d’ailleurs pris naturellement possession du marché de la mobilité,
et se retrouve dans une multitude de produits.
La figure 1 donne le schéma de principe d’un microcontrôleur STM32F103, l’un des
tout premiers nés de la famille STM32 :

1
Figure 1

Ce schéma précise l’architecture du Cortex M3, on constate qu’il ne s’agit pas exclusivement
d’un microprocesseur (autrement appelé CPU pour Central Processing Unit) car on y
trouve également :
✓ Le JTAG/SWD pour Joint Test Action Group / Serial Wire Debug (pas de version
française usuelle). Il s’agit d’interfaces (bus) de communication avec les fonctions de
débogage en temps réel intégrées dans le Cortex. Ces circuits rendent les logiciels de
débogage plus performants.
✓ Le SysTick timer (en français : Timer système). C’est un compteur capable de
générer une base de temps précise et régulière, dont les performances sont
normalisées. Il est essentiellement conçu pour cadencer les éventuels systèmes
d’exploitation en temps réel qui pourraient être installés sur le microcontrôleur.
✓ Le NVIC pour Nested Vectored Interrupts Controller (en français : Contrôleur
d’Interruptions Vectorisées et Imbriquées). Ce circuit intégré est chargé de la
gestion des interruptions. Il optimise en particulier la réactivité du système à celles-
ci en leur assignant des priorités et en gérant les situations où plusieurs surviennent
dans un intervalle de temps très court. Le sujet des interruptions est central pour les
microcontrôleurs.

4. ARM Cortex-M 1.1


Les processeurs ARM Cortex se déclinent en une large gamme d’architectures et de
cœurs très populaires dans le monde de l’embarqué. Ils sont regroupés en trois familles
principales :

2
− Le Cortex-A (Application) : C’est une gamme de processeurs développée pour des
tâches nécessitant des calculs complexes. Ces processeurs supportent les jeux
d’instructions ARM, Thumb et Thumb-2.
− Le Cortex-M (eMbedded) : Cette gamme est destinée aux microcontrôleurs qui
nécessitent une faible consommation d’énergie et un bas prix de vente. Cette gamme
supporte seulement le jeu d’instructions Thumb-2.
− Le Cortex-R (Real-time) : Les processeurs de cette gamme offrent de hautes
performances pour les systèmes embarqués temps réel dans lesquels la fiabilité et le
déterminisme sont essentiels. Ils supportent les jeux d’instructions ARM, Thumb et
Thumb-2.

Figure 2

Contrairement aux gammes Cortex-A et Cortex-R, la gamme Cortex-M est un cœur


complet devenu un standard dans le domaine des processeurs. Il s’appuie sur une
architecture système bien définie qui comprend une gestion des interruptions, une
horloge système, un système de débogage et un espace d’adressage mémoire.
L’espace mémoire est divisé en régions distinctes prédéfinies pour le code, les
données, les périphériques et le système. S’appuyant sur une architecture de Harvard,

3
le Cortex-M possède ainsi plusieurs bus, ce qui lui permet d’effectuer des opérations
en parallèle.
Le mode d’accès non aligné aux données lui assure une meilleure utilisation de la
mémoire et un accès plus efficace aux registres des périphériques.
Il est important de noter que Les processeurs conçus par la société ARM ne sont pas
des composants autonomes mais seulement des IP (Intellectual Propreties, propriétés
intellectuelles).
Ce sont les fabricants, tels que STMicroelectronics, qui réalisent des composants
autonomes tels que le STM32 en ajoutant au Cortex-M de la mémoire et des
périphériques après en avoir acheté la licence auprès d’ARM. La figure 1 montre
clairement la relation entre un processeur Cortex-M et son cœur Cortex-M.

5. La gamme Cortex-M
La gamme des Cortex-M se décline en différents modèles :
− Le Cortex-M0/M0+/M1 traite des données d’ordre général ainsi que les tâches
d’entrée-sortie standard.
− Le Cortex-M3 s’occupe de traitements avancés sur les données et de la manipulation
des champs de bits.
− Le Cortex-M4 comprend en plus du Cortex-M3, un module DSP (Digital Signal
Processing, traitement numérique des signaux).
− Le Cortex-M4F comprend, en plus du Cortex-M4, une FPU (Floating Point Unit,
unité à virgule flottante).
− Le récent Cortex-M7 délivre un très haut niveau de performance.

6. Famille STM32
La famille STM32 Actuellement, la famille STM32 se divise en deux grandes
catégories :

− Les STM32Fxx, F pour Fast (rapide), sont utilisés dans les applications qui
donnent priorité à la vitesse d’exécution et dont la consommation en énergie n’est pas
une exigence première.
− Les STM32Lxx, L pour Low power (faible consommation), sont utilisés dans des
domaines où la faible consommation en énergie est prioritaire par rapport à la vitesse
d’exécution de l’application.

En effet, pour aller plus vite on doit consommer plus et, inversement, moins on veut
consommer moins il faut aller vite. Il est donc très difficile, voire impossible, d’avoir
ces deux qualités, vitesse d’exécution et faible consommation, dans un même
microcontrôleur.

4
Figure 3
Chacune des deux grandes catégories STM32Fxx et STM32Lxx se divise elle-même en
séries suivant le Cortex-M choisi (figure 8). Ainsi, un STM32F7 est composé d’un
Cortex-M7 et un STM32L4 d’un Cortex-M4.
Le chiffre après la lettre F ou L ne reflète pas toujours le Cortex-M utilisé ; par exemple,
le STM32F1 est composé d’un Cortex-M3. Il faut alors se référer à la documentation
pour connaître le Cortex-M qui compose le STM32 choisi.

7. Environnement de développement

Afin de programmer et de développer des applications pour les microcontrôleurs Stm32,


un environnement de développement intégré (IDE) est nécessaire. STMicroelectronics
propose son propre IDE appelé "STM32CubeIDE". Cet IDE fournit un certain nombre
d'outils et de fonctionnalités pour faciliter le développement, tels que le débogage en temps
réel, la configuration graphique des périphériques, la génération de code automatique, etc.
En plus de l'IDE, les développeurs peuvent également utiliser d'autres outils tels que "Keil
MDK", "IAR Embedded Workbench" ou "GCC" pour développer des applications Stm32.

8. Langages de programmation

Les microcontrôleurs Stm32 peuvent être programmés dans différents langages, y compris
le langage C, le langage C++ et l'assembleur. Le langage C est le plus couramment utilisé
pour programmer les microcontrôleurs Stm32, car il offre une flexibilité et une simplicité de
programmation.

5
En plus du langage C, il existe également des Framework et des bibliothèques spécifiques
pour Stm32, tels que "STM32Cube HAL" et "FreeRTOS", qui offrent une couche
d'abstraction supplémentaire et facilitent le développement d'applications.

9. Conclusion
En conclusion, ce cours vous a permis de découvrir les concepts de base de cette
plateforme de microcontrôleurs. Vous avez appris comment configurer un projet,
comment utiliser l'IDE et comment communiquer avec le microcontrôleur. Ce cours
constitue une base solide pour la suite de votre apprentissage sur Stm32.

Vous aimerez peut-être aussi