SPI - Die serielle Peripherieschnittstelle

Alles über SPI Title Image

SPI bedeutet Serielle Peripherie-Schnittstelle. Mit SPI kann man rasend schnell Daten zwischen zwei Geräten austauschen. Und man braucht nur vier Drähte.

SPI-Eigenschaften

Die serielle Peripherieschnittstelle ist eine synchrone Kommunikationsschnittstelle für kurze Entfernungen. Synchron bedeutet, dass die Daten in Form von Blöcken oder Frames gesendet werden und die beiden Geräte durch einen Taktgeber synchronisiert werden. Da es sich um eine serielle Schnittstelle handelt, senden die Geräte ein Bit nach dem anderen (im Gegensatz zur parallelen Kommunikation). Eines der Geräte ist der "Master" und gibt den Takt vor. Das andere Gerät ist der "Slave". Normalerweise erfolgt die Kommunikation im Vollduplex-Modus. Daher können beide Geräte Daten senden, sogar gleichzeitig.

SPI-Eigenschaften
SPI-Eigenschaften

Verkabelung

Für die Verbindung werden nur vier Drähte benötigt, so dass sie sehr einfach einzurichten ist.

SPI-Verdrahtung
SPI-Verdrahtung

Für eine SPI-Verbindung werden vier Pins benötigt: der serielle Takt (SCL oder SCLK), der Master-Output-Slave-Input (MOSI), der Master-Input-Slave-Output (MISO) und der Chip Select- oder Slave Select-Pin (CS oder SS).

Verbinden Sie die entsprechenden Pins an den Master- und Slave-Geräten.

Ein Master-Gerät kann sich mit mehreren Slave-Geräten verbinden, solange es über genügend Chip-Select-Pins verfügt. Der Master steuert, welches Slave-Gerät die Daten erhält, indem er den entsprechenden Chip-Select-Pin auf LOW oder HIGH setzt.

Der Raspberry Pi 4 hat 7 SPI-Busse. Wenn Sie wissen möchten, wie man auf die SPI-Busse 1 bis 6 zugreift, dann hinterlassen Sie einen Kommentar unten.

Werfen wir einen Blick auf die SPI-Bus 0.

Raspberry Pi Pinbelegung
Raspberry Pi Pinbelegung

Wie Sie in der Abbildung sehen können Pinout-Grafik über Pin 23 ist der SCLK-Pin des Raspberry Pi. MISO ist Pin 21 und MOSI ist Pin 19. Der Bus 0 hat zwei CS-Pins, nämlich die Pins 24 und 26.

Wenn Sie den Bus 0 verwenden möchten, müssen Sie ihn zuerst aktivieren.

Führen Sie den Befehl

sudo raspi-config

Wählen Sie dann 3 Schnittstellenoptionen und klicken Sie I4 SPI. Zum Schluss drücken Ja und Ok um SPI zu aktivieren.

SPI-Modi

Es gibt vier verschiedene Datenübertragungsmodi, die Sie kennen sollten. Sie unterscheiden sich in der Taktpolarität und der Taktphase.

SPI-Modi
SPI-Modi

Beide können entweder 0 oder 1 sein. Was die Taktpolarität betrifft, so bedeutet eine 0 einen LOW-Ruhezustand und eine 1 einen HIGH-Ruhezustand. Eine Taktphase von 0 bedeutet, dass die Daten mit der fallenden Flanke gesendet werden, während eine 1 bedeutet, dass die Daten mit der steigenden Flanke gesendet werden. Bevor sie Daten senden können, müssen sich Master und Slave auf einen der vier Modi einigen.

Vorteile

Die größten Vorteile sind die hohe Geschwindigkeit, die einfache Einrichtung von Hard- und Software und der geringe Energiebedarf.

Vorteile
Vorteile

Benachteiligungen

Die serielle Peripherieschnittstelle ist in Bezug auf Reichweite und Anzahl der Geräte nicht wirklich erweiterbar, da der Master für jedes Gerät einen Chip Select Pin benötigt. Außerdem gibt es keine Hardware-Slave-Bestätigung, so dass der Master nicht weiß, ob die Daten von jemandem empfangen wurden.

Benachteiligungen
Benachteiligungen

Anwendungsfälle

Die meisten SPI-Geräte sind eingebettete Geräte oder LCD-Displays. Im Allgemeinen wird es in Bereichen eingesetzt, in denen wenige Geräte und eine schnelle Datenübertragung erforderlich sind.

Es ermöglicht dem Raspberry Pi, alle Arten von Schnittstellen Sensoren und Geräte. Fast alle Raspberry Pi kompatiblen Geräte verwenden die SPI- oder I2C-Schnittstelle.

SD-Karten verwenden ebenfalls die SPI-Schnittstelle, so dass sogar der SD-Kartenleser auf dem Raspberry Pi einige interne MISO- und MOSI-Pins hat.

5 Kommentare

  1. [...] Wenn Sie übrigens mehr über SPI erfahren möchten, haben wir hier einen Artikel darüber. [...]

  2. [...] SPI - Die serielle Peripherieschnittstelle [...]

  3. [...] Naveen erklärt, die Verbindung zwischen dem Nano und dem TFT-Display basiert auf dem Serial Peripheral Interface (SPI). Der Joystick und die Tasten sind über den Inter-Integrated Circuit Bus verbunden [...]

  4. [...] SPI - Die serielle Peripherieschnittstelle [...]

  5. Veröffentlich von Ben am Oktober 25, 2023 um 3:56 am

    [...] Anzahl der Geräte nicht wirklich erweiterbar, da der Master für jedes Gerät einen Chip Select Pin [...]

    Es gibt die Möglichkeit Geräte per Daisy-Chain aneinander zu reihen. Dadurch wird nur ein Chip-Select benötigt. Allerdings muss man wissen wie viele Geräte in welcher Reihenfolge am SPI angeschlossen sind, so dass man die Datenpakete als Stream passend zusammenbauen kann. Die Geräte werden so verschaltet, dass MISO des vorherigen Geräts am MOSI des nachfolgenden Geräts angeschlossen wird. MISO des letzten Geräts wird dann tatsächlich mit dem Master-Gerät verbunden. Durch diese Technik werden die Daten aller Geräte auf einen Rutsch gültig gestellt, wenn nach dem Senden des Datenstreams der Chip-Select aktiv geschaltet wird.

Hinterlassen Sie einen Kommentar