SPI
Serial Peripheral Interface
Le SPI est un protocole de communication série en full-duplex. Un maitre contrôle le bus qui peut comporter plusieurs esclaves.
Connexions
L'interface SPI réclame au moins 4 fils (en plus de la masse) :
- SCLK (SCK, SCL) — Serial Clock, Horloge controlé par le maître
- MOSI (SDI, DI, SI) — Master Output, Slave Input (Serial Data In), controlé par le maître
- MISO (SDO, SDA, DO, SO) — Master Input, Slave Output (Serial Data OUT), généré par l'esclave
- SS (nCS, CS, nSS, STE, CSN) — Slave Select, Actif à l'état bas, controlé par le maître
On peut connecter tous les esclaves en parallèle, mais on peut aussi les chainer :

Echanges
- Le maitre va sélectionner un esclave avec SS, générer les signaux d'horloge SCLK en envoyant des données, une requête, sur MOSI
- L'esclave répondra sur MISO
Il faudra donc que le maitre sache combien de données il doit envoyer pour émettre une requête, ainsi que pour écouter la réponse, afin d'envoyer le bon nombre de coups d'horloge. Ce sera défini par convention dans la requête (souvent des octets). Par exemple, si la requête demande un octet en réponse, le maitre génèrera 8 coups d'horloge.
Il faudra respecter la vitesse d'horloge maximale acceptable par le maitre et l'esclave.
Mode : polarité et phase
Deux paramètres doivent être réglés :
- Polarité de l’horloge : le niveau du signal d’horloge (bas ou haut) en l’absence de communication.
- Phase d'échantillonage : front montant ou descendant.

La même chose sous forme de chronogramme :

Il faudra que le maitre et l'esclave utilisent le même mode !
- SPI bus (wikipedia english)