ac6-formation, un département d'Ac6 SAS
FR
FrançaisEnglish
 
go-up

ac6 ac6-formation Processors STM32 STM32G0
STR14

STM32G0

Ce cours décrit l'architecture du STM32G0 et des exemples pratiques

Objectifs

  • Comprendre la famille STM32G0, les bases du Cortex-M0+ et la cartographie mémoire du composant.
  • Mettre en route une carte proprement (CubeMX/CubeIDE), configurer les horloges et les resets, et vérifier les temps.
  • Utiliser avec assurance les GPIO/EXTI, les timers (PWM, capture, codeur) et les watchdogs.
  • Transférer efficacement les données avec le DMA/DMAMUX et les transferts déclenchés par timer.
  • Acquérir et traiter des données analogiques avec l'ADC (suréchantillonnage, analog watchdog) et le COMP.
  • Réaliser des communications robustes sur USART/LPUART, I²C et SPI (schémas par interruption et par DMA).
  • Concevoir et mesurer le comportement en basse consommation (Sleep/Stop/Standby avec RTC et LPTIM).
  • (Lorsqu'ils sont pris en charge) Mettre en route l'UCPD (USB-C/PD), le périphérique USB FS et le CAN-FD sur G0B1/C1.
  • Mettre en œuvre les vérifications par CRC et le diagnostic des causes de reset pour la robustesse en production.
  • Cours théorique
    • Support PDF (en anglais), imprimé en présentiel ; à distance via Teams.
    • Assistance du formateur tout au long de la formation.
  • Chaque session débute par un point avec les stagiaires.
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
  • Les prérequis sont vérifiés avant l'entrée en formation, sur la base des prérequis publiés sur cette fiche.
  • Pendant la formation, les acquis sont évalués en continu : quiz de fin de séquence et observation directe du formateur.
  • À l'issue de la formation, chaque participant reçoit une attestation de fin de formation.

Plan du cours

  • Modèle de programmation
  • Modèle d'exceptions
  • Fautes sur ARMv6-M
  • Aperçu du jeu d'instructions
  • Débogage
  • Lignes de la famille : G0x0 / G0x1 / G0B1 / G0C1 ; options de boîtier et principes de multiplexage des broches et des fonctions alternatives.
  • Cartographie des bus et de la mémoire : Flash, SRAM, régions des périphériques, PPB ; où placer les constantes et la configuration.
  • Identifiants du composant : UID, registres de taille de Flash ; pourquoi les journaliser en production.
  • Présentation des straps de boot et des Option Bytes
  • Notes électriques de base
  • Stratégie d'utilisation de la HAL et de la LL (taille et latence face au confort).
  • Présentation du code de démarrage et de la table de vecteurs ; où placer l'initialisation utilisateur.
  • Bases du script de l'éditeur de liens : sections, régions mémoire, placement d'un bloc de configuration en const.
  • Chemins d'assert et d'erreur : rediriger assert_failed() et Error_Handler() vers l'UART en toute sécurité.
  • Journalisation minimale : printf allégé, ITM ou UART à buffer circulaire.
  • Modes de sortie
  • Affectation des lignes EXTI
  • Protection des entrées et états sûrs à la mise sous tension
  • Bases du SYSCFG qui influent sur le routage des E/S et des interruptions.
  • Sources d'horloge
  • Chaîne de la PLL
  • Multiplexeur SYSCLK et prédiviseurs
  • Horloges kernel des périphériques (CCIPR)
  • Sortie MCO pour la mesure ; CSS et interruptions d'horloge (CIER/CIFR/CICR).
  • Blocs de timers
    • Avancés (sorties complémentaires, BDTR)
    • Généraux
    • Basiques
  • Modes PWM
  • Routage des déclenchements et des horloges entre timers (ETR/ITRx) et requêtes DMA
  • LPTIM pour un réveil périodique en très basse consommation
  • RTC
  • IWDG (indépendant) et WWDG (à fenêtre)
  • Bases du DMA
    • Directions
    • Mode circulaire ou normal
    • Événements
  • Affectation des requêtes par le DMAMUX ; générateurs et synchronisation de requêtes (si présents sur le composant).
  • Réglage du compromis entre débit et latence
  • Gestion des erreurs
  • Chaînes typiques
  • Bases de l'ADC
    • Résolution
    • Temps d'échantillonnage
    • Séquences
    • Modes
  • Suréchantillonnage pour augmenter l'ENOB
  • Déclenchements externes par les timers ; couplage avec le DMA et notes sur la latence.
  • Analog watchdog pour les événements de seuil
  • VREFINT et capteur de température ; (variante) VBAT ; sorties du COMP vers les timers ou l'EXTI ; (variante) DAC
  • Modes
  • Suréchantillonnage 16 ou 8 ; effet sur la précision du débit selon que l'on utilise le HSI ou le HSE.
  • Modes bloquant, interruption et DMA ; buffer circulaire en réception avec détection d'idle line.
  • Réveil depuis le mode Stop par la ligne RX ; quand basculer l'horloge kernel via CCIPR.
  • Erreurs de format et de dépassement ; reprise robuste sans blocage.
  • Bases des modes maître et esclave ; polarité et phase (CPOL/CPHA) et fenêtres de timing.
  • Options de taille de données ; NSS matériel ou logiciel ; schémas de sélection multi-esclaves.
  • Full-duplex et simplex ; transferts par DMA et double bufferisation.
  • Débit et charge CPU ; utiliser un timer ou l'EXTI pour cadencer les transactions.
  • Déboguer MOSI et MISO à l'analyseur logique ; erreurs de câblage courantes.
  • Modes Sm, Fm et Fm+ jusqu'à 1 Mbit/s ; configuration de l'horloge et prise en compte des temps de montée.
  • Adressage (7 ou 10 bits) ; repeated start ; transactions de type accès mémoire.
  • Filtrage des parasites (analogique et numérique) et ses compromis.
  • Timeouts et déblocage du bus pour sortir d'un blocage de SCL ou SDA ; clock stretching.
  • Utiliser le mode Stop avec réveil par l'I²C ; dans quels cas c'est sûr.
  • Unité CRC matérielle : polynôme, options de réflexion (selon le composant).
  • Usages typiques : CRC de l'image au boot, intégrité des paquets dans les piles de communication.
  • Placement des champs de CRC en Flash ; vitesse et taille de code.
  • Intégrer le CRC avec le DMA pour les longs buffers.
  • Lien avec le RDP et le PCROP : intégrité face à confidentialité.
  • CAN-FD et CAN classique ; phases nominale et de données et changement de débit.
  • Organisation de la message RAM ; dimensionnement de la RAM dédiée et filtres.
  • Filtres d'acceptation : plages par masque ou par liste, conséquences sur la priorité.
  • Modes loopback et silencieux pour la mise en route ; compteurs d'erreurs.
  • Exigences sur le transceiver et la terminaison ; notes de CEM.
  • Sleep, Stop et Standby : rétention, sources de réveil, latences de démarrage.
  • États des GPIO pour limiter les courants de fuite ; configuration analogique et des tirages pendant le sommeil.
  • Gating des horloges des périphériques et choix de CCIPR favorables à la basse consommation.
  • Mesurer le courant correctement (shunt et multimètre ou analyseur de puissance) ; pièges d'échantillonnage.
  • Politique : quand entrer et sortir de la basse consommation ; coordination avec le watchdog.
  • Compromis entre LSE et LSI ; dérive et temps de démarrage ; bases de la calibration.
  • Calendrier ou compteur du RTC ; fonctions de timer de réveil, d'alarme et d'horodatage.
  • Utiliser le LPTIM pour un réveil périodique tickless pendant que les horloges principales sont arrêtées.
  • Registres de backup et domaine VBAT ; conserver de petits réglages entre les resets.
  • Choisir la bonne horloge kernel et les bons prédiviseurs pour la précision.
  • Broches CC et détection du rôle (Sink, Source, DRP) ; comportement en batterie déchargée.
  • Bases de la négociation des PDO ; commencer par un sink 5 V sûr.
  • Choix de l'horloge kernel pour l'UCPD ; notes d'intégration avec la protection externe (TCPPx).
  • Événements de branchement et de débranchement du câble ; anti-rebond et retour utilisateur.
  • Journaliser les PDO et les changements de contrat pour le diagnostic.
  • Principe de l'USB sans quartz avec HSI48 + CRS (si disponible) ; détection du VBUS.
  • Dimensionnement des endpoints et des FIFO ; bases du CDC et du DFU ; LPM et remote wakeup (selon le composant).
  • Contraintes d'horloge pour l'USB et impact sur le reste du système.
  • Intégration de la basse consommation en restant connecté à l'USB (suspend et resume).
  • Chemin de mise à jour du firmware : DFU avec les outils standard.
  • Séquences de programmation et d'effacement de la Flash
  • Stratégie simple d'émulation d'EEPROM avec wear-leveling et CRC.
  • Chaîne de travail des Option Bytes : niveaux de BOR, broches de boot, niveaux de RDP, régions PCROP.
  • Changements sûrs des Option Bytes
  • Choix de bootloader (ROM ou concepts MCUboot et SBSFU)
  • Check-list des horloges
  • Sûreté des E/S au boot et en sommeil
  • Politique de watchdog et journalisation des causes de reset ; liste des autotests au démarrage
  • Schéma UID et numéro de série ; organisation des données de fabrication ; versionnement et CRC de l'image
  • Diagnostic minimal sur le terrain : shell ou CLI sur UART et compteurs d'erreurs
Plus d'information

Pour vous enregistrer ou pour toute information supplémentaire, contactez nous par email à l'adresse info@ac6-formation.com.

Les inscriptions aux sessions de formation sont acceptées jusqu'à une semaine avant le début de la formation. Pour une inscription plus tardive nous consulter

Vous pouvez aussi remplir et nous envoyer le bulletin d'inscription

Ce cours peut être dispensé dans notre centre de formation près de Paris ou dans vos locaux, en France ou dans le monde entier.

Les sessions inter-entreprises programmées sont ouvertes dès deux inscrits. Sous condition d'un dossier complet, les inscriptions sont acceptées jusqu'à une semaine avant le début de la formation.

Dernière mise à jour du plan de cours : 2 juillet 2026

L'inscription à nos formations est soumise à nos Conditions Générales de Vente

Sur le même sujet :

Yocto ou Buildroot : comment choisir pour votre projet Linux embarqué