Microcontrôleurs haute performance de la série STM32G4

La série STM32G4 a été lancée en juin 2019 en tant que mise à niveau de la série F3, offrant des performances et des capacités analogiques-numériques améliorées. Elle présente des améliorations en termes de performances, de périphériques et de sécurité.

À propos du STM32G4

Le microcontrôleur haute performance STM32G4 est une création unique de nouvelle génération de ST, offrant des performances exceptionnelles adaptées à des applications telles que le contrôle de moteurs, les équipements industriels, l'alimentation numérique, le contrôle haut de gamme, etc. Il est doté d'un cœur Cortex-M4 à 170 MHz avec unité à virgule flottante intégrée, unité de multiplication-accumulation à instruction unique, Cordic (calcul de fonctions trigonométriques basé sur le matériel), comparateurs haute vitesse, amplificateurs opérationnels haute vitesse, convertisseurs analogiques-numériques haute vitesse, convertisseurs numériques-analogiques haute vitesse, prise en charge CAN FD, possibilité de mise à niveau en ligne, prise en charge AES et sécurité des informations, USB Type-C PD3.0 intégré, et combine des performances élevées avec une faible consommation d'énergie.

Architecture du STM32G4

La nouvelle architecture du STM32G4 s'inspire de l'ADN général du STM32F3, mais intègre des fonctionnalités innovantes et optimisées pour répondre aux besoins spécifiques de divers marchés. Par exemple, l'intégration d'un accélérateur mathématique améliore considérablement les performances dans les applications de contrôle moteur FOC (Field-Oriented Control). Le CAN FD prend largement en charge les applications d'alimentation numérique dans les environnements industriels. En intégrant davantage de composants analogiques et numériques sur la puce, le STM32G4 peut créer des alimentations plus denses et plus puissantes pour les centres de serveurs et répondre aux besoins des produits grand public économiques nécessitant des solutions d'alimentation numérique. Le STM32G4 ouvre également la voie à de futures conceptions, telles que l'essor des dispositifs en carbure de silicium (SiC) ou en nitrure de gallium (GaN) dans le secteur automobile, qui exigent des temporisateurs plus précis pour s'adapter à des fréquences de commutation plus élevées. Grâce à ses temporisateurs haute résolution à 12 canaux, le STM32G4 peut piloter des conceptions impliquant de tels composants, permettant ainsi le développement de produits électroniques de pointe.

Spécifications du STM32G4

Les dispositifs STM32G431x6/x8/xB sont basés sur le cœur RISC 32 bits Arm® Cortex®-M4 haute performance, fonctionnant à des fréquences pouvant atteindre 170 MHz. Le cœur Cortex-M4 comprend une unité à virgule flottante simple précision (FPU) et prend en charge toutes les instructions et tous les types de données à simple précision Arm.

Ces dispositifs fournissent deux convertisseurs analogiques-numériques (ADC) 12 bits rapides (5 MSPS), quatre comparateurs, trois amplificateurs opérationnels, quatre canaux DAC (deux externes et deux internes), un tampon de référence de tension interne, un RTC basse consommation, un temporisateur 32 bits à usage général, deux temporisateurs PWM 16 bits dédiés au contrôle des moteurs, sept temporisateurs 16 bits à usage général et un temporisateur 16 bits basse consommation.

en.obn stm32g4 series ss2024
(Crédit image : ST)

Le microcontrôleur STM32G4 dans le boîtier LQFP64 (Arm® Cortex®-M4 à 170 MHz) comprend :

  • STM32G431RBT6 : 128 Ko de mémoire Flash et 32 Ko de mémoire SRAM ;
  • STM32G491RET6 : 512 Ko de mémoire Flash et 96 Ko de mémoire SRAM ;
  • STM32G474RET6 : 512 Ko de mémoire Flash et 128 Ko de mémoire SRAM ;
  • Entièrement compatible avec le STM32G473RET6 (512 Ko de mémoire Flash et 128 Ko de mémoire SRAM).
  • 1 LED utilisateur ;
  • 1 bouton utilisateur et 1 bouton de réinitialisation ;
  • Oscillateur à quartz LSE 32,768 kHz ; 
  • Oscillateur HSE 24 MHz ;
  • Connecteurs de carte de circuit imprimé :
  • USB avec Micro AB ;
  • Connecteur de débogage MIPI® ;
  • Connecteur d'extension ARDUINO® Uno V3 ;
  • Connecteur d'extension ST morpho pour un accès complet à toutes les E/S STM32G4 ;
  • Options d'alimentation flexibles : ST-LINK, USB VBUS ou alimentation externe ;
  • Débogueur/programmeur STLINK-V3E avec fonction de réénumération USB : grande capacité de stockage, port COM virtuel et port de débogage ;
  • Le progiciel STM32CubeG4 MCU fournit une bibliothèque logicielle complète et gratuite ainsi que des exemples ;
  • Prise en charge de divers environnements de développement intégrés (IDE), notamment MDK-ARM et STM32CubeIDE.

