vendredi 19 juillet 2013

[BIBLIOTHEQUE] Serial Peripheral Interface

Une liaison SPI (pour Serial Peripheral Interface) est un bus de données série synchrone baptisé ainsi par Motorola, et qui opère en Full-duplex. Les circuits communiquent selon un schéma maître-esclaves, où le maître s'occupe totalement de la communication. Plusieurs esclaves peuvent coexister sur un bus, la sélection du destinataire se fait par une ligne dédiée entre le maître et l'esclave appelée chip select.


Le bus SPI contient 4 signaux logiques
  • SCLK — Horloge (généré par le maître)
  • MOSI — Master Output, Slave Input (généré par le maître)
  • MISO — Master Input, Slave Output (généré par l'esclave)
  • SS — Slave Select, Actif à l'état bas, (généré par le maître)
Il existe d'autres noms qui sont souvent utilisés.
  • SCK — Horloge (généré par le maître)
  • SDI,DI,SI — Serial Data IN
  • SDO,DO,SO — Serial Data OUT
  • nCS, CS, nSS, STE — SS
Dans le cas de la convention de nommage SDI/SDO, le SDO du maître doit-être relié au SDI de l'esclave 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é.


Fonctionnement

Une transmission SPI typique est une communication simultanée entre un maître et un esclave.

  • Le maître génère l'horloge et sélectionne l'esclave avec qui il veut communiquer
  • L'esclave répond aux requêtes du maître
À chaque coup d'horloge le maître et l'esclave s'échangent un bit. Après huit coups d'horloges le maître a transmis un octet à l'esclave 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



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)
ModeCPOLCPHA
0 (0,0)00
1 (0,1)01
2 (1,0)10
3 (1,1)11

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.









Aucun commentaire:

Enregistrer un commentaire