Académique Documents
Professionnel Documents
Culture Documents
Lors des échanges entre le maitre et un esclave, le maitre génère les signaux d’horloges,
émet (broche SDO ou MOSI : Master Out Slave In) et reçoit des données (broche SDI ou
MISO : Master In Slave Out). Celles-ci sont insérées dans un registre à décalage qui peut
être lu en interne sous la forme d’un registre parallèle. Il est possible de lire et d’écrire en
même tems : on parle de full duplex.
L’esclave possède lui aussi des broches (SDI ou MOSI : Master Out Slave In et SDO ou
MISO : Master In Slave Out). Les broches MOSI du maitre et des esclaves sont reliées entre
elles, il en est de même pour les broches MISO.
Le bus SPI peut avoir plusieurs nœuds esclaves, mais normalement, au plus un seul est actif à
un instant donné ; la sélection de l’esclave est réalisée à partir de signaux CS (Chip Select) ou
SS (Slave Select).
1
Notez que pour n esclaves, il faut (3+n) lignes, ce qui devient un inconvénient pour un bus série si le
nombre d’esclaves augmente.
2
1. La bibliothèque SPI de MyRIO.
Lancer myRIO, puis MyRIO project >Next. Donnez un nom à votre projet >FINISH.
Vous notez la présence de l’icône SPI. Ouvrez là, pour obtenir la configuration du bus SPI :
3
Il est possible de choisir :
Connecter la Breadbooard Adapter for Ni myRIO sur le port MXPA de myRIO. Pour rappel, on
a :
4
Pour le port MXPA :
Notez qu’il n’y a pas de broche SS ou CS, il faudra prendre une broche DIO non utilisée.
Nous allons faire des tests pour vérifier les configurations possibles de l’interface SPI de
MyRIO. La carte breadboard est présentée à la suite,
5
CAS 1 : Trames émises par myRIO sans récepteur.
myRIO est toujours maitre et il n’y a pas d’esclave (cas inutile en pratique). Seuls les signaux
émis par MOSI et SCK sont disponibles ; Câbler la sortie DIO7 (MOSI) sur la voie CH1 de
l’oscilloscope et la sortie DIO5 (SCK) sur la voie CH2. Ne pas oublier de relier la broche GNd à
la masse de l’oscilloscope.
6
Compiler le projet et le télécharger dans myRIO, régler l’oscilloscope et observer les trames
obtenues. Les relever et les interpréter : front actifs, durée d’un bit, fréquence d’horloge,
nombre de bits émis, polarité et phases, mode ….
En restant sur une longueur de 16 bits, changer la donnée à émettre (la changer en
U16) :0x34E9, vérifier le résultat obtenu : une trame de 16 bits est émise.
Est-ce le même résultat qu’avec l’émission de deux octets non signés ? Pour le savoir réaliser
le vi suivant (données en U8) et faire le test à l’oscilloscope.
7
Vous notez que dans ce cas, 8 tops d’horloges seulement sont émis, donc on a l’impression
qu’un seul octet est émis. Changer la base de temps de l’oscilloscope pour observer deux
trames sur le même écran (mode single seq) puis dilater la base de temps pour observer les
contenus ! Conclure.
Modifier la configuration du vi express SPI (8bits) pour obtenir les modes 1, puis 2 puis 3.
CAS 2 : Trames émises par myRIO avec récepteur myRIO sur le même port.
Relier les broches DO6 à DO7 puis réaliser le vi suivant et sa configuration associée.
8
Notez que le vi express SPI est configuré pour faire des écritures et des lectures.
Exécuter le vi est vérifier sur la face avant que ce qui est émis est bien reçu…
On peut changer les mots émis de constante à commandes pour comparer les codes émis et ceux
reçus…
9
3. Communication avec le module POLULU LSM 303D en mode SPI.
10
La notice constructeur indique :
Connecter un oscilloscope à la carte Polulu : CH1 sur SCL et CH2 sur SDA.
11
La table partielle des registres est la suivante :
Nous souhaitons lire le contenu du registre WHO-AM-I , dont la valeur par défaut est 0x49 .
Justifier que la trame à émettre de myRIO vers Polulu est 0x8F pour pouvoir lire le registre
WHO-AM-I. En réalité, myRIO est le maitre, et d’après les chronogrammes, on doit générer
16 coups d’horloges (8+8) pour récupérer le contenu du registre. On décide arbitrairement
de compléter la valeur par 0x8FAA, où AA est arbitraire et n’importe quel autre octet fera
l’affaire.
Réaliser le vi suivant, puis l’exécuter. Attention, les types de données doivent être en U16 !!!
12
L’interface de paramétrage de la liaison SPI est la suivante :
13
Le vi express a généré le code suivant basé sur des vi de bas niveaux (clic vi express puis view code).
Expliquer.
14