Home/Blog/SPI - Quatre fils, un maître, et l'horloge qui change tout
March 20, 2026
11 min read
3 views
🇫🇷 French

SPI - Quatre fils, un maître, et l'horloge qui change tout

SPI ajoute un fil d'horloge à l'équation série et gagne en vitesse de façon spectaculaire. Voici comment MOSI, MISO, SCK et CS fonctionnent ensemble, pourquoi les modes d'horloge comptent et comment connecter plusieurs appareils.

EmbarquéÉlectroniqueSPII2CCANUARTRS-485Protocoles
Published in Technology
SPI - Quatre fils, un maître, et l'horloge qui change tout

SPI. Quatre fils, un maître, et l'horloge qui change tout

Le problème fondamental d'UART, c'est qu'il est asynchrone. Les deux extrémités doivent compter le temps indépendamment au même rythme et espérer rester synchronisées. Ça fonctionne, mais ça fixe un plafond sur la vitesse et la fiabilité.

SPI résout cela complètement. Le maître fournit un fil d'horloge. L'esclave n'a jamais besoin de mesurer le temps. il regarde simplement l'horloge et capture un bit à chaque front. C'est pourquoi SPI à 40MHz est courant, tandis qu'UART à 4MHz est une limite.


Les quatre fils

SignalDirectionRôle
SCKMaître → EsclaveHorloge
MOSIMaître → EsclaveDonnées vers l'esclave
MISOEsclave → MaîtreDonnées depuis l'esclave
CSMaître → EsclaveSélection de puce, actif LOW
mermaid
Rendering diagram...

SCK et MOSI sont partagés entre tous les esclaves. Seul l'appareil dont la pin CS est tirée à LOW répond. SPI est full-duplex. chaque cycle d'horloge, un bit va du maître à l'esclave (MOSI) et simultanément un bit revient (MISO). Pour les opérations de lecture seule, le maître envoie des octets factices pour générer les horloges.


Modes d'horloge. ce qui brûle tout le monde au moins une fois

SPI a deux paramètres : CPOL (état de repos de l'horloge) et CPHA (quel front échantillonner). Quatre modes :

code
Mode | CPOL | CPHA | Horloge au repos | Échantillonnage
-----|------|------|------------------|----------------
  0  |  0   |  0   | LOW             | front montant   ← le plus courant
  1  |  0   |  1   | LOW             | front descendant
  2  |  1   |  0   | HIGH            | front descendant
  3  |  1   |  1   | HIGH            | front montant

Le Mode 0 fonctionne pour la majorité des puces. Mais certains accéléromètres et DAC nécessitent le Mode 3. Utiliser le mauvais mode signifie que chaque octet reçu ressemble à des données valides mais corrompues. les bits sont tous là, juste décalés d'un front.

Vérifiez la fiche technique. C'est généralement une ligne dans le tableau des caractéristiques électriques : "SPI Mode 0/3" ou "CPOL=0, CPHA=0". Si la fiche est ambiguë, un analyseur logique vous indiquera immédiatement quel mode l'appareil utilise réellement.


Connexion en guirlande. l'alternative aux multiples pins CS

L'approche habituelle pour plusieurs esclaves est une pin CS par appareil. Simple et direct, mais coûte un GPIO pour chaque nouvel appareil.

L'alternative est la connexion en guirlande : MISO de l'esclave 1 se connecte à MOSI de l'esclave 2, etc. Particulièrement utilisée avec les pilotes de LED et certains réseaux d'ADC.

mermaid
Rendering diagram...

La guirlande est difficile à déboguer. si un appareil dans la chaîne se comporte mal, tout casse. Utilisez des CS indépendants quand vous pouvez vous le permettre.


Limites de vitesse pratiques

La vitesse SPI est contrainte par trois choses : la limite de vitesse du périphérique MCU, la fréquence SPI maximale de l'esclave, et la longueur des pistes PCB. Pour des pistes de moins de 10cm, 20–40MHz est généralement bon. Au-delà de 15cm, ajoutez une petite résistance série (22–33Ω) à la sortie du maître pour amortir les réflexions.

Les cartes SD sont notoirement difficiles au-delà de 25MHz en mode SPI. Si vous voyez des erreurs CRC occasionnelles. surtout quand la carte chauffe. la vitesse d'horloge est l'endroit où je regarderais en premier.

Last updated: June 24, 2026

Get notified of new posts

No spam, unsubscribe anytime.