Microcontrôleur

Un microcontrôleur est une puce électronique programmable. Il se programme généralement avec un langage de bas-niveau (C, C++). Il est constitué des composants suivants :

  • un processeur, pour exécuter des instructions (calculs, tests logiques, etc.) ;
  • de la mémoire morte (mémoire programme), non volatile, pour conserver des informations sur le long terme, notamment le code source du programme ;
  • de la mémoire vive (mémoire donnée), volatile, pour les données manipulées par le programme durant son exécution ;
  • un oscillateur, qui cadence le système ;
  • des timers, pour gérer le temps ;
  • un watchdog, pour redémarrer en cas de plantage ;
  • des entrées-sorties.


Les composants sont reliés par 3 bus : bus de contrôle, d’adresse et de données.

Interfaces d’entrées-sorties

Certaines interfaces E/S sont des E/S binaires, d’autres sont connectées à des circuits spécifiques, intégrés au microcontrôleur :

  • un CAN (conversion analogique numérique, ADC en anglais) numérise un signal analogique ;
  • un CNA (DAC en anglais) produit un signal analogique à partir de données binaires ;
  • un MLI (modulation de largeur d’impulsions, PWM en anglais) produit un train d’impulsions ;
  • un contrôleur permet la communication sur un réseau (I²C, CAN, Ethernet, etc.).

Système embarqué

Un produit intelligent (robot, drone, TV, voiture, etc.) comporte une carte-mère, dont le composant central est un microcontrôleur. Associée à un réseau de capteurs, modules et actionneurs, intégrés à la carte-mère ou distribués dans le produit, la carte-mère constitue le système embarqué (embedded system) du produit.

Un système embarqué doit satisfaire aux exigences suivantes :

  • consommation en énergie très faible ;
  • dimensions limitées ;
  • fiabilité et robustesse ;
  • réaction en temps réel ;
  • puissance de calcul et mémoire adaptée à son utilisation.


Une carte de développement est une carte-mère, optimisée pour le test et le prototypage, servant à concevoir des systèmes embarqués (ex : Arduino UNO, Nucleo STM32).