Informatique Embarquée (IE) - Semestre 3


PART A - Présentation Générale du Cours

Contexte et objectifs

Approfondissement de la programmation embarquée sur microcontrôleurs ARM Cortex-M (STM32) avec périphériques avancés (ADC, DMA, timers complexes) et introduction aux RTOS (FreeRTOS). Suite du cours S2.

Objectifs :

Prérequis


PART B: EXPÉRIENCE, CONTEXTE ET FONCTION

Module 1 : Périphériques avancés STM32

ADC multi-canaux avec DMA :

Timers avancés :

Communication avancée :

Watchdog et sécurité :

Module 2 : FreeRTOS

Concepts RTOS :

Tâches :

void vTaskLED(void *pvParameters) {
  TickType_t xLastWakeTime = xTaskGetTickCount();
  while(1) {
    HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
    vTaskDelayUntil(&xLastWakeTime, pdMS_TO_TICKS(500));
  }
}

xTaskCreate(vTaskLED, "LED", 128, NULL, 1, NULL);

Synchronisation :

Gestion mémoire :

Module 3 : Low Power

Modes STM32 :

Techniques économie énergie :


PART C: ASPECTS TECHNIQUES

TP Périphériques avancés

TP1 : Acquisition ADC multi-canaux DMA

TP2 : Moteur brushless avec PWM

TP3 : Communication CAN

Projet FreeRTOS

Système multi-tâches :

Livrables :


PART D: ANALYSE ET RÉFLEXION

Évaluation

Compétences acquises

Applications métier

STM32 (STM32L152 typiquement)

Périphériques avancés

Timers avancés

Communication série

UART/USART :

SPI :

I2C :

CAN :

Conversion A/N avancée

DMA (Direct Memory Access)

Programmation temps réel

Concepts RTOS

FreeRTOS

Tâches :

Synchronisation :

Communication :

Gestion mémoire :

Programmation temps réel

Optimisation et débogage

Optimisation code

Techniques low power

Débogage embarqué

🛠️ Projets pratiques

TP Puzzle/Taquin

Objectif : Jeu de taquin sur STM32

Compétences :

Projets avec RTOS

💻 Outils utilisés

IDE et environnements

Débogage

Analyse

📊 Évaluation

🔗 Liens avec d’autres cours

📐 Architecture typique d’un projet

Projet STM32
├── Core/
│   ├── Src/
│   │   ├── main.c
│   │   ├── stm32xxx_it.c
│   │   └── peripherals.c
│   └── Inc/
│       ├── main.h
│       └── peripherals.h
├── Drivers/
│   ├── CMSIS/
│   └── STM32xxx_HAL_Driver/
├── Middlewares/
│   └── FreeRTOS/
└── Application/
    ├── Tasks/
    ├── Drivers/
    └── Utils/

💡 Bonnes pratiques

Code embarqué

RTOS

Débogage

🎯 Compétences développées

📖 Concepts avancés

Interruptions

DMA

Low Power

⚠️ Pièges à éviter