1
Introduction générale sur les systèmes embarqués
- Comprendre l’environnement : STM32 Discovery Kit, ST-Link, IAR IDE, Linux, Arduino IDE
- C embarqué : ce qu’il faut savoir
- Toolchain
- Types de données (stdint.h)
- Placement des données (Main memory / Stack / Heap)
- Classes d’allocations (auto, static, register, extern, const)
- Opérations binaires (AND, OR, XOR, masques)
- Shifts
- Booléens
- Break / Continue
- Préprocesseur
- Volatile
STM32 Microcontrôleur
- Architecture STM32 : Interconnexion CPU / RAM / Périphériques
- Bus Cortex-M4 (ARM AMBA AHB / APB)
- Arbre d’horloge STM32 (System_clk, clock gating…)
- Périphériques GPIO (configuration input / output)
Applications STM32 avec IAR
- Projet Hello World : configuration IAR, ST-Link, registres, LED toggle
- Débogage temps réel, accès aux registres
- Bibliothèque CMSIS et fichiers startup
- Application avec CMSIS
STM32 Lab
- Lab 1 : LED chenillard (utilisation des préprocesseurs)
- Lab 2 : Clignotement de LEDs à différentes fréquences
- Lab 3 : Menu pour contrôler les LEDs
- Lab 4 : Utilisation des boutons
Bibliothèque HAL
- Présentation des bibliothèques HAL de ST
- Architecture HAL
CubeMX
- Configuration de projet avec CubeMX
- Génération de code HAL avec CubeMX
Horloge STM32
- Comprendre l’architecture des horloges (PLL, HSI, HSE, SYSCLK, AHB…)
- Lab 1 : Génération de code HAL avec fréquences différentes
Interruptions STM32
- Présentation de NVIC, EXTI, SYSCFG
- Application d’interruption sur bouton (EXTI)
- Lab 2 : Priorité entre deux interruptions
DMA sur STM32
- Présentation du DMA : fonctionnement, délestage CPU
- Lab 3 : Transfert mémoire à mémoire avec et sans DMA
- Lab 4 : Transfert Flash vers SRAM avec DMA
Power Control STM32
- Modes RUN, SLEEP, STOP, STANDBY
- Système de réveil via EXTI
- Différence Event vs Interrupt
Périphériques de communication
- Topologie réseau (SPI, I2C, UART…)
- Notions de base : Master / Slave, synchrone / asynchrone, full duplex…
SPI
- Caractéristiques de base
- Configuration SPI
- Communication via HAL IT, Polling, DMA (3 labs)
UART
- Différences UART / USART
- Protocole UART
- Configuration UART
- Loopback avec HAL / IT / DMA (3 labs)
I2C
- Protocole I2C
- Configuration I2C
- Communication entre deux STM32 Discovery via I2C
Application avec l’accéléromètre LIS302DL
- Configuration SPI avec LIS302DL
- Utilisation du driver de l’accéléromètre
- Lecture des accélérations X, Y (capteur d’inclinaison)
Introduction à l’IoT
- Diagramme fonctionnel de l’application
- Outils hardware et software utilisés
Réseaux TCP/UDP
Utilisation du module ESP8266
- Configuration et débogage
- Commandes AT
- Point d’accès Wifi (Wifi direct)
Lab 1 – UDP
- Serveur UDP : STM32 + ESP8266 (HAL UART + DMA)
- Client UDP : STM32 + ESP8266 (HAL UART + DMA)
Application Android Client
- Socket UDP Android vers STM32
Lab 2 – TCP
- Menu de commandes Android pour pilote