doppel-m ...das Universum und der Rest.

  • Schrift vergrößern
  • Standard-Schriftgröße
  • Schriftgröße verkleinern

SPI

E-Mail Drucken

Das serielle periphere Interface (SPI) ermöglicht die schnelle Datenübertragung zwischen Mikrocontrollern und anderen Komponenten wie beispielsweise Speicherbausteinen und Analog-Digital-Wandlern, soweit sie diese Schnittstelle unterstützen. Es sind Übertragungsraten von bis zu 1 Mbit/s über Entfernungen von bis zu 15 Metern möglich. Für die Datenübertragung in zwei Richtungen werden zwei serielle Leitungen und eine Taktleitung benötigt. Eine der angeschlossenen Komponenten ist der Master, der die Datenübertragung steuert. Die anderen Komponenten sind ein oder mehrere Slaves, die Daten vom Master empfangen oder an ihn senden.

SPI-Leitungen
MOSI Datenleitung, Master out Slave in: Master sendet, Slave empfängt
MISO Datenleitung, Master in Slave out: Master empfängt, Slave sendet
SCK Schiebetakt, Shift Clock: Die Daten werden nach diesem Taktsignal des Masters bitweise übertragen.
/SS Aktivierung des Slaves, Slave Select: 0-Pegel an diesem Anschluss macht die jeweilige Komponente zum Slave.

Das SPI wird auch zur Programmierung von Mikrocontrollern verwendet. Das Programmiergerät ist hierbei der Master und der Mikrocontroller der Slave.

Ein Mikrocontroller, der SPI unterstützt, kann durch Setzen oder Rücksetzen eines bestimmten Bits im entsprechenden Kontrollregister als Master oder Slave konfiguriert werden. Es darf immer nur ein Master aktiv sein. Ein Slave wird nur aktiv, wenn seine Slave-Select-Leitung (/SS) vom Master auf logisch 0 gesetzt wird. Der Master erzeugt zudem auf der Schiebetakt-Leitung (SCK) den Takt für die Datenübertragung. Über die Leitung MISO (Master in Slave out) empfängt der Master Daten, die der Slave sendet. Über die Leitung MOSI (Master out Slave in) werden die Daten dagegen vom Master zum Slave übertragen.

SPI-Anschlussbeispiel: ein Master und zwei SlavesSPI-Anschlussbeispiel: ein Master und zwei Slaves.
MOSI: Master out Slave in
MISO: Master in Slave out
SCK: Shift Clock (Schiebetakt)
/SS: Slave Select (Slave aktiv, wenn SS auf 0-Pegel)
PB0, PB1: Port-Anschlüsse

Der Master wählt per /SS-Leitung einen Slave aus und sendet im Takt seiner SCK-Impulse die Datenbits über die MOSI-Leitung an den Slave. Der Slave kann im gleichen Takt Datenbits an den MISO-Eingang des Master senden.

Ein 0-Pegel am /SS-Eingang eines Masters signalisiert ihm, dass ihn ein anderer Master als Slave auswählt, um Daten an ihn zu senden. Der angesprochene Master wird darauf den Bus sofort freigeben und sich als Slave konfigurieren.

 

Verwandte Beiträge