Bus SPI
Nous illustrons le fonctionnement du bus SPI avec un capteur
de pression MPL115A.
datasheet_MPL115A
Le bus SPI est un une laison série maître-esclave :
- synchrone : transmission de l’horloge
- Full Duplex : On peut transmettre et recevoir simultanément (cf 2 fils de données)
- MOSI : Master Output Slave Input
- MISO : Master Input Slave Output
- SCL : Horloge
- CS : Chip Select (actif à l’état bas)
REMARQUE : Plusieurs Esclaves peuvent être branchés sur un même bus SPI.
Plusieurs sorties GPIO sont alors utilisées pour désigner chaque esclave.
MOSI et MISO ont des sorties 3 états (‘0’ / ‘1’ / Haute Impédance).
Paramétrage du périphérique SPI :
- MSB (Most Significant Bit) First
- Fonctionnement sur Front montant
Capteur de Pression MPL115A
Le Capteur de Pression MPL115A est un composant complexe comportant de nombreux registres.
L’utilisation de ce capteur suppose donc d’adresser ces différents registres pour :
- configurer le capteur / passer un ordre (accès en écriture)
- lire une valeur (accès en lecture)
Accès au capteur en écriture
Afin d’accéder à un registre du capteur, il faut :
- Envoyer l’adresse du registre (addr_reg << 1)
- Envoyer la donnée à inscrire dans le registre (0x00)
Cliquer sur la figure ci dessous:
Accès au capteur en lecture
Afin de lire un registre du capteur, il faut :
- Envoyer l’adresse du registre précédé de ‘1’ : 0x80 | (addr_reg << 1)
- Envoyer une donnée sur MOSI pour “pousser” les bits de l’esclave.
Cliquer sur la figure ci dessous: