Architecture des micro calculateurs
-Étude des microcontrôleurs STM32-
Architecture des micro calculateurs
-Étude des microcontrôleurs STM32-
Chapitre 1
Les Processeurs ARMs
Les microcontrôleurs 32 bits
Un microcontrôleurs:
Les microcontrôleurs 32 bits
Un
microcontrôleu
rs:
Evolution des ventes en % des microcontrôleurs 8, 16 et 32 bits 5
Introduction
Evolution des ventes des cœurs 32 bits pour les applications embarquées
Introduction
-ARM(Advanced Risc Machines): une société UK a été créée en 1990. ARM
conçoit des architectures des processeurs et vend leur licence sous forme
d’IP(intellectual Property).
-Plus de 240 microcontrôleurs basés sur l’architecture ARM existent
disponibles auprès d’une grande variété de constructeurs
-Les fabricants des microcontrôleurs et les processeurs, à base du coeur
ARM, vendent annuellement plus que 2 billions de circuits.
ARM-CORTEX
La famille des ARM Cortex comprend 3 séries :
ARM cortex-A : Applications Processeurs pour des OS et des applications
utilisateurs complexes, supportent le jeu d’instruction ARM, Thumb et Thumb-2
ARM Cortex-R : Processeurs pour les systèmes temps réel, supportent le jeu
d’instruction ARM, Thumb et Thumb-2
ARM Cortex-M : Optimisé pour les application bas-cout, supporte le jeu
d’instruction Thumb-2 uniquement
ARM-CORTEX
ARM-CORTEX
La performance d’une CPU est exprimée en Million d’Instructions Par
Seconde (MIPS) ou Drysthone MIPS (DMIPS). Drysthone est le nom d’un
benchmark très populaire dans les microcontrôleurs. Un benchmark est un
programme de test spécialement conçu pour mesurer les performances d’une
CPU. Plus généralement on exprime cette performance relativement à la
fréquence d’horloge de la CPU cela permet une comparaison entre plusieurs
architectures de CPU. Un autre paramètre important pour les systèmes
embarqués est l’efficacité énergétique exprimée en mW/MHz.
Performance du cœur ARM cortex M3 = 1,25 DMIPS / MHz avec une
efficacité énergétique de 0,19 mW / MHz : haute performance combinée
avec une faible consommation c’est la caractéristique des cortex M3.
Pourquoi le Cortex-M3 ?
• Coût: En effet, le critère primordial qui incitait les développeurs de systèmes
embarqués à opter pour les MCUs 8 bits était le prix. Av ec le Cortex-M3, les prix
des MCUs 32 bits a considérablement baissé et sont pratiquement dans le même
ordre que les MCUs 8 bits.
• Efficacité énergétique: Les MCUs, comme tous les processeurs embarqués et
à usage général, sont connus pour être flexibles au prix d’une consommation
élevée en énergie de l’ordre de 1 à 3 MIPS/mW. Avec Cortex-M3, on atteint une
efficacité de 12,5 MIPS/mW (figure). En plus, il supporte des modes basse
consommation et permet une activation sélective des périphériques à utiliser.
Efficacité énergétique ( en
MIPS/mW ) pour
différentes plateformes
embarquées
Pourquoi le Cortex-M3 ?
• Performance: Avec une capacité de traitement de 12,5 DMIPS et une fréquence
de fonctionnement qui peut atteindre la valeur de 275 MHz, les performances du
CortexM3 dépassent largement celles des architectures 8 et 16 bits (figure).
•Utilisation optimale de la mémoire: Grâce à l’utilisation de la technologie
Thumb-2 qui permet l’utilisation simultanée d’instructions 16 et 32 bits, une
meilleure densité du code est obtenue relativement aux autres architectures.
Comparaison de la densité du code du Cortex-M3par rapport à d’autres architectures
Introduction sur le Microcontrôleur STM32:
Etude de la carte STM32F407-Discovery.
Les architectures ARM sont des architectures de type RISC 32
bits (ARMv1 à ARMv7) et 64 bits (ARMv8) développées par ARM Ltd
depuis 1983.
ARM est connu pour ses systèmes sur une puce (SoC), intégrant
sur une seule puce : microprocesseur, processeur graphique (GPU),
DSP, FPU, et contrôleur de périphériques. Ceux-ci sont présents dans la
majorité des Smartphones et tablettes.
Une particularité des processeurs ARM est leur mode de vente. En effet,
ARM Ltd. Ne fabrique ni ne vend ses processeurs sous forme de circuits
intégrés. La société vend les licences de ses processeurs de manière qu'ils
soient gravés dans le silicium par d'autres fabricants.
Aujourd'hui, la plupart des grands fondeurs de puces proposent de
l'architecture ARM.
La famille desARM Cortex:
ARM architecture qui spécifie (notamment) un jeu d‘instructions RISC,
l‘organisation de la mémoire, modèle d‘exécution. . .Différentes versions du
standard :ARMvX-M,
Cortex Famille de cœurs physiques vendus aux fabricants de silicone
- Cortex-Apour Application (ex : Smartphones)
- Cortex-R pour Real-time (temps d‘exécution déterministe)
- Cortex-M pour eMbedded (faible consommation)
M0+ Architecture: ARMv6-M (pipelines 2 étages), petit et pas cher
M3 Architecture: ARMv7-M, (pipelines 3 étages), plus d‘instructions par
rapport M0/M0+
M4 Architecture: ARMv7E-M (pipelines 3 étages), , FPU, DSP
M23 Architecture: ARMv8-M (pipelines 2 étages), DSP, plus des instructions
de division d'entier, plus des fonctionnalités de sécurité.
Licences Cortex-M4:Atmel, STMicroelectronics, NXP, Texas Instruments
Cortex-M4: Trois étages
La famille STM32
Les puces
STM32 sont regroupées
dans des différentes
séries; tel que
séries F, série L,
Série H, série Wl,
Les puces STM32
basées sur les
processeurs, tels que le
Cortex-M7F, le Cortex-
M4F, le Cortex-M3,
Cortex-M0+, ou le Cortex-
M0.
La famille des MCU STMicroelectronics STM32:
STM32L0 Cortex M0+, 32MHz, 8Ko SRAM, 32-64Ko flash
STM32F1 Cortex M1, 24-72MHz, 4-96Ko SRAM, 16-1024Ko flash
STM32F3 Cortex M4 + FPU, 72MHz, 16-40Ko SRAM, 64-256Ko flash
STM32F4 Cortex M4 + FPU+DSP, 84 à 180 MHz, 192-384Ko SRAM, 256Ko-
2Mo flash
STM32F7 ARM Cortex-M7F, 216MHz, 512-1024Ko SRAM, plus de 2 Mo
Flash
Chaque famille contient divers périphériques (E/S, calcul, . . .) :
- 2xADC multiplexé, 2xDAC 12/16 bits
- USART, SDIO, I2C, SPI, USB, . . .
- EEPROM, flash, ROM.. .
- DMA, timers, watchdogs, RTC, etc,,,
Les différentes séries de microcontrôleurs 32 bits de la marque
STMicroelectronics possèdent une référence sur 7 caractères:
Famille : STM32 = famille de microcontrôleur basé sur les processeurs ARM
Cortex-M 32-bit
Type : F = Mainstream ou High performance | L = Low Power | H = High
performance | WB/WL = Wireless
Modèle du processeur : 0 = M0 | 1/2 = M3 | 3/4 = M4 | 7 = M7
Performance: Cette caractéristique représente la vitesse d'horloge (MHz), la
RAM et les entrées et sorties. Elle est codée sur 2 chiffres.
Nombre de Pins : F = 20 | G = 28 | K = 32 | T = 36 | S = 44 | S = 44 | C = 48
| R = 64-66 | V = 100 | Z = 144 | I = 176
Taille mémoire flash (en KByte) : 4 = 16 | 6 = 32 | 8 = 64 | B = 128 | C = 256 |
D = 384 | E = 512 | F = 768 | G = 1024 | H = 1536 | I = 2048
Par exemple: le STM32F429ZIT6 (à lire STM-32-F-4-29-Z-I-T-6) est un
microcontrôleur de la compagnie STM de 32 bits mainstream équipé d'un
CORTEX-M4, 180 Mhz, 144 I/O, 144 pins, 2048 KBytes, un package
LQFP et une température de fonctionnement allant de -40°C à 85°C.
La série des STM32F4:
STM32F4 plusieurs sous-familles :
Lignes avancées:
CPU 180 MHz/225 DMIPS, jusqu’à 2 Mo de mémoire Flash dual-banc
avec SDRAM et Chrom-ART Accelerator
STM32F469/479 – Interface Quad-SPI, contrôleur LCD-TFT et interface
MIPI-DSI
STM32F429/439 – Contrôleur LCD-TFT
STM32F427/437 – interface audio série, plus de performances et moins de
consommation d‘énergie statique,
Foundation lines:
STM32F446 – 180 MHz/225 DMIPS, jusqu‘à 512 Ko de mémoire Flash
avec deux interfaces Quad-SPI et SDRAM
STM32F407/417 – CPU 168 MHz/210 DMIPS, jusqu’à 1 Mo de
mémoire Flash ajoutant interface Ethernet et interface caméra.
STM32F405/415 – CPU 168 MHz/210 DMIPS, jusqu‘à 1 Mo de
mémoire Flash avec connectivité et cryptage avancés
Interface Dual-SPI Interface Quad-SPI
Le cœur du STM32F4 est un cœur ARM-Cortex M4 supportant 16 registres.
Le ARM-Cortex M4 supporte le jeu d‘instruction Thumbs-2 et les
instructions peuvent être exécutées sur des variables de 8 bits (octet), 16bits
(mot) ou 32bits (double mot).
Les registres Bas (r0 à r7) sont des registres tout usage disponibles pour toutes
les instructions, quelles soient encodées sur 16 bits ou sur 32 bits.
Les registres hauts sont aussi des registres tout usage disponibles uniquement
pour les instructions 32 bits.
Densité de code
La densité du code fait référence au nombre d'instructions du microprocesseur
nécessaires pour effectuer une action demandée et à l'espace occupé par chaque
instruction.
De manière générale, moins une instruction prend de place et plus un
microprocesseur peut effectuer de travail par instruction, plus son code est dense.
Avec les instructions de 16 bits le code sera réduit 60-65% en espace par rapport
au instructionARM.
Performance
Traitent des données et des instructions sur 32 bits.
Des instructions ont été introduites pour permettre de faire des opérations
arithmétiques/logique seulement sur 32 bits (qui se déroulent en un cycle horloge).
• Floating point unit (FPU): Une unité à virgule flottante (FPU) est la
partie de l'unité de traitement d'un ordinateur qui lui permet d'effectuer des
calculs à virgule flottante. Les nombres à virgule flottante contiennent des
fractions ou des points décimaux, tels que 8,565 et 0,0158, et les
opérations qui les comprennent sont appelés « calculs à virgule flottante ».
Ces calculs peuvent aller de simples, tels que l'addition et la multiplication
ou des calculs trigonométriques et exponentiels à des pour des processus
complexe.
• Memory Protection unit (MPU): est un composant
permettant de contrôler les accès qu'un processeur fait à la mémoire
d‘un système microinformatique (ordinateur) dans lequel il est placé.
• Digital Signal Processor (DSP): Un DSP ou un processeur
de signal numérique est un microprocesseur optimisé pour exécuter des
applications de traitement numérique du signal (filtrage, extraction de signaux,
etc.) le plus rapidement possible et en temps réel.
• Nested Vectored Interrupt Controller (NVIC): c‘est un contrôleur
d‘interruption qui relie toutes les sources d‘interruptions possibles (Ext, Timer,
USART, etc,,). Lorsqu‘une interruption est reçue par le NVIC, celui-ci envoie
au microcontrôleur un signal d‘interruption (IRQ) et le numéro de
périphérique qui a généré l‘interruption (IRQ_id). Le microcontrôleur
interrompt le programme en cours et exécute la routine d‘interruption
correspondante.
La carte STM32F407- discovery
La carte STM32F407- discovery
Un ST-LINK/V2 intégré
Alimentation de la carte :
— par cable USB,
— par alimentation externe : 3 V ou 5 V.
Un accéléromètre à 3 axes ST MEMS LIS3DSH. Un capteur audio (microphone) digital
omnidirectionnel ST MEMS MP45DT02.
Un DAC audio avec amplificateur de classe D intégré
Huit LEDs :
— LD1 (rouge/vert) pour la communication USB,
— LD2 (rouge) pour la mise sous tension 3.3 V,
— Quatre LEDs Utilisateur :
- LD3 (orange), LD4 (vert), LD5 (rouge) et LD6 (bleu); à partir de la broche PD12 / PD15.
— 2 LEDs USB OTG (USB On-The-Go) :
- LD7 (vert) VBUS,
- LD8 (rouge) surintensité.
Deux boutons-poussoirs (utilisateur (PA0) et réinitialisation).
Interface USB OTG avec connecteur micro-AB.
En-têtes d’extension pour les E/S pour une connexion rapide à la carte
La carte STM32F4
Discovery est conçue autour
du microcontrôleur
STM32F407VGT6 dans un
boîtier (package) LQFP à
100 broches.
La figure suivante illustre les
connexions entre le
STM32F407VGT6 et les
périphériques ( STLINK/V2,
boutons poussoirs, LEDs,
Audio DAC, USB,
accéléromètre ST MEMS,
microphone ST MEMS et
connecteurs).
Le ST-LINK/V2 embarqué
Le ST-LINK/V2 est intégré à la carte STM32F4Discovery comme outil de
programmation et de débogage. Le ST-LINK/V2 intégré ne prend en charge que
les SWD (Serial Wire Debug) pour les périphériques STM32.
Il existe deux façons différentes d’utiliser le ST-LINK/V2 (ou V2-1) intégré en
fonction des états des cavaliers du connecteur CN3 (voir table) :
— programmer/déboguer le STM32 qui équipe la carte STM32F4Discovery elle
même,
— programmer/déboguer un STM32 sur une carte de développement externe, en
utilisant un câble connecté au connecteur SWD.
Utilisation de ST-LINK/V2 pour programmer/déboguer le STM32F4 à bord
Pour programmer le STM32F4 à bord, il suffit de brancher les deux cavaliers sur
le CN3, mais n’utilisez pas le connecteur CN2 car cela pourrait perturber la
communication avec le STM32F407VGT6 du STM32F4DISCOVERY.
Alimentation et sélection de l’alimentation
L’alimentation est fournie soit par le PC hôte via le câble USB, soit par une
alimentation externe de 5V.
Les diodes D1 et D2 protègent les broches 5V et 3V des alimentations externes :
— Les broches 5V et 3V peuvent être utilisés comme alimentations de sortie
lorsqu’une autre carte est connectée aux broches P1 et P2.
Dans ce cas, les broches 5V et 3V fournissent une alimentation 5V ou 3V et le
courant électrique doit être inférieure à 100 mA.
— 5V peut également être utilisé comme alimentation d’entrée. C’est par
exemple le cas lorsque le connecteur USB n’est pas connecté au PC.
Les LEDs
— LD1 (COM) : l’état par défaut de la LD1 est rouge. LD1 passe au vert pour
indiquer que des communications sont en cours entre le PC et le ST-LINK/V2.
— LD2 (PWR) : la LED rouge indique que la carte est alimentée.
— LD3 : la LED orange est une LED Utilisateur connectée à la broche d’E/S
PD13 du C.
— LD4 : la LED verte est une LED Utilisateur connectée à PD12.
— LD5 : la LED rouge est une LED Utilisateur connectée à PD14.
— LD6 : la LED bleue est une LED Utilisateur connectée à PD15.
— LD7 : la LED verte indique que le VBUS est présent sur le CN5 et est
connectée à PA9.
— LD8 : la LED rouge indique une surintensité du VBUS du CN5 et est
connectée à PD5.
Boutons poussoirs
— B1 User : Ce bouton Utilisateur et de Réveil (Wake-up) est connecté à la
broche d’E/S PA0 du STM32F407VGT6.
— B2 Reset : Le bouton-poussoir relié à la broche NRST sert à réinitialiser le
STM32F407VGT6.
Capacité audio embarquée
Le C STM32F407VGT6 utilise un DAC audio (CIRRUS CS43L22) pour émettre
des sons via le connecteur mini-jack audio. Le uC commande le DAC audio via
l’interface I2C et traite les signaux numériques via une connexion I2S ou un
signal d’entrée analogique.
Le son peut venir indépendamment des différentes entrées :
— le microphone ST MEMS (MP45DT02),
— le connecteur USB : à partir d’un support de stockage de masse externe tel
qu’une clé USB, un disque dur USB, ...
— la mémoire interne du C STM32F407VGT6.
L’USB OTG
Le connecteur USB micro-AB (CN5) permet à l’utilisateur de connecter un
composant hôte ou périphérique, comme une clé USB, une souris, etc. Deux LED
sont dédiées à ce module :
— LD7 (LED verte) indique quand VBUS est actif,
— LD8 (LED rouge) indique une surintensité engendrée par le périphérique
connecté.
Capteur de mouvement (ST MEMS LIS3DSH)
Un capteur de mouvement comprend un élément de détection et une interface
de circuit intégré capable de fournir l’accélération mesurée au monde extérieur
par les interfaces série I2C/SPI.
Le capteur de mouvement LIS3DSH (U5 sur la carte, entre les boutons User et
Reset) est un accéléromètre linéaire à trois axes ultra-compact à faible
consommation.
Le LIS3DSH a une échelle de ±2g/±4g/±6g/±8g/±16g dynamiquement
sélectionnable et il est capable de mesurer l’accélération avec un débit de sortie
de 3.125 Hz à 1.6 kHz. Le C STM32F407VGT6 commande ce capteur de
mouvement via l’interface SPI.
JP1 (Idd)
Le cavalier JP1 (Idd), permet de mesurer le courant traversant le
STM32F407VGT6 en enlevant le cavalier et en branchant un ampèremètre à la
place.
— Cavalier monté : le STM32F407VGT6 est alimenté (par défaut).
— Cavalier retiré : un ampèremètre doit être connecté pour mesurer le courant
dans le uC STM32F407VGT6 (S’il n’y a pas d’ampèremètre, le uC n’est pas
alimenté).
1- Les Broches E/SGPIO
La carte STM32F407- discovery dispose de 100 broches répartis comme suit:
8 Broche GND.
2 Broche 5V.
2 Broche 3V.
2 Broches VDD (2-3,6v)
5 port E/S: A, B, C, D et E; chaque port contient 16 broches.
6 Broches: autre: NRST, VBAT, etc,,
2- Les Périphériques internes
-Modes de sommeil, d’arrêt et de standby (Watchdog),
-RTC avec précision inférieure à la seconde et calendrier matériel.
-Régulateur d’alimentation 5v to 3,3v,
-Trois ADCs 12 bits (résolution max),
-Deux DACs 12bits
-Jusqu’à 14 minuteries (Timers) - Jusqu’à 12 minuteries 16-bits, - 2
minuteries 32-bits - Opère en compteur interne, compteur d’horloge,
PWM, comparateur, etc,,.
- Jusqu’à 15 interfaces de communication: 3 interfaces I2C, 4 interfaces
USARTs, 2 UARTs, 3 interfaces SPIs, 2 Interfaces CAN, 1 interface SDIO ,
- Connectivité Avancée : USB 2.0 full-speed (12 Mbps), USB 2.0 high-speed
(480 Mbps), Ethernet avec DMA dédié ,Interface parallèle pour caméra 8 à
14 bits,
3- Les
Périphériques
internes
STM32F4-périphériques-
RCC Reset and Clock Control
PWR Power control
GPIO General Purpose Input Output
EXTI External Inetrrupt
RTC Real Time Clock
WDG watchdog
SPI Serial Peripheral Interface
I2C Inter-Integrated Circuit
DMA Direct Memory Manager
Flash Embedded Flash memory
TIM Advanced-control Timers
ADC Analog-to-Digital Converter
DAC Digital -to-AnalogConverter
STM32F4
Architecture Interne: l’horloge
- IL existe 2 types de source d‘horloge:
- Oscillateur interne:
HSI: High Speed Internal Clock avec une fréquence fixe de 16 MHz
(Oscillateur RC, utilisée pour le système d‘horloge).
LSI: Low Speed Internal Clock avec une fréquence fixe de 32KHz (Oscillateur
RC, Horloge utilisée pour le Watchdog et le RTC(real time clock)).
- Oscillateur externe:
HSE: High Speed External Clock avec une fréquence allant de 4 vers 26 MHz
(résonateur céramique /Quartz), ou bien en utilisant un oscillateur externe allant
jusqu‘à 50MHz (pin PH0), utilisée pour le système d‘horloge et le RTC.
LSE: Low Speed External Clock avec une fréquence fixe de 32KHz (résonateur
céramique/ quartz externe), ou bien en utilisant un oscillateur externe (pin PC14),
utilisée pour le RTC.
Sysclock (system Clock): Horloge de système utilisée pour alimenter toute la
puce, elle provient de l’horloge externe tel que HSE ou HSI.
HCLK (High speed Clock): utiliser pour l’alimentation de processeur (cortex),
la Bus AHB, les mémoires et le DMA. Cette horloge peut avoir une pré-division
par rapport à l’horloge système. La valeur de cette fréquence HCLK et FCLK
définissent le temps de cycle processeur (tc=1/Fp) ,
FCLK (Free running processor Clock): Horloge de processeur libre synchrone
avec la bus HCLK, utilisée pour échantillonner les interruptions et synchroniser
les blocs de débogage. FCLK garantit que les interruptions peuvent être
échantillonnées et que les événements de veille peuvent être tracés pendant que
le processeur est en veille.
PCLK (Periphereal Clock): Horloge de périphérique utiliser pour alimenter les
périphériques à travers les BUS APB1 et APB2.
TimClk (Timer clock): c’est l’horloge utilisée pour les timer sur APB1 et
APB2.
Systick (Cortex system timer): c’est l’horloge intégrée au core cortex ARM
utilisée pour générer des interruptions à un intervalle fixe du temps.
Mémoire ‘Mapping‘ Flash: 1Mo
SRAM1:112Ko
SRAM2: 16Ko
CCM: 64Ko
Les adresses 32 bits prennent en charge
4 Go d'espace
Le code, les données et les E/S
partagent le même espace mémoire
Les types de données sont des octets,
des mots et double mots
Le code sur puce, les données
et les E/S se trouvent
dans les premiers 1,5 Go d'espace
mémoire,
Chacun se voit allouer 0,5 Go,
Peut utiliser des bus physiquement
séparés pour chaque espace,
1 Go réservé pour chacun des données hors
puce et des périphériques hors puce.
Le bus mémoire hors puce nécessite
de nombreuses broches.
Le temps d'accès à la mémoire hors puce est
généralement plus lent et consomme plus
d'énergie.
La mémoire périphérique privé occupe 1 Mo d'espace,
Les registres qui contrôlent les périphériques
qui sont une partie obligatoire de l'architecture
Cortex-M sont mappés ici:
- Contrôleur d'interruptions vectorielles imbriquées (Nested
Vectored Interrupt Controller: NVIC)
- Minuterie de tick système (System Tick Timer: Tick Sys),
- État de défaut contrôle
- Débogage du processeur
Vendor specific sont des parties de la mémoire
accessible que par les constructeurs de processeur
(Core ARM)
STM32F4
Modes basse consommation: la STM32 prend en charge trois modes basses
consommations pour atteindre le meilleur compromis entre faible consommation
d'énergie, à court temps de démarrage et de réactivation de la source.
• Sleep mode: (mode veille), seul le CPU est à l'arrêt. Tous les périphériques
continuent de fonctionner et peut réveiller le CPU quand une interruption ou un
événement se produit.
• Stop mode: réalise la plus faible consommation de puissance tout en conservant
le contenu de SRAM et des registres. Toutes les horloges dans le domaine 1,8 V
sont arrêtés, le PLL, le HSI RC et les oscillateurs à cristaux HSE sont désactivés.
Le régulateur de tension peut aussi être mis soit en mode normal ou en mode de
faible puissance.
• Standby mode: utilisé pour atteindre la plus faible consommation de puissance.
Le régulateur de tension est éteint. Le PLL, le HSI RC et les oscillateurs à quartz
HSE sont également éteint.
Après être entré en mode veille, la SRAM et le contenu du registre sont perdues,
sauf pour les registres de sauvegarde La mode de l'appareil sort de veille quand
une remise à zéro externe, une réinitialisation IWDG, un front montant sur la
broche WKUP, ou une alarme RTC se produit.
STM32F4
DMA (Direct Memory Access)
Des données peuvent être échangées entre la mémoire centrale et les circuits
périphériques sans intervention du CPU pour alléger son fonctionnement. Le DMA
(en français, Accès Direct à la Mémoire), un sous-système indépendant du CPU, va
transférer les données du périphérique vers la mémoire (entrée), de la mémoire vers
le circuit périphérique (sortie), entre mémoires ou entre périphériques. Le DMA
peut être utilisé avec les principaux périphériques: SPI, I2C, ADC,USART, toutes les
minuteries et les ADC..
RTC (horloge temps réel) - registres de sauvegarde
La carte STM32 possède dix registres de sauvegarde de 16-bit utilisés pour stocker
les données de l'application utilisateur lorsque la puissance DMV n'est pas présente.
L'horloge temps réel fournit un ensemble de compteurs fonctionnant en
permanence, qui peuvent être utilisés avec un logiciel approprié pour fournir une
fonction de calendrier d'horloge, et une interruption d'alarme.
Le RTC dispose d'un compteur 32 bits programmable pour la mesure à long terme
en utilisant un registre de comparaison pour générer une alarme. Un diviseur de 20
bits est utilisé pour générer une base de temps de 1 seconde à partir d'une horloge à
32,768 kHz.