Titelbild Mikrocontroller

16. SPI des Xmega384

Das serielle Peripherie Interface (SPI) ist eine synchrone high-speed Datentransfer Schnittstelle mit drei oder vier Leitungen/Pins. Das SPI ermöglicht eine schnelle Kommunikation zwischen dem Xmega und peripheren Bausteinen oder anderen Mikrocontrollern. Das SPI unterstützt die full-duplex Kommunikation, also gleichzeitiges Senden und Empfangen.

Ein Baustein, der an den Bus angeschlossen ist, muss als Master oder als Slave arbeiten. Der Master initiiert und kotrolliert alle Datenübertragungen. Die Verbindung zwischen Master und Slave ist in nachfolgendem Bild dargestellt. Das System besteht aus zwei Schieberegistern und dem Taktgenerator im Master.

SPI Master Slave

SPI Master Slave


Der Master initiiert einen Kommunikationszyklus in dem er die /SS Leitung des entsprechenden Slaves auf Low zieht. Master und Slave legen dann die zu sendenden Daten in ihre entsprechenden Schieberegister und der Master erzeugt den Takt auf der SCK Leitung um die Daten auszutauschen. Die Daten werden vom Master zum Slave auf der MOSI (Master out Slave in) Leitung Übertragung und vom Slave zum Master auf der MISO (Master in Slave out) Leitung. Nach jedem Datenpaket kann der Master den Slave synchronisieren indem er die /SS Leitung auf High legt.

Das SPI Modul hat in Senderichtung keinen Buffer und in Empfangsrichtung einen einfachen Buffer. Das bedeutet, dass Daten, die zu senden sind, nicht in das SPI DATA Register geschrieben werden können, bevor der vorherige Schiebevorgang abgeschlossen ist. Wenn ein Byte empfangen wurde, muss dieses aus dem DATA Register gelesen werden, bevor das nächste Byte komplett übertragen wurde. Andernfalls wird das Byte überschrieben.

Im Slave Modus tastet die Logik das ankommende Signal am SCK Pin ab. Damit dies korrekt funktioniert, müssen die high und low Perioden des Taktes länger als zwei CPU Takte sein.

Wenn das SPI Modul freigegeben wird, werden nicht alle Pins automatisch richtig auf Ein-oder Ausgang eingestellt. Entsprechend der folgenden Tabelle müssen einige Pins abhängig vom Betriebsmodus von der Software eingerichtet werden.

SPI Pin Einstellungen

SPI Pin Einstellungen


Port C und Port D haben jeweils ein SPI.
Impressum