Le Bus Spi
Le Bus Spi
Le Bus Spi
charges
Le bus SPI
Sommaire
Page 2/10
Ressources
STI2D- SIN
Le bus SPI
a) Origine
La sophistication et la complexit des appareils grand public ne permet plus l'change entre
composants lectroniques par liaisons parallles, ces liaisons devenaient de plus en plus nombreuses et
encombrantes. Dans ces systmes base de microcontrleurs (tlphones mobiles...), les changes de
donnes entre les composants se font maintenant avec des bus srie.
Dans le but de minimiser ces liaisons, et par consquent den augmenter la fiabilit, a t cr le bus
srie SPI (Synchronous Peripheral Interface), initialement dvelopp par Motorola.
Dautres fabricants (Microchip, Atmel, Texas Instrument...) ont adopt pour ce type de liaison et de
nombreux composants sont apparus (mmoires, capteurs, microcontrleurs ...)
Pas de contrle
physique de donnes
Transmission en "FULL
DUPLEX"
Bus SPI
Lignes de communication
unidirectionnelles.
Transmission courte distance.
Communication entre p
Robotique (drone...)
Page 3/14
Ressources
STI2D- SIN
Le bus SPI
Fils de cuivre
Piste imprimes
MOSI
MISO
SSn
Page 4/14
SPR1
0
0
1
1
0
0
1
SPR0
0
1
0
1
0
1
0
Ressources
STI2D- SIN
Le bus SPI
On utilise le principe du registre dcalage. Dans le cas ci-dessus, en 8 priodes d'horloge, l'octet
passe du registre du matre celui de l'esclave et rciproquement le contenu du registre d'esclave est
pass dans celui du matre (full-duplex : simultanit des transferts). Puisquil ne peut pas y avoir de
collisions lors du transfert, il n'y a pas besoin d'arbitrage.
Lien avec le modle OSI
La couche 2 est ralise par le contrleur SPI intgr dans un microcontrleur.
Polarisation de la ligne MISO
Lorsque le bus est inutilis, ce qui revient dire quaucun esclave
nest slectionn, la ligne MISO est ltat haute impdance, ce qui
ne permet pas den dfinir ltat logique.
On vite cela par lutilisation dune rsistance de polarisation, de 5
50 kOhms, qui na aucune influence sur la vitesse de transmission
(contrairement ce qui se passe pour un bus i2C).
+5V
RP
MISO
Rle des bits CPOL et CPHA (pour un AT80C5112) dans le mode de service du bus SPI
Dans les caractristiques du bus SPI du microcontrleur AT80C5112, on peut dterminer, grce deux
paramtres, les fronts o les donnes sont transmises (acquisitions des valeurs) et les moments o elles
peuvent tres modifies.
Ces deux paramtres sont les bits CPOL (ClockPolarity) et CPHA (ClockPhase).
Il existe donc 4 modes de transmission diffrents (voir tableau ci-dessous). Pour une transmission
correcte il faut que ces paramtres soient rgls de la mme manire pour tous les composants relis
au bus.
Mode SPI
0
1
2
3
Page 5/14
CPOL
0
0
1
1
CPHA
0
1
0
1
Ressources
STI2D- SIN
Le bus SPI
Lorsque CPHA = 1, les donnes sont rceptionnes avec le deuxime front du signal dhorloge.
Pour CPOL=0, au repos, lhorloge est au niveau BAS et monte au niveau HAUT aprs le premier front,
le deuxime front est donc un front descendant.
Pour CPOL=1, au repos, lhorloge est au niveau HAUT et descend au niveau BAS aprs le premier
front; le deuxime front est donc un front montant.
Page 6/14
Ressources
STI2D- SIN
Le bus SPI
Cette disposition permet de rduire le nombre de lignes /SS, mais en contre partie il faudra un
"buffer" plus grand dans le matre (ou une gestion du soft plus labore).
Page 7/14
Ressources
STI2D- SIN
Le bus SPI
Page 8/14
Ressources
STI2D- SIN
Le bus SPI
Avantages
Inconvnients
Page 9/14
Ressources
STI2D- SIN
Le bus SPI
Registre programmer
Le mode SPI peut-tre configur pour fonctionner soit en Matre soit en Esclave, la vitesse de
transmission varie de 1,5 MHz 3 MHz. On remarque la bidirectionnalit du registre dcalage.
b) Le registre SPCR: Serial Peripheral Control Register
SPIE
SPE
DOWM
MSTR
CPOL
CPHA
SPR1 & 0
Page 10/14
Ressources
STI2D- SIN
Le bus SPI
SPIF
WCOL
MODF
Page 11/14
Ressources
STI2D- SIN
Le bus SPI
.
bit 7 WCOL
bit 6 SSPOV
bit 5 SSPEN
bit 4 CKP
bit 3-0
SSPM3:SSPM0
Note 1: Dans le mode Matre , le bit de dpassement n'est pas mis 1 chaque transmission ou nouvelle
rception mais est initialis par une criture dans le registre SSPBUF.
2: Si valid, cette broche doit tre configur comme une entre ou une sortie.
Page 12/14
Ressources
STI2D- SIN
Le bus SPI
bit 7 SMP
bit 6 CKE
bit 0 BF
: Sample bit
Dans le mode Matre
1 = Echantillonnage de la donne entrante la fin du temps de sortie de la donnes
sortante
0 = Echantillonnage de la donne entrante au millieu du temps de sortie de la
donnes sortante
Dans le mode Esclave mis 0
: SPI Clock Select bit
1 = Transmission sur front de l'tat actif vers tat repos de l'horloge
0 = Transmission sur front de l'tat repos vers tat actif de l'horloge
Dans le mode Esclave mis 0
: Buffer Full Status bit (Receive mode only)
1 = Rception complte, SSPBUF plein
0 = Rception incomplte , SSPBUF vide
Page 13/14
Ressources
STI2D- SIN
Le bus SPI
1. System Summary 4.1: A short version of the MMCA System Specification 4.1.
http://www.mmca.org/compliance/buy_spec/MMCA_System_SummaryV41.pdf
2. SD Card Physical Layer Specification: Simplified version V1.01. http://www.sdcard.org/sdio/Simplified Physical
Layer Specification.PDF
7. Bibliographie et sources
Internet : documents constructeurs motorola, microchips, Maxim.
Cours et diaporama sur les liaisons sries de T.Berenguer, P Monassier, B Nourry.
Page 14/14
Ressources
STI2D- SIN