Deux banques de mémoire flash et zone de stockage sécurisée

Une caractéristique essentielle du microcontrôleur STM32G47x est sa double banque de mémoire flash. Concrètement, le microcontrôleur divise la mémoire flash en deux zones de stockage physiques avec des capacités de lecture-écriture (RWW). Cela permet de télécharger, d'installer et d'exécuter un nouveau micrologiciel sans aucune interférence. Le système fonctionne sur une banque de mémoire, tandis que l'autre reçoit le nouveau micrologiciel. Le système peut ensuite échanger les banques de mémoire et passer de manière transparente à l'exécution du nouveau code. Les développeurs peuvent également protéger l'opération de téléchargement à l'aide des nouvelles fonctionnalités de sécurité disponibles sur le STM32G4, telles que les zones de stockage sécurisées. Ces zones de stockage sécurisées peuvent stocker des clés ou des parties de code pour des routines logicielles et les exécuter une seule fois après une réinitialisation, les rendant ainsi invisibles pour le code utilisateur par la suite.

Une minuterie haute résolution et trois minuteries avancées de commande moteur

La série STM32G4 est la première à inclure des temporisateurs avec des résolutions inférieures à 200 picosecondes dans l'architecture des microcontrôleurs ST. L'un des avantages notables du G4 est qu'il peut piloter des alimentations électriques de haute précision dans des topologies résonnantes LLC. Avec sept bases de temps disponibles, les développeurs peuvent les combiner pour obtenir une modulation extrêmement fine. Le temporisateur offre également une modulation de largeur d'impulsion (PWM) très flexible. Le temporisateur haute résolution est équipé de gestionnaires d'événements, ce qui permet aux ingénieurs de configurer et d'appeler plus facilement les temporisateurs ou de les utiliser pour générer des interruptions.

Caractéristiques du STM32G4

Performances robustes

Le STM32G4, basé sur le cœur Arm® Cortex®-M4, prend en charge le jeu d'instructions FPU et DSP, avec une fréquence de cœur pouvant atteindre 170 MHz. Il s'agit d'une amélioration significative par rapport à la fréquence de cœur de 72 MHz des séries STM32F3 et STM32F1. De plus, le STM32G4 introduit trois accélérateurs matériels : l'accélérateur ART (cache dynamique), le CCM-SRAM (cache statique) et un accélérateur de calcul mathématique.

En termes de débit de calcul, le STM32G4 est comparable à la série STM32F4. En tant que membre du domaine des microcontrôleurs « à signaux mixtes », le STM32G4 offre des fonctionnalités novatrices et optimisées pour les applications numériques et analogiques. Son cœur Cortex-M4 fonctionne à une fréquence maximale de 170 MHz, avec 213 DMIPS et un score CoreMark pouvant atteindre 550. L'architecture du produit intègre de nombreuses améliorations d'optimisation afin d'améliorer la commodité et les capacités de développement pendant le processus de conception.

STM32G4 Features
STM32G4 Features

Périphériques analogiques-numériques intégrés riches

L'une des caractéristiques remarquables du STM32G4 est son ensemble complet de périphériques analogiques intégrés, notamment des convertisseurs analogiques-numériques (ADC), des convertisseurs numériques-analogiques (DAC), des amplificateurs opérationnels et des comparateurs. La série STM32G4 offre jusqu'à 25 périphériques analogiques dans sa configuration MCU la plus élevée.

Fonctions optimisées

En plus de ses nombreux périphériques analogiques, le STM32G4 intègre également des fonctions optimisées pour le traitement du signal. Par exemple, les convertisseurs analogique-numérique incluent une compensation du gain et du décalage dans le matériel, ce qui réduit la charge du processeur et améliore les performances. De même, le système peut gérer automatiquement et en continu jusqu'à huit exceptions matérielles. Lorsque le système échantillonne des signaux au-delà de sa fenêtre de surveillance, une routine est généralement conçue pour rééchantillonner le signal afin d'évaluer s'il s'agit d'un défaut ou d'un problème systémique. Grâce au niveau élevé d'intégration matérielle du STM32G4, les développeurs peuvent gérer plus efficacement les événements exceptionnels.

