1

Formation: Les systèmes embarqués pour l’Internet des Objets (IoT)

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

  • Concepts de base réseau

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