Etabli
← Retour aux leçons
Leçon · AVN-03 · Bus I2C et SPI · 1/4

Comprendre les bus I2C et SPI

4 étapes·20 min·0/4 fait·quiz à réussir
voix

Ton robot grandit : une , un écran, un thermomètre, un expandeur de … et chacun voudrait sa liaison privée avec le cerveau. À ce rythme, plus une broche de libre avant la fin du mois. Ce module change de logique : UN bus — des fils partagés par tout le monde — et des règles de politesse pour que personne ne parle en même temps. Deux grands noms t'attendent : l' et ses adresses, le et sa vitesse.

📖 Comprendre

1. Du fil privé au couloir partagé

La de tes débuts était un fil privé : un croisé vers un RX, deux appareils, et personne d'autre sur . Cette architecture ne passe pas à l'échelle : chaque nouveau module réclame sa paire de fils et ses sur le . Quatre périphériques en point à point, c'est déjà huit fils de et huit broches condamnées — et un robot sérieux embarque vite le double de modules.

Un bus renverse la logique : les MÊMES fils servent à tout le monde, tous les modules branchés dessus, comme des maisons le long d'une même rue. Le prix à payer, c'est une discipline : un seul parle à la fois. D'où les deux rôles du chapitre : le MAÎTRE — le — mène la conversation, décide qui parle et quand ; les PÉRIPHÉRIQUES — , écran, expandeur — écoutent en silence et ne répondent que lorsqu'ils sont interrogés.

2. I2C : deux fils et un chef d'orchestre

L' tient sur deux fils partagés — plus la commune, comme toujours. SDA transporte les données : les y circulent dans les deux sens, du maître vers un périphérique ou en retour. SCL transporte l'horloge : c'est le maître qui la bat, et chaque bit de SDA se lit sur un battement de SCL. Compare avec l'UART de tes débuts : là-bas, aucune horloge partagée, d'où le rendez-vous obligatoire des ; ici, le tempo voyage sur son propre fil, et le désaccord de vitesse n'existe plus.

Sur ce couloir commun, chaque périphérique porte une ADRESSE : un numéro d'identité, fixé par le fabricant et publié dans la . Le maître ouvre chaque échange en annonçant une adresse sur le bus ; seule la qui la reconnaît répond, toutes les autres restent muettes. C'est l'équivalent d'appeler un nom dans une salle pleine : un seul se lève. Côté rythme, l' classique bat à 100 , sa version rapide à 400 kHz — modeste, mais très suffisant pour des .

3. Les pull-up : le ressort qui remonte la ligne

Comment plusieurs puces peuvent-elles partager un fil sans jamais se court-circuiter ? Par une convention radicale : sur l', personne n'impose le . Chaque ne sait que tirer vers le bas ou la relâcher — jamais pousser vers le haut. Deux puces qui « parlent » en même temps tirent au pire toutes les deux vers le bas : aucun conflit de possible. C'est l'assurance anti-collision du bus, héritée directement de ta leçon sur les qui écoutent et qui parlent.

Mais si tout le monde ne fait que tirer vers le bas ou lâcher, il faut bien que quelque chose ramène au : c'est le travail des de , une sur ET une sur SCL, branchées vers le . Elles sont obligatoires : sans elles, les lignes ne remontent jamais et le bus reste muet — le symptôme classique du montage qui « devrait marcher ». Au repos, un bus sain se vérifie au : SDA et SCL doivent tous deux lire le niveau haut. Note enfin que beaucoup de petits modules du commerce embarquent déjà leurs propres pull-up — on en reparlera à la leçon de maîtrise.

4. SPI : quatre fils, pas d'adresse, un doigt pointé

Le SPI joue la même partition avec d'autres moyens : une horloge SCK battue par le maître, et DEUX fils de données au lieu d'un — pour le sens maître vers périphérique, MISO pour le retour. Le croisement qui te piégeait sur /RX est ici codé dans le nom lui-même : MOSI se relie à MOSI, MISO à MISO, chaque fil sachant déjà qui parle et qui écoute. Les deux sens circulent en même temps : pendant que le maître envoie, le périphérique répond.

La grande différence : pas d'adresse. Le maître choisit son interlocuteur par une ligne de sélection dédiée — CS, « chip select » — tirée vers CHAQUE périphérique : il abaisse de la visée, et elle seule écoute. Sans adresse à transmettre et avec des lignes poussées franchement (pas de à attendre), l'horloge grimpe à plusieurs mégahertz, voire dizaines de mégahertz : là où l' plafonne à 400 , le transporte l'image entière d'un écran sans peiner. Le prix se paie en cuivre : trois fils partagés, plus un fil de sélection par puce.

🧮 Exemple guidé : compter les fils d'un robot qui grandit

Ton robot embarque quatre périphériques : centrale inertielle, écran, thermomètre, expandeur de broches. Compte les fils de signal et les broches du cerveau pour trois architectures : liaisons privées, bus SPI, bus I2C. Puis ajoute un cinquième module et regarde ce que chaque facture devient.

  1. 1.Liaisons privées : 4 modules × 2 fils (une bouche, une oreille) = 8 fils de signal, et 8 broches du cerveau condamnées.
  2. 2.SPI : 3 fils partagés (SCK, MOSI, MISO) + 1 sélection par puce = 3 + 4 = 7 fils, 7 broches.
  3. 3.I2C : SDA + SCL = 2 fils partagés, 2 broches — les quatre modules branchés en parallèle sur la même paire.
  4. 4.Cinquième module : liaisons privées 8 → 10 fils ; SPI 7 → 8 ; I2C 2 → … 2. La facture I2C ne bouge pas d'un fil.

Trois architectures, trois pentes : le point à point coûte deux fils par module, le SPI un seul, l'I2C zéro. Voilà pourquoi les réseaux de capteurs voyagent en I2C — et pourquoi le SPI, plus gourmand en cuivre, se réserve aux gros débits, écran en tête.

🛠 Pratiquer sur l'établi

  1. 01Compter les fils économisés : bus contre liaisons directes

    Pose les quatre modules sur la et tire d'abord les liaisons privées : deux fils par module, jusqu'au cerveau. Compte les fils et les occupées, note les deux chiffres. Puis efface tout et tire le bus : une seule paire qui court de module en module. Recompte — c'est ce rapport de huit à deux qui justifie tout le chapitre.

Objectifs

  • +Comprendre l'idée de bus partagé
  • +Différencier et
  • +Câbler chaque bus correctement
🧪 S'entraîner dans le bac à sable

Quiz de validation

À réussir pour valider la leçon

Réponds de mémoire, sans remonter la page : c'est l'effort de rappel qui grave le cours. Les trois bonnes réponses valident la leçon.

1. Qu'est-ce qui distingue un bus d'une liaison point à point ?

2. Sur un bus I2C, à quoi sert le fil SCL ?

3. En SPI, comment le maître désigne-t-il la puce à qui il parle ?

🧠 Ce qu'il faut retenir

  • 1.Un bus partage les fils : chaque périphérique répond à son adresse () ou à son CS ().
  • 2.Sans de rappel, l' reste muet — elles font partie du bus.
  • 3. : simple et lent ; : filaire et rapide — deux outils, deux usages.