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, Prob de debug Stlink, IAR IDE, Linux, Arduino IDE
C-embarqué, Ce qu’il faut savoir
 Toolchain
 Type de donnés (stdint.h)
 Placement de donnés (Main memory/Stack/ Heap)
 Classes d’allocations (auto, static, registre, extern, const)
 Opérations binaires (AND, OR, XOR: qu’est qu’un mask )
 Shift
 Boolean
 Break-Continue statement
 Preprocessor
 Volatile

STM32 Microcontrôleur

 STM32 Architecture (Interconnexion Master/Slaves CPU/RAM/Periph)
 CortexM4 bus (ARM Amba AHB/APB)
 STM32 Clock Tree (System_clk, glock gating…)
 Périphérique GPIO (Input/output config)
STM32 IAR application (C-embarqué)
 Hello word Project (IAR configuration Stlink Config Registre définition ), Led toggling avec STM32
 STM32 Real time debug, accès aux registres
 CMSIS Library (IAR startup file)
 Application avec CMSIS
STM32 Lab (Appliquer ce qui est vu sur différentes applications)
 LAB1 : led chenillard (rouge, vert, blue, orange) (utilisation des pre-processor)
 LAB2 : clignotement de leds avec différentes fréquences
 LAB3 : Développement d’un menu pour commander des leds
LAB4 : Utilisation des boutons
La bibliothèque HAL
 HAL les bibliothèques fournit de ST
 HAL Architecture
Initiation au CubeMx ST tool
 Configuration de project avec CubeMx
 Génération de code HAL avec cubeMx
Clock – configuration
 comprendre l’architecture d’horloge sur les STM32 (PLL/HSI/HSE/SYSCLK/AHB…)
 LAB1 : Générer un code HAL avec différentes fréquences (clock system frequency )
Comprendre les Interruption de STM32
 Présentation du bloc l’NVIC EXTI et SYSCFG
 Développer la Premier application avec des interruptions bouton (EXTI)
 LAB2 : Gérer la priorité avec deux interruptions configurées
Comprendre la DMA
 Présentation du DMA : Principe de fonctionnement, l’offload du CPU.

STM32 Microcontrôleur (suite)

La bibliothèque HAL
 HAL les bibliothèques fournit de ST
 HAL Architecture
Initiation au CubeMx ST tool
 Configuration de project avec CubeMx
 Génération de code HAL avec cubeMx
Clock – configuration
 comprendre l’architecture d’horloge sur les STM32 (PLL/HSI/HSE/SYSCLK/AHB…)
 LAB1 : Générer un code HAL avec différentes fréquences (clock system frequency )
Comprendre les Interruption de STM32
 Présentation du bloc l’NVIC EXTI et SYSCFG
 Développer la Premier application avec des interruptions bouton (EXTI)
 LAB2 : Gérer la priorité avec deux interruptions configurées
Comprendre la DMA
 Présentation du DMA : Principe de fonctionnement, l’offload du CPU.
 Transfert “Memory to Memory” avec CPU et avec DMA (LAB3)
 Transfert des buffers du Flash à SRAM en utilisant la DMA (LAB4)
Power control block
 Différence entre les different mode de fonctionnement RUN/SLEEP/STOP/STANDBY
 comprendre le wakeup system via EXTI
 Différence entre Event et interrupt mécanisme
Introduction aux périphériques de communication
 Topologie réseau des diffèrent IP (SPI/I2C/UART…)
 Notion de base : Master/ Slave Synchrone Asynchrone Duplex …
Comprendre l’SPI
 Les caractéristiques de base de l’SPI
 Configuration de l’SPI
 Communication avec les 3Process HAL IT/Polling/DMA (3 LAB)
Comprendre l’UART
 Différence entre UART/USART
 Protocole UART
 Configuration de l’UART
 Communication Loop back avec 3 Process HAL/IT/DMA ( 3 LAB)
Comprendre l’I2C
 Protocol I2C
 Configuration I2C
 Communication entre deux discovery via I2C
Application avec l’accéléromètre embarqué LIS302DL
 Configurer l’SPI pour communiquer avec le LIS302DL
 Utilisation du Driver de l’accéléromètre
 Récupérer les accélérations linéaire x, y ( tilit sensor )
Introduction à l’IOT
 Block diagramme de l’application
 Les outils hardware & software utilisés
TCP/UDP Server et client
 Ce qu’il faut savoir sur le réseau
Utilisation du module ESP8266 Wifi
 Configuration et debug du module
 Comprendre les Commandes AT
 Wifi Access point ( wifi Direct)
LAB 1
– Création d’un server UDP : STM32 + ESP8266 (HAL UART + DMA)
– Création d’un Client UDP : STM32 + ESP8266 (HAL UART + DMA)
Création d’une application Android Client
Ouvrir un socket UDP Client avec Android pour communiquer avec STM32 UDP Server
Communication avec socket TCP
LAB 2
Réaliser un menu de command avec Android pour piloter un STM32 via le Wifi: toggler des LED / lire l’état des boutons … avec Smartphone

Arduino
 Initiation à l’environnement Arduino
 LED et notion électronique
Application de base: – gestion des entrées sorties
 entrées sorties analogique (ADC, PWM)
 les interruptions
 les timer
 Affichage sur LCD
Arduino & Robotique: – commande des moteurs DC
 moteurs pas à pas
 servo moteur
 Moteur à courant continu
Arduino & communication : UART, spi, i2c
 Ethernet
 Wire
Arduino et communication sans fil
 NRF24L01
 WiFi
LAB : Réalisation d’un Robot télécommandé
Application IoT domotique avec Arduino
 IoT
 Ubidots