16 Mai 2014

Leçon 18 : la liaison SPI

Nous avons vu récemment la liaison radio par transceivers entre 2 plaques Arduino.
Nous allons nous intéresser à la liaison entre chaque carte Arduino et son transceiver.
Cette liaison, dite "S.P.I." est utilisée dans de nombreux cas.
pas FB

Les liaisons courantes

La liaison parallèle

C'est celle employé entre le PC et les anciennes imprimantes : il y avait 8 fils de donnée qui véhiculaient chacun un bit. A chaque cycle, on envoyait un octet dans le câble.
Ce câble comportait d'autres fils, essentiellement les fils d'alimentation et de synchronisation.

Les liaisons série

Il en existe de très nombreux types qui font circuler 1 bit à la fois par le fil de données.
Par habitude, le terme liaison série désigne souvent la le protocole RS232 qui a été longtemps le plus employé.
C'est la liaison des vrais ports COM des PC.
L'USB est aussi une liaison série, beaucoup plus difficile à programmer. Arduino fait semblant d'être un port COM pour simplifier la programmation.

La synchronisation

Dans toute liaison, il y a un fil de synchronisation piloté par l'émetteur et qui signale au récepteur à quel moment la donnée présente sur le fil de data est valide. On l'appelle "horloge" ou en anglais "clock".

Les fils de la liaison SPI

Ils sont au nombre de 8.

pin out nrf24l01

On considère que le PC est le maître et le transceiver son esclave.
- MOSI signifie Master Out Slave In donc donnée allant du maître à l'esclave.
- MISO signifie Master In Slave Out donc donnée allant de l'esclave au maître.
- SCLK est le signal d'horloge
- RST envoie un signal de remise à zéro de l'esclave.
- CS signifie Chip Select
Quand le maître a plusieurs esclaves, la plupart des lignes sont communes à tous. Seule la ligne CS est distincte et permet de dire à l'esclave que c'est lui qui est destinataire du message.
- IRQ signifie Interrupt Request et permet dans certains cas de provoquer une interruption.
On ne l'utilise pas dans nos montages.
- Les autres lignes sont VCC et GND.
GND est nécessaire pour avoir une référence commune.
VCC ne sert que si l'esclave est alimenté par le maître, mais il peut avoir sa propre alimentation.
Dans notre cas, VCC du transceiver est fourni par l'adaptateur 3 Volts.

SPI et Arduino

Sur les cartes arduino, on ne choisit pas les sorties pour le SPI : elles sont câblées d'origine.
Elles sont répétées aussi sur un connecteur au milieu de la carte Mega2560.
Seule, la ligne CS est à choisir. On en choisit autant qu'on a de liaisons SPI à la fois.

Les composants SPI étant récents fonctionnent généralement en 3 volts. A part pour le transceiver qui accepte le 5 volts sur ses entrées de données (mais PAS sur son alimentation), nous verrons bientôt un composant qui n'accepte en aucun cas de recevoir 5 volts.

Le 4050

Nous avons déjà parlé de la technologie TTL qui ne fonctionne qu'avec 0 volt et 5 volts.
Une autre technologie plus récente accepte des tensions plus souple. C'est la technologie CMOS.
Le 4050 est un chip CMOS qui contient 6 portes "OUI".
Son intérêt est de pouvoir avoir des tensions de sorties différentes des tensions d'entrée, donc d'accepter les 5 volts des sorties Arduino et de fournir en sortie du 3.3 volts pour des périphériques.
la tension d'une sortie à l'état HAUT est proche de la tension d'alimentation. Il nous suffit donc de l'alimenter en 3.3 volts même si les entrées de données peuvent recevoir 5 volts.
Un composant TTL n'accepte pas une tension de data supérieure à son alimentation. La technologie CMOS le permet.
Nous utiliserons bientôt le 4050 entre Arduino et un afficheur graphique.



haut de la page
flèche gauche Page Précédente : le moteur pas-à-pas           Page Suivante : affichage graphique flèche droite

Valid XHTML 1.0 Transitional





// sortie de mainContent