Faible consommation d'énergie

Lorsqu'un microcontrôleur universel est confronté à de faibles besoins en énergie, les modes d'efficacité énergétique dynamique du STM32G4 réduisent la consommation d'énergie de plus de deux fois par rapport aux DSP concurrents offrant des performances similaires.

Intégration de systèmes sur puce

Avec des boîtiers plus petits et moins de composants externes, le STM32G4 intègre toutes les fonctions analogiques sur la puce, ce qui réduit la taille des circuits imprimés au niveau de la carte et les coûts liés à la nomenclature (BOM).

Nouveaux accélérateurs mathématiques

Le STM32G4 est le premier STM32 à intégrer deux accélérateurs mathématiques : l'un pour les calculs trigonométriques (Coordinate Rotation Digital Computer ou CORDIC) et l'autre pour les fonctions de filtrage numérique (Filter Mathematical Accelerator ou FMAC). Le CORDIC est particulièrement avantageux pour les opérations vectorielles, couramment utilisées dans le contrôle orienté champ (FOC) des moteurs. Il fournit également une accélération matérielle pour les fonctions trigonométriques fréquemment rencontrées dans le contrôle des moteurs, la métrologie, le traitement des signaux et d'autres applications. D'autre part, le FMAC peut être utilisé pour générer des compensateurs à trois pôles et trois zéros (3p3z) (puissance numérique), des modulateurs Sigma-Delta et des façonneurs de bruit dans le traitement du signal. Il prend également en charge la mise en œuvre de deux filtres numériques principaux dans le traitement du signal : les filtres à réponse impulsionnelle finie (FIR) et à réponse impulsionnelle infinie (IIR).

Nouveaux accélérateurs mathématiques

Le STM32G4 est le premier STM32 à intégrer deux accélérateurs mathématiques : l'un pour les calculs trigonométriques (Coordinate Rotation Digital Computer ou CORDIC) et l'autre pour les fonctions de filtrage numérique (Filter Mathematical Accelerator ou FMAC). Le CORDIC est particulièrement avantageux pour les opérations vectorielles, couramment utilisées dans le contrôle orienté champ (FOC) des moteurs. Il fournit également une accélération matérielle pour les fonctions trigonométriques fréquemment rencontrées dans le contrôle des moteurs, la métrologie, le traitement des signaux et d'autres applications. D'autre part, le FMAC peut être utilisé pour générer des compensateurs à trois pôles et trois zéros (3p3z) (puissance numérique), des modulateurs Sigma-Delta et des façonneurs de bruit dans le traitement du signal. Il prend également en charge la mise en œuvre de deux filtres numériques principaux dans le traitement du signal : les filtres à réponse impulsionnelle finie (FIR) et à réponse impulsionnelle infinie (IIR).

Applications du STM32G4

Le STM32G4, produit basé sur l'architecture Arm Cortex-M4, cible les applications MCU grand public. Il est principalement conçu pour le contrôle des moteurs, les équipements industriels, les instruments de mesure, les applications grand public haut de gamme et l'alimentation numérique, offrant une combinaison de traitement des signaux numériques et analogiques pour répondre aux besoins des utilisateurs. Les marchés cibles comprennent la conversion d'énergie numérique, qui englobe la recharge sans fil, l'alimentation des télécommunications, les entraînements moteurs, le contrôle des LED, les machines à souder, les applications industrielles, les systèmes UPS, la correction du facteur de puissance, les serveurs, les centres de données, les onduleurs photovoltaïques, etc.

STM32G4 Applications
STM32G4 Applications

Branches de STM32G4

STM32G4 Series Model
STM32G4 Series Model

Les STM32G4x1 et STM32G4x3 sont destinés aux applications générales et de contrôle moteur.

STM32G4x1 est la série de base, avec une configuration d'entrée de gamme comprenant des périphériques analogiques et une seule banque de mémoire flash. Les tailles de mémoire flash prises en charge vont de 32 Ko à 512 Ko.

La série STM32G4x3 est une série améliorée, offrant davantage de périphériques analogiques par rapport aux appareils de base, ainsi que deux banques de mémoire flash. Les tailles de mémoire flash sont également augmentées, allant de 128 Ko à 512 Ko, ce qui la rend adaptée à des applications plus avancées.

