0% ont trouvé ce document utile (0 vote)
163 vues8 pages

STM32 Et GPIO

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1/ 8

Le microcontrôleur

STM32 :
Un cœur ARM
Cortex-M3
1 Introduction
La famille des microprocesseurs STM32 de ST Microélectroniques fournit une vaste gamme
de périphériques autour d’un cœur d’ARM Cortex-M3 [CortexM3], allant du simple GPIO
(port d’entrée-sortie généraliste) et interface de communication série synchrone (SPI) ou
asynchrone (RS232) aux interfaces aussi complexes que l’USB, Ethernet ou HDMI. Un
point remarquable est qu’un certain nombre de ces processeurs possèdent deux
convertisseurs analogique-numériques, permettant un ´échantillonnage simultané de deux
grandeurs analogiques. Cadence sur un résonateur interne ou sur un quartz externe haute
fréquence 8 MHz (multiplié en interne au maximum `a 72 MHz), ce processeur est
compatible pour des applications faibles consommations (section 9) avec un mode veille dont
le réveil s’obtient par une condition sur une horloge interne ou une interruption externe. La
multiplicité des horloges et leur utilisation pour cadencer les divers périphériques est
d’ailleurs un des aspects les plus d´déroutant dans la prise en main du STM32.

2 Architecture du processeur – implémentation d’un circuit


Le lecteur d´essieux de simplement exploiter un circuit commercialement disponible devrait
pouvoir travailler sur le circuit STM32H103.
Pour notre part, nous nous proposons d’exploiter un circuit d´Eddie, spécifiquement d
´enveloppe en vue d´émuler le port parallèle d’un PC, fournissant ainsi accès `a la majorité
des signaux utiles mais surtout illustrant le peu de composants annexes n´nécessaires au
fonctionnement de ce microcontrôleur : un quartz 32,768 kHz, ´éventuellement un quartz 8
MHz, et des condensateurs de découplage aux 4 coins pour filtrer l’alimentation (Fig. 1 et 2).
Ce circuit comporte par ailleurs un convertisseur USB-RS232 pour fournir une interface
communément disponible sur tout PC récent. Nous verrons deux applications de cette carte,
dans un cas pour ´émuler le comportement du port parallèle d’un PC pour le contrôle d’un
instrument (section 5), et, plus ambitieux, la réalisation d’une station de mesure
météorologique (section 8).
Figure 1 – Exemple de circuit exploitant le STM32 (schéma). Le quadruple-amplificateur
opérationnel (en bas à droite) protège 4 voies de conversion analogique-numérique et ajoute
une tension constante permettre la mesure de signaux de valeur moyenne nulle. Une carte SD
est connectée sur bus synchrone SPI (en bas à gauche). Un régulateur linéaire (en haut à
droite) permet l’alimentation de ce circuit sur le bus USB qui sert aussi à la communication au
travers d’un convertisseur RS232-USB FT232.

Figure 2 – Exemple de circuit exploitant le STM32 (implantation des composants).


Application pratique
Les premiers exemples nous ont permis de découvrir le STM32, de comprendre comment
générer un binaire et de programmer le microcontrôleur. Cependant, cette compréhension est
en somme relativement basique : nous savons certes comment manipuler des GPIOs, nous
avons un mécanisme d’attente précis et une solution pour communiquer avec l’extérieur, mais
par rapport aux périphériques disponibles sur ce microcontrôleur, cette première découverte
n’est en somme qu’un “amuse-bouche”, tout reste à faire en pratique.

Figure 5 – Vue intérieure de la station et installation en extérieur. La liaison sans fil avec
l’ordinateur chargé de placer les informations recueillies sur le web se fait par Bluetooth.
GPIO
DE
STM32
STM32 GPIO
Les broches du microcontrôleur peuvent avoir plusieurs fonctions, c'est le cas par exemple des
broches du port série 2 qui se superposent aux GPIO PA_2 et PA_3. Ces derniers ne sont
donc pas utilisables comme GPIO si le port série est activé.
Chaque pins des STM32 est multiplexée : on peut choisir en software sa fonction parmi :
• entrée numérique (0V ou 3.3V) lisible en soft
• sortie numérique (0V ou 3.3V) contrôlable en soft
•fonction analogique (ADC/DAC)
• fonction alternative (E/S des périphériques).

Schéma de principe d’une entrée/sortie

La hiérarchie des horloges STM32 :


• La source principale de temps est un oscillateur externe (HSE, un quartz) ou interne (HSI,
un oscillateur RC).
• Toutes les horloges internes de tous les périphériques sont dérivées de celles-ci par des
circuits PLL : système harmonique
• Sur notre carte l’oscillateur externe n’est pas soudé, donc on utilise l’oscillateur RC intégré

GPIO : Les registres d’état


Chaque GPIO peut maintenant servir d’entrée sortie générique :
IDR état des entrées (lecture seule)
ODR état des sorties (écriture seule)
BRR, BSRR écriture bit-à-bit de l’état des sorties (voir plus loin)
(cf. refman pp. 237–240)
CMSIS
Pour GPIOA, ces registres s’appellent :
GPIOA->IDR
GPIOA->ODR
GPIOA->BRR
GPIOA->BSRR

Conclusion
Cet ensemble de mises en œuvre nous a permis de se faire une bonne idée de la manière
d’exploiter le STM32 et de configurer les périphériques. Il est ainsi possible de constater que
pour un périphérique donné une partie est totalement liée à celui-ci (activation de l’horloge
pour le périphérique et pour le port, configuration des broches, etc...). Une seconde partie de
la configuration/utilisation se base sur des registres indexés par l’adresse du périphérique.
Cette partie pourra donc être facilement incluse dans un module utilisable par tous les
périphériques d’un même type.

Vous aimerez peut-être aussi