SPI
ChristianDupaty
BTSSystèmesNumériques
LycéeFourcade‐Gardanne
Académied’AixMarseille
RASPBERRYPIetPYTHON:SPI 
BTS systèmes numériques http://genelaix.free.fr2/7
1) TP:SPI
Alire:http://fr.wikipedia.org/wiki/Serial_Peripheral_Interface
LebusSPIestunbusdecommunicationsynchrone.ContrairementaubusI2Cilestfullduplex(unelignede
transmissionMOSIetunelignederéceptionMISO).Trèsrapidecarsansprotocolelogiciel,ilnécessiteen
revancheunelignesupplémentaire/CSpoursélectionnerl’esclave.Cebusestdonctrèsutilisédansles
communicationslocalespourunpetitnombredepériphériques.LaRaspberryPidisposed’unbusSPIetde
deux/CS.
Unsitedonnantunexemplehttp://www.100randomtasks.com/simplespionraspberrypi
ActiverlepériphériquesurlaRaspberryPi
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Retirerle#devantlalignespibcm2708
(fairedemêmepourlaligneI2Csinécessaire)
Redemarrer:sudo reboot now
Aprèsleredémarrage,taper lsmod, lespériphériquesi2cetSPIdoiventapparaitredanslaliste
InstallationdelabibliothèqueSPISPIdevetdocumentationhttp://tightdev.net/SpiDev_Doc.pdf
PourinstallerlabibliothèqueSPIDEV
mkdir python-spi
cd python-spi
wget https://raw.github.com/doceme/py-spidev/master/setup.py
wget https://raw.github.com/doceme/py-spidev/master/spidev_module.c
sudo python setup.py install

RASPBERRYPIetPYTHON:SPI 
BTS systèmes numériques http://genelaix.free.fr3/7
Exemple,échanged’unoctet:
LeprogrammecidessousactiveleSPI0puistousle1/10senvoie0x17,laréceptionestdansresp.
RaspberryPipossèdedeux/CSpourleportSPI,dansl’exemplecidessous/CS1estutilisé
Brochagesurleconnecteurd’extensionRaspberryPi:
MOSI:12,MISO:13,SCLK:14,CE0:10,CE1:11
import spidev
import time
spi = spidev.SpiDev() # crée l’objet SPI
spi.open(0, 1) # demarre spi port 0, (CS) 1
try: while True:
resp = spi.xfer2([0x17]) # transfer un octet
time.sleep(0.1) # attend 0.1 secondes
except KeyboardInterrupt: # Ctrl+C pour quitter
spi.close() # ferme le peripherique
Résultatdetransmissiond’unoctet(0x17=0b00010111),programmecidessus
Enjaunel’horloge,enbleu/CS,envertMOSI.

RASPBERRYPIetPYTHON:SPI 
BTS systèmes numériques http://genelaix.free.fr4/7
FonctionsdelabibliothèqueSPI:
bits_per_word
Description:nombredebitspartransfert(généralement8).
8ou16ex:bits_per_word=8
close
Syntax:close()
Retournes:Rine
Description:désactivel’interface.
cshigh
Description:indiquesiCSestactifàl’étathaut(généralementCSestactifàl’étatbas)
ex:cehight=false
loop
Description:bouclepourtesterl’interface.Exloop=false
lsbfirst
Silepoidsfaibledoitêtretransmisenpremier
ex:lsbfirst=false
max_speed_hz
Description:VitessedetransfertenHz
ex:max_speed=100000
mode
PolaritédubusSPI:[CPOL|CPHA](voirdatasheetdupériphérique)
xestcomprisentre0b00=0..0b11=3ex:mode=0
open
Syntaxe:open(bus,device)
Description:activeSPI(0ou1).DeviceestlenuméroduCS(0ou1)
readbytes
Syntaxe:read(x)
Retourne:[values]
Description:Litxoctetsdurl’esclave.
threewire
Description:Propriétédespériphériquesnedisposantqued’uneligneI/O(voirdatasheetdupériphérique)
ex:threewire=Thrue
writebytes
Syntaxe:write([values])
Retournes:rien
Description:Ecritunoctetversl’esclave.
xfer
Syntaxe:xfer([values],tempo)
RASPBERRYPIetPYTHON:SPI 
BTS systèmes numériques http://genelaix.free.fr5/7
Retourne:[values]
Description:EchangelesdonnéesMaitreEsclave,CSrepasseàl’étathautentrelesoctets.Tempoenμsec
entrelesoctets
xfer2
Syntaxe:xfer2([values])
Retourne:[values]
Description:EchangelesdonnéesMaitreEsclave,CSresteàl’étatbasentrelesoctets
UnexempleSPI:Horlogetempsreel,sortiesurlemoduleSPI
«Serial7Segments8digit»MIKROELEKTRONIKA.
http://www.mikroe.com/addonboards/display/serial7seg8digit/
Connexionsàréaliser7SEGRPi:
VDD5vGND
CS0:RPi10
MISO:RPi13
MOSI:RPi12
SCK(surRC3_RF3):RPi14
Laphotocidessousmontrel’horlogetempsréel.Laconnexionutiliselacarted’extensionPiFace
(http://www.piface.org.uk/)
1 / 7 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 !