La série STM32G4x4 cible des marchés spécifiques tels que l'alimentation numérique et est la série haute résolution. En plus de l'ensemble complet de périphériques analogiques et de ressources mémoire disponibles dans la série améliorée, la série STM32G4x4 comprend également des temporisateurs haute résolution, un générateur de formes d'onde complexe et un gestionnaire d'événements, ce qui la rend particulièrement adaptée aux applications d'alimentation numérique telles que les alimentations à découpage numériques, l'éclairage, le soudage, l'énergie solaire et la recharge sans fil.

Écosystème de développement STM32G4

Le STM32G4 continue de s'appuyer sur l'écosystème STM32 et ARM Cortex-M4, offrant des ressources matérielles telles que :

  • Cartes de développement NUCLEO pour la prise en charge des microcontrôleurs STM32G4.
  • Cartes d'évaluation complètes : STM32G474E-EVAL et STM32G484E-EVAL, avec cryptage et accéléromètres intégrés.
  • Outils de développement de contrôle moteur tout-en-un : carte de développement dédiée au contrôle moteur Nucleo (P-NUCLEO-IHM03).
  • Kits de découverte : B-G474E-DPOW1*, B-G431B-ESC1*.

Ces outils et ressources permettent aux développeurs d'explorer et de développer efficacement des applications avec la famille de microcontrôleurs STM32G4.

STM32G4 Hardware Tools
STM32G4 Hardware Tools

Les outils logiciels STM32G4 comprennent : STM32CubeMX, les IDE de compilation et de débogage, et les outils de programmation STM32.

STM32G4 Software Tools
STM32G4 Software Tools

Projet de carte de développement STM32G4 - Allumage d'une LED

La carte de développement STM32G431 dispose d'un bouton utilisateur et d'une LED. D'après le schéma, LD2 est connecté à PA5. Si vous souhaitez allumer la LED, PA5 doit être à niveau haut. Le bouton utilisateur B1 est connecté à PC13 et est à niveau haut lorsqu'il est enfoncé.

STM32G431 Development Board Schematic Diagram
STM32G431 Development Board Schematic Diagram

Sélecteur MCU

Le modèle de puce utilisé dans cet exemple est : STM32G431RBT6 ; 128 Ko de mémoire flash et 32 Ko de mémoire SRAM, avec une fréquence de fonctionnement pouvant atteindre 170 MHz.

MCUMPU Selector-STM32G4 Series STM32G431RB STM32CubeMX
MCUMPU Selector-STM32G4 Series STM32G431RB STM32CubeMX

Configuration de l'horloge

Clock Configuration-High Speed Clock(HSE) CrystalCeramic Resonator STM32CubeMX
Clock Configuration-High Speed Clock(HSE) CrystalCeramic Resonator STM32CubeMX
Clock Configuration Input frequency STM32CubeMX
Clock Configuration-Input frequency STM32CubeMX

GPIO Pin Configuration

GPIO Setting-Pins Configuration (PA5) STM32CubeMX
GPIO Setting-Pins Configuration (PA5) STM32CubeMX
GPIO Setting-Pins Configuration (PC13) STM32CubeMX
GPIO Setting-Pins Configuration (PC13) STM32CubeMX

Chef de projet

Project Manager-Project Settings STM32CubeMX
Project Manager-Project Settings STM32CubeMX
Project Manager-Code Generator STM32CubeMX
Project Manager-Code Generator STM32CubeMX

Configuration des broches LED et boutons

LED and Button Pin Configuration STM32CubeMX
LED and Button Pin Configuration STM32CubeMX

Fonction du bouton

				
					/*Get key value*/
uint8_t Get_KeyVal(void)
{
   uint8_t static stat=0;
   if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin)==1 && stat==0)//Determine whether the button is pressed
   {
     HAL_Delay(20);//Delay debounce
     stat=1;
     if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin))return 1;
   }
   else if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin)==0)
   {
     stat=0;
   }
   return 0;
}
				
			

Fonction principale :

				
					uint8_t key;
   /* USER CODE END 2 */

   /* Infinite loop */
   /* USER CODE BEGIN WHILE */
   while (1)
   {
     /* USER CODE END WHILE */

     /* USER CODE BEGIN 3 */
     key=Get_KeyVal();
     if(key)
     {
       HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
     }
   }
				
			

Part à:

Retour en haut

Instant Quote