• Aucun résultat trouvé

SPI - Serial Peripheral Interface

N/A
N/A
Protected

Academic year: 2022

Partager "SPI - Serial Peripheral Interface"

Copied!
7
0
0

Texte intégral

(1)

Bus de communication série synchrone

• Dédié pour établir une communication inter-composants, voir inter-cartes, au sein d'un même système

• Standard établi par Motorola et repris par différentes marques

• Full Duplex

• Maître-esclaves – Un seul maître possible sur le bus

• Plusieurs esclaves peuvent coexister sur un bus

• La sélection du destinataire se fait par une ligne dédiée chip select.

SPI est disponible sur bon nombre de microprocesseurs et de microcontrôleurs : 68XX, 683XX, MCORE, MPC8260, DSP 56XXX de Motorola, mais aussi chez Atmel, Microchip, Texas Instruments etc ...

SPI est dédié aux applications nécessitant des transferts de flots de données telles que : communication entre des microprocesseurs ou des DSP, convertisseurs A/N ou N/A, CODEC ( coder - decoder ) etc...

SPI - Serial Peripheral Interface

(2)

Le bus SPI contient 4 signaux logiques :

SCLK — (

généré par le maître

)

MOSI

(généré par le maître)

MISO

(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é.

Les signaux :

(3)

Le bus SPI est une liaison série synchrone qui opère en mode "full duplex" - émission / réception simultanée

La méthode d'accès et du type maître / esclave et c'est toujours le maître qui a

l'initiative des échanges : quand le maître sélectionne l'esclave et génère l'horloge, les données sont échangées dans les deux directions, simultanément.

Le maître ne tient pas compte de la donnée reçue dans le cas d'un échange "écriture seule" ou alors il envoie un octet sans importance ( 0xFF ) dans le cas d'un échange

"lecture seule" ;

La communication avec un esclave de type CODEC par exemple

(coder-decoder),

permet d'exploiter pleinement les capacités du bus SPI, avec un flot de données bidirectionnel.

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.

A 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.

(4)

Il est possible de choisir le type d’horloge grâce à une combinaison de 2 bits dans le registre

SPCON : le bit noté CPOL (Clock POLarity) et le bit noté CPHA (Clock PHAse).

• CPOL détermine le niveau logique de la ligne SCK au repos.

• CPHA détermine le front sur lequel la donnée est modifiée et le front sur lequel la donnée

va être lue.

Les signaux :

Les modes 0 et 3 sont identiques en transmission, seule 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.

Mode CPOL CPHA

O 0 0

1 0 1

2 1 0

3 1 1

Chronogramme des différentes configurations d'horloge

(5)

En mode maître, la vitesse de transmission est sélectionnée par 3 bits du registre SPCON (Serial Peripheral CONtrol register): SPR2, SPR1 et SPR0.

La fréquence d’horloge est choisie parmi 7 fréquences obtenues par division de la fréquence de fonctionnement du microcontrôleur.

SPR2 : SPR1 : SPR2

Fréquence de la SPI

000 Fμc/2

001 Fμc/4

010 Fμc/8

011 Fμc/16

100 Fμc/32

101 Fμc/64

110 Fμc/128

Pour le SPI il est possible de trouver certains composants au delà de 20 Mbits

Le chaînage SPI :

Certains composants SPI sont conçus pour être chaînés,

simplifiant ainsi les connexions entre composants, en réduisant le nombre de lignes SS nécessaires.

(6)

Avantages :

Communication Full duplex

Débit assez important par rapport à I²C Flexibilité du nombre de bits à transmettre Simplicité de l'interface matérielle

Aucun arbitre nécessaire car aucune collision possible

Les esclaves utilisent l'horloge du maître et n'ont donc pas besoin d'oscillateur de précision

Partage d'un bus commun pour l'horloge, MISO et MOSI entre les périphériques

Inconvénients :

Monopolise plus de pattes d'un boîtier que l'I2C ou une UART qui en utilisent seulement deux.

Aucun adressage possible, il faut une ligne de sélection par esclave en mode non chaîné.

Le protocole n'a pas d'acquittement. Le maître peut parler dans le vide sans le savoir.

Il ne peut y avoir qu'un seul maître sur le bus.

Ne s'utilise que sur de courtes distances contrairement aux protocoles RS-232, RS- 485 ou bus CAN

Avantages et Inconvénients :

QSPI

(queued serial peripheral interface) est un type de contrôleur SPI, pas un autre type de bus.

Il utilise une file d'attente de données avec des pointeurs programmables qui permettent à certains transferts de données sans intervention du processeur

(7)

 Si on doit interconnecter plusieurs boitiers et que la vitesse n'est pas un problème, préférer l'I2C car c'est un protocole (ce qui n'est pas le cas du SPI)

 Si on veut de la vitesse le SPI est loin devant…

 Implémentation logicielle sur des E/S : Il est BEAUCOUP plus facile (et cela prend moins de ressources) de faire du SPI par logiciel sur des broches d'E/S que de l'I2C dû à la machine d'état.

 Mise en œuvre : l'I2C est plus compliqué à mettre en œuvre (il suffit de voir le nombre de questions sur l'I2C dans les forums...).

 L'interconnexion de plusieurs boitiers est également plus délicate avec l'I2C car il faut prendre en compte les impédances de chacun des boitiers pour calculer les résistances de rappels.

Même s'il existe des variations de l'I2C qui montent au dessus de 1MHz, la grande majorité des implémentations que l'on trouve utilisent généralement 100 ou 400 kHz

Pour le SPI il est possible de trouver certains composants au delà de 20 Mbits

I2C Vitesse de transmission SPI

I2C Topologie SPI

C'est un véritable protocole qui permet l'interconnexion de multiples boitiers dans différentes configurations :

Maitre / Esclave, Maitre / Multiple esclaves, Multiple Maitres / Multiples esclaves

En général point à point, bien que l'on puisse connecter plusieurs esclaves mais il faut alors des lignes

supplémentaires. Un seul maitre qui génère l'horloge.

I2C Consommation SPI

du à la configuration collecteur/ drain ouvert sur les 2 lignes de transmission (SDA + SCL), consommation relativement élevée

signaux de type TTL/CMOS donc consommation faible

Avantages/Inconvénients

Références

Documents relatifs

ATELIER AVEC LE MAÎTRE Atelier avec le maître. Atelier avec

Il est commandé par un joystick ou le retour de force a été réalisé à l’aide d’un moteur à courant continu sur un..

Lucrèce considère cette théorie comme impossible car soit chacun des éléments conserve sa propriété spécifique funditus (I, v. Toutefois, la personne même du mage

RÉSUMÉ. Nous proposons une méthode d’appariement. Elle exploite une méthode de transfert de champ élaborée à partir de calculs d’intersection et de calcul de structure

 Les symptômes mènent vers une diminution des relations sociales, de la performance au travail ou d’autres sphères importantes de la vie.  Les symptômes mènent vers des

o GPIO_PinConfigure pour configurer ces broches en mode: Alternate Function, Output Push Pull, Output Speed 50MHz, et no Pull up/down. Ecrire ensuite un programme principal

Pour chacun de ces mots vous devez trouver un mot de la même famille.Exemple :Vous deviez trouver un mot de la même famille que «porter» on a écrit sur la même ligne dans le tableau

Le maître a fait sa prérentrée aujourd'hui pour essayer d'organiser la réouverture progressive de l'école et l'accueil des élèves de CE 1 à partir du 25 mai.. Afin de préparer