1. Les broches d’entrées/sorties généralistes (GPIO)

Les broches GPIO (General Purpose Input/Output) permettent au microcontrôleur d’interagir directement avec le monde extérieur :

  • Entrées logiques : Lecture d’un état binaire haut (HIGH – 3.3V) ou bas (LOW – 0V). Nécessite l’activation d’une résistance de rappel interne (Pull-Up ou Pull-Down) pour éviter les états flottants indéterminés.
  • Sorties logiques : Émission d’une tension pour piloter une LED ou la gâchette d’un transistor. Attention : une broche GPIO ne peut débiter qu’un courant modeste (généralement 12 à 20 mA maximum).
  • Modulation de largeur d’impulsion (PWM) : Génération d’un signal tout-ou-rien à fréquence fixe dont on module le rapport cyclique (Duty Cycle) pour faire varier l’intensité d’un éclairage ou positionner un servomoteur.

2. Comparatif des bus de communication série locaux

Pour échanger des données entre le microcontrôleur et ses capteurs/périphériques sur une carte électronique :

1. UART (Universal Asynchronous Receiver-Transmitter) :
   - Fils : 2 lignes (TX pour émettre, RX pour recevoir) + Masse commune (GND).
   - Mode : Asynchrone (pas d'horloge partagée ; les deux équipements doivent être configurés au même Baudrate, ex: 115200 bauds).
   - Usage : Console de débogage série, modules GPS, modems cellulaires 4G/5G.

2. I2C (Inter-Integrated Circuit) :
   - Fils : 2 lignes seulement (SDA pour les données, SCL pour le signal d'horloge) + résistances de pull-up.
   - Mode : Synchrone, maître/esclaves. Chaque périphérique possède une adresse hexadécimale unique sur 7 bits.
   - Débit : Standard 100 kbit/s, Fast mode 400 kbit/s.
   - Usage : Capteurs environnementaux (BME280), écrans OLED (SSD1306), horloges temps réel (RTC).

3. SPI (Serial Peripheral Interface) :
   - Fils : 4 lignes (MOSI, MISO, SCK horloge, SS/CS sélection du périphérique).
   - Mode : Synchrone, Full-Duplex à très haute vitesse (plusieurs dizaines de MHz).
   - Usage : Lecteurs de cartes Micro-SD, écrans graphiques TFT, puces radio LoRa (SX1276/SX1262).

3. Diagnostic de bus à l’oscilloscope et à l’analyseur logique

Dans nos travaux pratiques, les apprenants utilisent un petit analyseur logique USB couplé au logiciel PulseView pour inspecter la forme réelle des trames I2C et diagnostiquer les problèmes de collisions ou d’absence de signal d’acquittement (ACK/NACK).

Avertissement technique : L’ESP32 fonctionne sous une tension logique de 3.3V. Le connecter directement à un capteur 5V sans adaptateur de niveau logique (Logic Level Converter) détruira instantanément les broches du microcontrôleur !