Choisir entre les bus I2C, SPI et UART pour son montage
Pour relier un capteur, un écran ou une mémoire à un microcontrôleur, le choix du bus influence le câblage, la vitesse et la complexité du programme. I2C, SPI et UART assurent tous une communication série, mais répondent à des besoins différents.
Imaginez un petit appareil de mesure : son écran doit afficher rapidement des valeurs, plusieurs capteurs partagent peu de broches, et un ordinateur reçoit les messages de diagnostic. Comparer le débit de données, le nombre de fils, la topologie du bus et la compatibilité matérielle aide à choisir sans surdimensionner le montage.
A retenir :
- SPI pour les échanges rapides avec un périphérique
- I2C pour plusieurs composants partageant deux lignes
- UART pour une liaison directe et un diagnostic simple
- Choix adapté aux broches, aux distances et à l’énergie disponibles
Comparer I2C, SPI et UART selon le câblage
Ces différences de câblage déterminent d’abord combien de composants un contrôleur peut gérer simplement. Pour un montage compact, le nombre de fils compte autant que la vitesse annoncée.
I2C : plusieurs composants sur deux lignes
Sur un bus I2C, SDA transporte les données et SCL fournit l’horloge. Les composants partagent ces lignes et le contrôleur les distingue grâce à leurs adresses, ce qui convient à plusieurs capteurs ou à une mémoire EEPROM.
Cette topologie du bus économise des broches, mais chaque composant doit être compatible avec le bus et disposer d’une adresse utilisable. Sur des fils longs ou exposés au bruit, la qualité du signal peut devenir un problème : gardez les connexions courtes dans un montage ordinaire.
SPI et UART : des liaisons aux rôles distincts
SPI synchronise l’échange avec une horloge et sépare les lignes de réception et d’émission. Une sélection dédiée permet au contrôleur de choisir un périphérique ; ajouter des composants demande donc souvent davantage de connexions.
UART ne partage pas d’horloge : les deux appareils doivent convenir du débit et du format des données. Les lignes TX et RX se croisent entre les appareils, une solution familière pour relier un microcontrôleur à un adaptateur USB-série ou à un module GPS.
Repères de câblage :
- I2C : deux lignes partagées, avec adresses de composants
- SPI : horloge, données et sélection pour chaque périphérique
- UART : émission et réception entre deux appareils
Critère
I2C
SPI
UART
Synchronisation
Horloge partagée
Horloge partagée
Débit convenu, sans horloge
Topologie habituelle
Plusieurs appareils adressés
Contrôleur et périphériques sélectionnés
Liaison point à point
Câblage principal
SDA et SCL
Horloge, données, sélection
TX et RX croisés
Usage courant
Capteurs, horloge, EEPROM
Écran, carte mémoire, convertisseur
Diagnostic, GPS, liaison série
La comparaison des fils ne suffit pas : le choix suivant consiste à vérifier si la vitesse et le comportement du transfert correspondent au périphérique visé.
Choisir le bus selon le débit de données
Une fois le câblage clarifié, la quantité de données à transférer devient le critère décisif. Un écran graphique et un capteur de température ne sollicitent pas le bus de la même manière.
Quand SPI est préférable pour la vitesse
SPI convient aux périphériques qui échangent beaucoup de données sur une courte liaison, par exemple une mémoire Flash ou un écran. Il peut envoyer et recevoir simultanément sur des lignes distinctes, mais les performances réelles dépendent des composants et du câblage.
Pour un afficheur, le contrôleur peut ainsi transmettre rapidement des pixels sans devoir gérer des adresses de périphériques. En contrepartie, les lignes de sélection supplémentaires consomment des broches, un point à vérifier sur une carte déjà bien occupée.
I2C et UART pour des échanges ciblés
I2C répond souvent aux besoins de capteurs qui transmettent périodiquement quelques mesures. UART est pratique pour des messages entre deux appareils, notamment lorsqu’un technicien souhaite observer les données de débogage sur un ordinateur.
La distance de transmission n’est pas une propriété fixe du nom du protocole : elle dépend aussi des niveaux électriques, des transceivers et de l’environnement. En particulier, une liaison UART logique sur une carte ne doit pas être confondue avec une interface longue distance équipée d’un circuit adapté.
Exemples de sélection :
- Écran ou mémoire sollicités : évaluer SPI
- Plusieurs capteurs modestes : envisager I2C
- Console de diagnostic : choisir souvent UART
- Liaison éloignée : vérifier l’interface électrique complète
Besoin du montage
Option à examiner
Vérification pratique
Transfert soutenu vers un écran
SPI
Broches disponibles et fréquence acceptée
Plusieurs capteurs sur peu de broches
I2C
Adresses et longueur des connexions
Messages entre deux appareils
UART
Même débit et même format de trame
Échange de données à distance
À déterminer selon l’interface
Transceivers, bruit et niveaux électriques
Le débit ne décide pas seul : la consommation énergétique, les broches disponibles et la compatibilité matérielle peuvent imposer un autre compromis.
Vérifier la compatibilité matérielle avant le montage
Les performances théoriques n’ont de valeur que si le microcontrôleur et les périphériques prennent en charge le même protocole. La vérification des fiches techniques évite les erreurs de branchement et les adaptations tardives.
Broches, niveaux électriques et consommation
Repérez les broches réellement disponibles et confirmez leurs fonctions dans la documentation de la carte. Certains montages partagent des broches avec d’autres usages ; un connecteur présent ne garantit pas toujours que le bus est activé ou configuré.
Vérifiez aussi les niveaux logiques et l’alimentation de chaque module. La consommation énergétique dépend du circuit, de son activité et de sa configuration : le choix du protocole seul ne permet pas de la déduire. Dans un appareil sur batterie, mesurez le montage en fonctionnement réel.
Tester la liaison dans le contexte réel
Un essai progressif aide à isoler les problèmes : commencez avec un seul périphérique, confirmez les échanges, puis ajoutez les autres composants. Pour I2C, contrôlez les adresses ; pour SPI, la sélection et le mode d’horloge ; pour UART, le débit et le croisement TX-RX.
Critères à contrôler :
- Broches prises en charge par la carte et le module
- Niveaux logiques et alimentation compatibles
- Longueur des fils adaptée à l’environnement
- Débit et configuration testés avec le périphérique réel
Pour le petit appareil de mesure, I2C peut relier plusieurs capteurs, SPI servir l’écran et UART transmettre les diagnostics. Cette combinaison reste pertinente seulement si les broches, l’alimentation et les besoins réels la justifient.
Source : J. Lorandel et O. Romain, « Périphériques BUS UART, I2C et SPI », IUT – Université de Cergy-Pontoise.