Le microcontrôleur
Un microcontrôleur, appelé aussi contrôleur microprogrammé ou contrôleur à microprocesseur, est un circuit intégré dont sa structure interne est complexe et qui peut être installé facilement sur une petite carte électronique (appelé aussi mainboard pour sa terminologie anglaise).
Ce circuit intégré est généralement composé de plusieurs sous-éléments tels que :
- le processeur pour le calcul logique et numérique,
- la mémoire morte et la mémoire volatile,
- des entrées et sorties numériques, et parfois même analogiques,
- etc.
Intégré sur une carte, ce composant, le microcontrôleur, joue un rôle important dans la partie commande des systèmes numériques qui peut aller jusqu'au rôle d'un micro ou mini ordinateur, capable d'exécuter des tâches du simple au complexe.
De quoi est composé ?
Un microcontrôleur est un composant électronique et non pas un ordinateur. Si nous le comparons à nos ordinateurs que nous utilisons tous les jours, nous pouvons conclure qu'il représente l'ordinateur le plus petit possible.Pour mieux comprendre cela, regardons de quoi est composé un microcontrôleur :

Comme nous pouvons le constater, ce composant électronique intègre plusieurs éléments que nous retrouvons dans notre ordinateur tel que :
- Le processeur, soit l'unité de traitement, qui représente notre processeur intel, celeron ou autre.
- La ROM; appelée aussi la Read Only Memory en anglais, est la mémoire morte de notre microcontrôleur. Ce qui représente notre disque dur, notre SSD ou toute autre unité de stockage dans notre ordinateur.
- La RAM; appelée aussi la Random Access Memory en anglais, est la mémoire volatile de notre microcontrôleur. Elle représente la mémoire instantanée de notre microcontrôleur qui nous permet d'exécuter notre programme.
- Les inputs/outputs, indiquées aussi par l'abréviation I/O, ce qu'on appelle aussi les entrées/sorties représentent nos ports ou nos périphériques de notre ordinateur.
- Les périphériques intégrés clés tels que :
- Les temporisateurs et les compteurs : ces périphétiques permettent de générer différents type de signaux numériques PWM, mesurer du temps, créer des fréquences, etc.
- Les convertisseurs Analogique-Numérique, appelés aussi ADC pour le convertisseur anlogique numérique et DAC pour le convertisseur numérique analogique.
- Le bus de communication série : tel que les interface UART, I²C et SPI qui permettent au microcontrôleur d'échanger avec des composants externes à communication numérique.
- Les contrôleurs d'interruptions : intégré directement, il permet au processeur de réagir rapidement à un événement tout en interrompant temporairement l'exécution du programme principal.
Ainsi, un microcontrôleur est un tout petit ordinateur de taille. Ces principales sous-parties sont les suivantes :
- CPU: l'unité centrale de traitement, également connue sous le nom de CPU. Abréviation de la terminologie anglaise: Central Processing Unit (photo ci-dessous par Vishnu Mohanan sur Unsplash), cette unité est en charge du traitement des instructions numériques, logiques et du calcul mathématique. Ce processeur interprète en général les instructions du programme stockées en mémoire vive et dans sa mémoire interne (si elle existe). La CPU assure également le contrôle et la gestion des tâches logiques entre les différentes parties du microcontrôleur, garantissant une communication efficace entre les entrées et les sorties. Le CPU est composé de plusieurs circuits intégrés, voire des millions ou même des milliards gravés sur une tranche de silicium. Les transistors sont les éléments de base qui constituent ce composant complexe.

- La mémoire : est l'élément essentiel pour qu'un microcontrôleur puisse fonctionner. Il s'agit d'un composant essentiel qui permet de stocker les données et les instructions nécessaires à son bon fonctionnement. On peut citer :
- la mémoire vive : appelée aussi RAM pour son abréviation Random Access Memory (nous retrouvons cette mémoire sous forme de barrette dans nos ordinateurs),
- la mémoire morte : appelée aussi ROM pour son abréviation Read Only Memory, (c'est l'équivalent par exemple d'un disque dur ou une carte SD, que nous utilisons dans notre quotidien informatique),et,
- la mémoire flash : utilisée pour stocker des données et programmes qui peuvent être modifiés et conservés même sans alimentation. Cette mémoire est devenue la norme quasi universelle dans tous les microcontrôleurs modernes. Nous la retrouvons dans le ATmega328P d'Arduino, STM32, ESP32, PIC, etc. C'est là où votre code compilé au format machine est stocké, votre programme réinscriptible utilisateur. Ce qui a permis de remplacer la quasi-totalité des anciens supports externes pour le stockage d'instructions : les ROM, les EPROM, les EEPROM, etc.
- Les convertisseurs analogique/numérique et numérique/analogique: ces convertisseurs permettent de transposer un signal analogique reçu sur un des ports du microcontrôleur en un signal numérique et un signal numérique en une composante analogique.
- L'horloge interne : ce composant est le coeur battant du microcontrôleur puisqu'il permet de cadenser son rythme et synchroniser toutes les opérations interne à ce composant.
- E/S: tout simplement les entrées-sorties qui permettent de connecter le dit composant à des interfaces ou des composants, comme les capteurs, les actionneurs, les effecteurs, etc., pour communiquer et véhiculer l'information analogique ou numérique.
- Les modules de communication: ces modules ne sont pas disponibles sur tous les microcontrôleurs et permettent la communication avec d'autres appareils par connexion filaire ou sans fil (comme le Bluetooth ou le Wi-Fi).
Exemples de cartes ?
En électronique moderne, nous retrouvons une multitude de cartes équipées d'un microcontrôleur, telles que les cartes Arduino.
Par exemple, la carte Arduino Uno est équipée d'un microcontrôleur de la référence ATmega328P (ci-dessous sa photo), il est même le composant principal. Lorsque vous téléversez un programme compilé sous Arduino IDE, le firmware, soit le code compilé au format machine, est enregistré dans la mémoire Flash du microcontrôleur, puis exécuté en boucle infinie depuis ce circuit logique.
Nous retrouvons également les cartes Raspberry Pi Pico, qui sont dotées d'un microcontrôleur RP2040. Ce dernier offre des performances intéressantes au regard de la la taille de la carte, de son faible consommation énergétique et de sa bonne puissance de calcul.
En plus de ces deux famille de cartes connais sur le maché, il existe plusieurs autres cartes telles que :
- les cartes ESP32 : ces cartes reposent sur un microcontrôleur ESP32, intégrant des fonctionnalités avancées telles que la connectivité Wi-Fi et Bluetooth, ce qui les rend particulièrement adaptées aux applications liées aux domaine de objets connectés (en anglais IoT pour sa terminologie Internet of Things).
- la carte pyboard : une carte électronique officielle développée pour faire tourner MicroPython, basé sur un microcontrôleur de type STM32 (ARM Cortex-M4).
- les cartes micro:bit : une solution électronique programmable largement utilisée dans l’apprentissage de l’informatique, de la programmation et des concepts fondamentaux de l’électronique. Cette carte, que nous vous présentons dans l'image ci-dessous, est compatible avec plusieurs environnements et langages de programmation tels que : MakeCode (Blocs), MicroPython (Python), JavaScript ou TypeScript et C/c++.
Cette
Ainsi, ces différentes solutions, cartes programmables, constituent des solutions polyvalentes pour le développement de systèmes embarqués grâce à la puissance proposée par ces différentes références de microcontrôleur.