FAE-Design-Tipp powered by Digi-Key Wie funktioniert eine SPI mit drei Leitungen?

Tipps des Digi-Key Application Engineering.
Design-Tipps der Digi-Key-Application-Engineering-Abteilung.

Im Folgenden wird die Funktionsweise eines SPI (Serial Peripheral Interface) mit drei Leitungen beschrieben. Hierüber kann ein Master über eine Vielzahl von Techniken mit mehreren Slaves kommunizieren.

Eine SPI mit drei Leitungen ist ein Halbduplex-Bussystem für einen synchronen seriellen Datenbus. Der Master initiiert die Transaktion, indem er die gewünschte Slave-Select-Leitung (SS) gegen Masse zieht. Eine vom Master angetriebene SCLK-Leitung (Serial Clock) liefert ein synchrones Taktsignal. Die SDI-/SDO-Leitung (SDI/O steht für Serial Data In/Out) ist eine bidirektionale Datenleitung, über die der Master Daten sendet und empfängt. In einem typischen Szenario sendet der Master über die SDIO-Leitung einen Befehl mit festgelegter Länge. Ist es ein Schreibbefehl, sendet der Master anschließend Daten fester Länge über die Leitung. Ist es ein Lesebefehl, sendet der Slave und der Master empfängt eine Datenantwort festgelegter Länge.

Ein Master kann über eine Vielzahl von Techniken mit mehreren Slaves kommunizieren. In der gebräuchlichsten Konfiguration hat jeder Slave eine eigene SS-Leitung, teilt sich die SCLK- und SDIO-Leitung jedoch mit anderen Slaves. Die einzelnen Slaves ignorieren die gemeinsamen Leitungen, wenn ihre SS-Leitung nicht gegen Masse gezogen ist.

Die SPI hat vier Betriebsarten, die auf zwei Parametern basieren: CPOL (Clock Polarity – Taktpolarität) und CPHA (Clock Phase – Taktphase). Master und Slave müssen denselben Modus nutzen, um verständlich kommunizieren zu können. Bei CPOL = 0 ist SCLK in der Regel Low und die Flanke des ersten Takts ist eine steigende Flanke. Bei CPOL = 1 ist SCLK in der Regel High und die Flanke des ersten Takts ist eine fallende Flanke. CPHA definiert die Ausrichtung der Daten: Bei CPHA = 0 wird das erste Datenbit auf der fallenden SS-Flanke geschrieben und auf der ersten SCLK-Flanke gelesen. Bei CPHA = 1 wird das erste Datenbit auf der ersten SCLK-Flanke geschrieben und auf der zweiten SCLK-Flanke gelesen. Im nebenstehenden Timing-Diagramm werden die vier SPI-Modi veranschaulicht.