Site Unistra - Accueil
Faire un don

Compétences requises

Programmation en C (variables, tests et branchements, opérations arithmétiques et binaires). Rappel sur les opérations binaires fait en cours.
Notions en électronique numérique (portes logiques, interrupteurs, LEDs). Rappel fait en cours.

Compétences visées

Ce cours a pour but de comprendre ce qu’est un microcontrôleur, quels peuvent être ses cas d’usage (comparé à de l’électronique pure ou de l’informatique classique), comment le programmer et l’utiliser et comment profiter de ses spécificités techniques. Le tout validé par de la mise en pratique sur microcontrôleur et composants électroniques réels.

Composition et principe de fonctionnement d’un microcontrôleur, différences avec un processeur. Quelles sont les principales différences entre les microcontrôleurs et comment choisir celui qui est le plus adapté.

Programmation bas niveau d’un microcontrôleur à l’aide des registres de configuration et d’action, sans aucune aide logicielle externe (sans langage Arduino par exemple).

Principe de fonctionnement et utilisation des aides matérielles d’un microcontrôleur (registres d’entrée/sortie, interruptions matérielles, compteurs, timers, interruptions temporelles).

Utilisation de plusieurs de ces aides matérielles dans un même programme et interdépendance entre elles.

Mise en pratique avec de l’électronique réelle, recherche et résolutions de problèmes.

Lecture d’une documentation technique de composant (Datasheet).

Syllabus

Rappel sur l’électronique numérique, les transistors, les portes logiques;

Présentation des différents types de microcontrôleurs, leurs différences et spécificités, les critères de choix, les cartes d’évaluation;

Installation et prise en main des outils de programmation, de compilation et de transfert en mémoire;

Opérations de base du microcontrôleur avec des bibliothèques de code simplifiées (Arduino);

Présentation de la notion de “registres” dans un microcontrôleur, leurs types, leurs rôles, la façon de les comprendre en lisant une documentation technique;

Utilisation des “registres de port” afin de manipuler les entrées et les sorties du microcontrôleur directement (sans aide logicielle); Présentation et mise en place de “pull-up” et de mécanismes d’anti-rebond à base de filtrage de signal;

Présentation et mise en pratique de protocoles de communication (UART, SPI, I2C);

Utilisation des interruptions matérielles pour la détection automatique de signal;

Utilisation des “compteurs” et “timers” pour automatiser des actions dans le temps;

Présentation et mise en pratique de tables de correspondances (Lookup Table, LUT), pour générer un signal périodique;

Présentation et mise en pratique des automates finis (finite state machine), pour la gestion d’évènements asynchrones et initiation au multitâche;

Utilisation des optimisations matérielles pour résoudre des problèmes techniques (multiplexage matriciel, signaux périodiques précis, économie d’énergie);

Introduction aux problèmes d’énergie dans les microcontrôleurs et pistes d’optimisation;

Introduction à la programmation sur d’autres types de microcontrôleurs.

Contact

Responsable(s) de l'enseignement
Frederic Mossmann : mossmann@unistra.fr