SPI
Seriel Peripheral Interface David Urig
11.11.2014
Gliederung
●Was ist SPI?
●Was kann SPI?
●Was kann SPI nicht?
●Pinbelegung
●Register
●Datenmodi/Transferformate
●Wie funktioniert SPI?
Was ist SPI
● Protokoll zur Datenübertragung
● Standard für einen synchronen seriellen Datenbus
● Master-Slave Prinzip
Was kann SPI?
● Informationsaustausch mehrerer µC
● Vollduplexfähig
● Sehr flexibel bei:
● Taktfrequenz
● Wortlängen
● MSB oder LSB zuerst
Was kann SPI nicht?
● Mehrere Master im System
● Fehlerprotokoll
● Interrupts nicht explizit möglich
Pinbelegung
Pin Direction, Master SPI Direction, Slave SPI
MOSI User Defined Input
MISO Input User Defined
SCK User Defined Input
SS User Defined Input
Pinbelegung
● Nur SS – Anschlüsse werden mehr
Daisy Chain
● Slaves in Reihe
● Nur ein SS nötig
Pinbelegung beim ATmega32
● Am Port B
● MOSI, MISO und SCK definiert
● SS als Master frei wählbar
Register
● SPCR – SPI Controll Register
● SPSR – SPI Statusregister
● SPDR – SPI Data Register
Datenmodi/Transferformate
● CPOL = Clock Polarity
● CPHA = Clock Phase
Datenmodi/Transferformate
● CPHA=0
Datenmodi/Transferformate
● CPHA=1
Wie funktioniert es?
● Master wählt einen Slave und gibt diesem Daten und Takt
● Ausgewählter Slave kann Daten an Master senden
● Datenregister wird übertragen
Beispiel am ATmega32
● Masterinitialisierung
● Slaveinitialisierung
Fragen?
Quellen
Datenblatt ATmega32
http://www.mikrocontroller.net/topic/60981
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus http://de.wikipedia.org/wiki/Serial_Peripheral_Interface
Register – Zusatz
● Controll Register stellt alle Parameter ein
● SPIE = SPI Interrupt Enable
● SPE = SPI Enable
● DORD = Data Order: LSB oder MSB als erstes
● MSTR = Master/Slave Select
● CPOL = Clock Polarity CPHA = Clock Phase
Register – Zusatz
● SPI Statusregister(SPSR):
● SPIF = SPI Interrupt Flag
– Ende einer seriellen Übertragung
● WCOL = Write COLlision Flag
– 1 wenn Daten in das Datenregister geschrieben werden beim Austausch
● SPI2X = Double SPI Speed