Serial Peripheral Interface

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?
Page d’aide sur l’homonymie

Pour les articles homonymes, voir SPI.

Liaison SPI: un nœud principal et un noeud secondaire

Une liaison SPI (pour Serial Peripheral Interface) est un bus de données série synchrone baptisé ainsi par Motorola, au milieu des années 1980 qui opère en mode full-duplex. Les circuits communiquent selon un schéma principal-secondaire, où le nœud contrôle la communication. Plusieurs nœuds secondaires peuvent coexister sur un même bus, dans ce cas, la sélection du destinataire se fait par une ligne dédiée entre le principal et le secondaire appelée « Slave Select (SS) ».

Interface

Liaison SPI avec un nœud principal et trois secondaires

Le bus SPI utilise quatre signaux logiques :

Il existe d'autres noms qui sont souvent utilisés :

Dans le cas de la convention de nommage SDI/SDO, le SDO du nœud principal doit être relié au SDI du secondaire et vice versa. Pour éviter les confusions au moment du câblage, il est donc souvent recommandé d'utiliser les dénominations MISO-MOSI qui évitent une certaine ambiguïté ; pour exemple, une librairie graphique écrite par Adafruit, prend en charge plusieurs références de contrôleurs d'écrans qui, malgré leurs actions similaires, ne possède pas toujours les mêmes noms de broches. Afin d'éviter ce "problème" les développeurs ont renommé les broches MISO/MOSI par RD et WR signifiant respectivement ReaD (lire) et WRite (écrire) ; en conclusion, on se demande si la broche Lire permet au Microcontroleur de Lire le Module LCD ou alors si elle permet au Module de Lire et donc au Microcontroleur de lui Écrire une donnée ?

Fonctionnement

Une transmission SPI typique est une communication simultanée entre un nœud principal et un nœud secondaire:

À chaque coup d'horloge le nœud principal et le secondaire s'échangent un bit. Après huit coups d'horloges le principal a transmis un octet au secondaire et vice versa. La vitesse de l'horloge est réglée selon des caractéristiques propres aux périphériques.

Polarité et phase de l'horloge

Chronogramme des différentes configurations d'horloge

La configuration de la SPI est souvent nommée dans les documentations techniques sous forme de nombre ou de couple, où le bit de poids fort est CPOL (Clock Polarity) et le bit de poids faible CPHA (Clock Phase)

Mode CPOL CPHA
0 (0,0) 0 0
1 (0,1) 0 1
2 (1,0) 1 0
3 (1,1) 1 1

Les modes 0 et 3 sont identiques en transmission, seul change l'état de la ligne d'horloge au repos. C'est pour cette raison que de nombreux périphériques peuvent être capables de dialoguer soit en mode 0 et 3, soit en mode 1 et 2.

Avantages et Inconvénients

Avantages

Inconvénients

Outils de développement

Il existe une grande variété d'instruments contrôlés par PC permettant d'agir comme nœud principal et/ou analyseur de protocole SPI. Ces outils peuvent parfois être utilisés pour des protocoles série dérivant du protocole SPI, comme les protocoles sur 3 fils.

Analyseurs de protocole SPI

Un analyseur de protocole SPI est un outil échantillonnant un bus SPI et décodant les signaux numériques pour fournir un décodage haut niveau des transactions SPI. Ces analyseurs sont des instruments indépendants ou sont fournis comme extensions à certains modèles d'oscilloscope.

Notes et références

  1. ↑ Adafruit library for 8-bit TFT LCDs such as ILI9325, ILI9328, etc, Adafruit Industries, (lire en ligne)

Voir aussi

Articles connexes

Liens externes

« SPI Signal Names - SparkFun Electronics », sur www.sparkfun.com (consulté le )