Partie 9 Communication série SPI Serial communication with SPI

CV C/TD INFO2 - Partie 9 page 1
Cours/TD d’informatique embarquée
Utilisation d’un microcontrôleur MBED
Partie 9
Communication série SPI
Serial communication with SPI
Plan du cours
9.1. Introduction
9.2. Etude de la communication SPI
9.3. Utilisation de SPI avec mbed
9.4. Etude du circuit MCP3201
9.5. Etude du circuit MCP4141
CV
9.1. Introduction
SPI est l’abréviation de
__________________________________
SPI est un protocole
_____________________________________
Ce protocole utilise une relation maître/esclave entre les comp
Lorsque le maître initie la communication en sélectionnant un esclave, les données peuvent être
transférées
______________________________
Il existe de nombreux composants compatibles SPI
Le protocole SPI
utilise 4 signaux de communication (+ la masse)
__________ :
_______________________
__________ :
_______________________
__________:
_______________________
____ :
___________________
9.2 Etude de la communication
SPI est adapté
_______________________________________
communication entre 2 microprocesseurs ou le transfert de do
analogique-
numérique nécessitant
Le transfert de données est plus
l’horloge
________________________
______________________.
La communication SPI est
bien adapté
Procédure de transfert de données
1. Le maître
__________________
2. Le maître
_____________________
3. Le maître active
_______________________
4.
L’esclave renvoie les données de la même manière sur le fil MISO
Rq :
Le nombre de bits de chaque trame peut
C/TD INFO2 - Partie 9
__________________________________
.
_____________________________________
.
Ce protocole utilise une relation maître/esclave entre les comp
osants.
Lorsque le maître initie la communication en sélectionnant un esclave, les données peuvent être
______________________________
: communication
_____________________
Il existe de nombreux composants compatibles SPI
.
utilise 4 signaux de communication (+ la masse)
:
_______________________
(horloge)
_______________________
(transmission du maître vers l’esclave)
_______________________
(transmission de l’esclave vers le maître)
___________________
(sélectionne l’esclave actif, un fil CS par esclave)
SPI
_______________________________________
, par exemple des données de
communication entre 2 microprocesseurs ou le transfert de do
nnées à partir d'un convertisseur
numérique nécessitant
_____________________________________________
Le transfert de données est plus
_________________________________
, car la fréquence de
________________________
, il n’y a pas besoin de transmettre
______________________
bien adapté
pour
_______________________________________
Procédure de transfert de données
:
__________________
(SCLK) qui doit être supportée par
l’esclave (jusqu’à 70MHz)
_____________________
en activant ___________________
(Souvent actif à 0V)
_______________________
et
___________________________________
L’esclave renvoie les données de la même manière sur le fil MISO
Le nombre de bits de chaque trame peut
être configuré (généralement
compris entre 4 et 16 bits)
page 2
Lorsque le maître initie la communication en sélectionnant un esclave, les données peuvent être
_____________________
(transmission du maître vers l’esclave)
(transmission de l’esclave vers le maître)
(sélectionne l’esclave actif, un fil CS par esclave)
, par exemple des données de
nnées à partir d'un convertisseur
_____________________________________________
.
, car la fréquence de
______________________
_______________________________________
.
l’esclave (jusqu’à 70MHz)
(Souvent actif à 0V)
___________________________________
compris entre 4 et 16 bits)
CV
Le maître configure également la polarité de l’horloge (CPOL) et la phase (CPHA) :
Il y a donc 4 modes possibles du bus SPI :
En général, les composa
nts SPI sont configurés pour fonctionner dans l’un de ces 4 modes (voir dans
la datasheet
de chaque composant).
Exercice 1 :
Rechercher 3 composants fonctionnant sur le bus SPI (capteur de
température, LCD...)
-
-
9.3 Utilisation de SPI
avec mbed
Les méthodes associées au type
SPI Utilisation
SPI
Définit un maître SPI connecté à des broches spécifiques
format
_______________________________________________________________________
frequency
______________________________________
write Permet
______________________
________________________
Rq
: pour faire une lecture il faudra « paradoxalement » utiliser la méthode write()
Remarque :
C
e tableau regroupe les méthodes d’un maître SPI. Il existe également une liste de méthode pour
créer un esclave SPI sur mbed : SPISlave. Nous n’en parlerons pas dans le cadre de ce cours.
C/TD INFO2 - Partie 9
Le maître configure également la polarité de l’horloge (CPOL) et la phase (CPHA) :
Il y a donc 4 modes possibles du bus SPI :
nts SPI sont configurés pour fonctionner dans l’un de ces 4 modes (voir dans
de chaque composant).
Rechercher 3 composants fonctionnant sur le bus SPI (capteur de
avec mbed
Les méthodes associées au type
SPI sont dans le tableau ci-dessous :
Définit un maître SPI connecté à des broches spécifiques
_______________________________________________________________________
______________________________________
______________________
d’une donnée ou d’une commande et
________________________
de l’esclave
: pour faire une lecture il faudra « paradoxalement » utiliser la méthode write()
e tableau regroupe les méthodes d’un maître SPI. Il existe également une liste de méthode pour
créer un esclave SPI sur mbed : SPISlave. Nous n’en parlerons pas dans le cadre de ce cours.
page 3
Le maître configure également la polarité de l’horloge (CPOL) et la phase (CPHA) :
nts SPI sont configurés pour fonctionner dans l’un de ces 4 modes (voir dans
Rechercher 3 composants fonctionnant sur le bus SPI (capteur de
_______________________________________________________________________
d’une donnée ou d’une commande et
___________
: pour faire une lecture il faudra « paradoxalement » utiliser la méthode write()
e tableau regroupe les méthodes d’un maître SPI. Il existe également une liste de méthode pour
créer un esclave SPI sur mbed : SPISlave. Nous n’en parlerons pas dans le cadre de ce cours.
CV
Le LPC1768 possède 2 interfaces SPI sur les broches p
p11/p12/p13.
En plus de ces broches il faudra utiliser
____________________________________________.
Par défaut les réglages de l’interface mbed SPI sont :
Fréquence = 1MHz
Longueur des données : 8 bits
Mode de
transmission : 0
Exercice 2 :
Ecrire les lignes
de code
broches p11, p12 et p13 du LPC1768, de régler la fréquence de
transmission à 500 kHz, le format de données sur 8 bits, et le mode
à 1.
9.4 Etude du composant
MCP3201
MCP3201 est un convertisseur a
Il sera utilisé en lecture, donc seule la broche MISO du mbed sera connectée
Montage à réaliser :
C/TD INFO2 - Partie 9
Le LPC1768 possède 2 interfaces SPI sur les broches p
5/p6/p7 et
En plus de ces broches il faudra utiliser
________________________
____________________________________________.
Par défaut les réglages de l’interface mbed SPI sont :
Longueur des données : 8 bits
transmission : 0
de code
permettant de définir un port SPI sur
broches p11, p12 et p13 du LPC1768, de régler la fréquence de
transmission à 500 kHz, le format de données sur 8 bits, et le mode
MCP3201
nalogique
-numérique 2,7V/12bits
Il sera utilisé en lecture, donc seule la broche MISO du mbed sera connectée
page 4
permettant de définir un port SPI sur
les
broches p11, p12 et p13 du LPC1768, de régler la fréquence de
transmission à 500 kHz, le format de données sur 8 bits, et le mode
CV C/TD INFO2 - Partie 9 page 5
Après la mise à ‘0’ de CS les données sont lues par le maître à partir du 4ème front montant
4ème front : B11
14ème front : B1
15ème front : B0
16ème front : de nouveau B1 (il faudra ne pas en tenir compte)
Extrait de la datasheet illustrant la transmission des 12 bits de mesure :
Code permettant de lire la valeur du convertisseur :
#include "mbed.h"
SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut cs(p8);
int main() {
cs = 1; //initialisation de CS à ‘1’
spi.format(16,0); //communication sur 16 bits / mode 0
spi.frequency(1000000); //fréquence de 1MHz
while(1){
cs = 0; //CS à ‘0’ <-> activation du circuit
unsigned int valeur = spi.write(0x00); //Lecture de la valeur en
//écrivant n’importe
//quoi...
valeur = (valeur>>1)&0x0FFF; //Mise en forme des deux
//bits lus et décalage de
//1bits pour ne pas tenir
//compte du deuxième B1
printf("valeur lue = %d\n\r", valeur); //Affichage sur la
//console
cs = 1; //CS à ‘1’ <-> désactivation
}
}
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !