Programmation avancée des microcontrôleurs
ELE118


Objectifs pédagogiques :
  • Comprendre et maîtriser les outils modernes de programmation des microcontrôleurs, principalement leur programmation en langage C/C++ ;
  • Mettre en œuvre un microcontrôleur, utiliser ses périphériques internes et interagir avec différents types de modules externes ;
  • Sensibiliser aux contraintes de temps réel dans les systèmes à microcontrôleurs pour l'embarqué (gestion par interruptions et système temps réel) ;
  • Ce cours nécessite l'acquisition d'une carte de développement STMicroelectronics Nucleo-F439ZI (ou F756ZG ou F767ZI) et de quelques accessoires annexes (liste détaillée dans l'espace dédié au cours sur la plateforme Moodle lecnam.net), d'un ordinateur de type PC, sous Windows, MacOs ou Linux.
Public et conditions d'accès :
  • Posséder quelques notions en électronique numérique, numération et logique combinatoire
  • Posséder des notions de programmation en langage C/C++ et d'algorithmique
Compétences :

Aptitude et autonomie dans le développement d'application sur microcontrôleurs

Méthodes de validation :

Evaluation des travaux personnels déposés sur la plateforme Moodle du cours (½ de la note finale) et examen final sous forme d'un QCM (sans possibilité de retour en arrière) en ligne sous Moodle.

 

Contenu de la formation :
  • Présentation détaillée de la carte Nucleo-F439ZI et des caractéristiques principales du microcontrôleur STM32F439ZI
  • Installation et prise en main de l'environnement de développement STM32CUBE IDE de STMicroelectronics, descriptif rapide des APIs (Application Programming Interfaces) de la librairie HAL (Hardware Abstraction Layer 
  • Utilisation des entrées/sorties d'usage général GPIO (General Purpose Input Output)
  • Fonctionnement en "temps réel" par interruptions dans un microcontrôleur, différence avec le mode “Polling
  • Communication microcontrôleur <--> ordinateur de développement via une interface série UART
  • Conversion analogique-numérique (CAN) en mode “Polling”, “Interruption” ou “DMA” (Direct Memory Access)
  • Gestion de temps par temporisateurs (Timer)
  • Commande PWM de dispositifs divers : LED, moteur à courant continu, etc. Contrôle/commande (asservissement numérique) en temps réel de la vitesse de rotation d'un moteur à courant continu
  • Acquisition de signaux analogiques pour visualisation en temps réel sur l'ordinateur de développement (simulation d'oscilloscope)
  • Conversion numérique-analogique (CNA), synthèse de signaux de différentes formes
  • Traitement numérique du signal à l'aide de filtres RIF (Réponse impulsionnelle finie) ou RII (Réponse impulsionnelle infinie) en temps différé ou en temps réel, mesures de performance
  • Écriture d'un driver I2C pour un écran LCD, un capteur de température-pression-humidité Bosh Sensortech
  • Introduction au noyau temps réel embarqué CMSIS RTOS de arm (Real Time Operating System

Cette UE apparaît dans les diplômes et certificats suivants :

  • CRN0600A : Titre RNCP Niveau 6 Responsable opérationnel en électronique
  • LG03902A : Licence Sciences, technologies, santé mention Electronique, énergie électrique, automatique parcours Électronique et systèmes
  • CYC8102A : Diplôme d'ingénieur Spécialité Automatique et robotique parcours Mécatronique
  • CYC9600A : Diplôme d'ingénieur Systèmes électroniques
  • DET2200A : Diplôme d'établissement Responsable opérationnel en électronique

Prochaines sessions de formation

Recherche en cours