SPIinterface Tutorial. (Deutsch)

Die SPI Interface(Serial Peripheral Interface)bus ist eine hohe geschwindigkeit, 3-draht, serielle kommunikation protokoll (4 wenn sie enthalten SSn – siehe unten). Sein vorrangiges Ziel ist es, die Leiterplattenführung zu reduzieren, indem der traditionelle parallele Bus durch eine serielle Schnittstelle ersetzt wird. (Sie können nur aboutmanage einen 8-Bit-Bus Routing es durch eine mehrschichtige Leiterplatte, aber wenn Sie 16, 32 Bit und mehr erreichen, wird es viel schwieriger).,

Die verbindungen werden:

  • MOSI (Master-Out-Slave-In) .
  • MISO (Master In Slave Out) .
  • SCK (Slave-Clock) .
  • SS_n (Slave Select).

– bezeichnet PIC-Nomenklatur

Hinweis: Das letzte Signal SS oder Slave select ist vom Protokoll getrennt und wird üblicherweise als Aktivierungssteuerstift vom Mikrocontroller implementiert. Es ist hier der Vollständigkeit halber enthalten.

Die SPI PIC-Schnittstelle ermöglicht den Anschluss von Peripheriegeräten über eine serielle Hochgeschwindigkeitsschnittstelle. SPI FlashMemory und SPI SRAM können problemlos zu jedem System hinzugefügt werden., Andere Gerätetypen umfassen:

  • ADC.
  • DAC.
  • Blitz.
  • EEPROM.
  • Accellerometer.
  • LCDs.
  • Temperatur & Feuchtesensoren.
  • …und viele mehr.

Ein ganz anderer echter Wettbewerb ist der I2C-Bus, weshalb Sie diese Schnittstellen häufig sowohl auf Prozessoren als auch auf Mikrocontrollern sehen.

Die SPI-Schnittstelle wurde in den 1970er Jahren von Motorola entwickelt, die es in ihrem 68000prozessor verwendeten, und es wurde schnell von vielen anderen Herstellern als Defacto-Standard übernommen.,

Es ist beabsichtigt fürÜbertragung von Daten von einem Master-Gerät zu einem oder mehreren Slavedevices über kurze Entfernungen und bei hohen Geschwindigkeiten (MHz).

Wie es funktioniert

Es funktioniert, indem Daten ein Bit nach dem anderen zwischen zwei Geräten übertragen werden, wobei das Mastergerät das Taktsignal (SCK) sendet. Die Uhr steuert den Zeitpunkt der Datenübertragung.

Daten (MOSI )werden zusammen mit einem Taktsignal (SCK) aus einem Schieberegister im Master-SPI-Gerät gesendet, während gleichzeitig ein anderes Schieberegister Daten vom Slave empfängt (MISO,).,

Der Master hat immer die Kontrolle und initiiert die Datenübertragung über das Taktsignal. Slave-Geräte werden unter Verwendung eines separaten Slave-Select-Signals ausgewählt, das softwaregesteuert ist, dh diese Signale sind vom SPI-Hardwaremodul getrennt.

Hinweis: Die Anzahl der Bits ist nicht durch das Protokoll definiert, sodass Sie nicht auf die Verwendung von nur 8 beschränkt sind – es kann sich um eine beliebige Anzahl von Bits handeln. Dies ist nützlich bei der Verkettung von SPI-Slaves, da Sie die Anzahl der Bits auf die Summe aller Bits setzen müssen, die von jedem Gerät benötigt werden.,

Hinweis: SPI definiert ein einzelnes Master-System.

Das alternative Protokoll IIC ermöglicht den Betrieb mehrerer Bus-Master.

SPI-Schnittstellentaktdefinition

Die SPI – Uhr ist überhaupt nicht definiert-was bedeutet, dass verschiedene Slave-Geräte einen anderen Taktbetrieb annehmen können; Ein Slave kann einen Leerlauftakt benötigen, der hoch ist, während ein anderer einen Leerlaufzustand von niedrig erfordern kann. Andere reagieren auf die steigende Kante, während andere auf die fallende Kante reagieren!,

Die SPI-Schnittstelle protocl bewältigt dies, indem Sie diese Details auf das SPI-Hardwaremodul programmieren lassen.

Das folgende Bild zeigt die PIC-Schnittstelle für SPI (alle SPI-Hardwaremodule in anderen Mikrocontrollern ermöglichen den gleichen Betrieb nur mit verschiedenen Registern).,

SPI-Schnittstelle PIC-Signale (Auszug aus dem PIC-Datenblatt DS39582B)

Es liegt an Ihnen, die richtige Uhr für Ihr Gerät einzustellen, wenn sie durch ein Slave-Auswahlsignal aktiviert wird (oder bei einem einzelnen Slave immer ausgewählt ist, sodass kein Slave-Auswahlsignal vorhanden ist).

Arduino SPI-Verbindung

Das folgende Diagramm zeigt die Schnittstelle zu den SPI-Verbindungen, die zufällig auch der Programmieranschluss (ICSP) auf dem Arduino-Board ist, der eine direkte Programmierung des ATmega328p ermöglicht.,p>

5 – Reset

6 – GND

Location of the SPI connector on Arduino Uno R3

Photo Credit : kenming_wang (mod shows ICSP)

Different SPI Interface operational Modes

There are three ways of using the SPI interface

  1. Single Master – Single Slave.,
  2. Single-Master – Mehrere Slaves – Chip ausgewählt.
  3. Single-Master – Mehrere Slaves – Dasiy angekettet.

Master – Einzel-Slave.

Hier ist das Setup für eine einzelne SPI-Geräteverbindung:

Hinweis: Das Chip select Signal SS ist optional für ein einzelnes Gerätesystemas binden Sie normalerweise den SSinput an den Slave niedrig (wenn die anderen Zeilen für die SPI-Verwendung bestimmt sind).,

SIP Interface: Mit chip wählt

Mit diesem schema steuern sie jedes slave gerät mitseine chip wählen linie (in der regel aktive low – rot pfeile zeigen controllines). Wenn deaktiviert, geht die Dataausgabe von theslave in einen hochohmigen Zustand über, so dass sie den gleichzeitig ausgewählten Slave nicht stört und der Dateneingang des Slaves ignoriert wird (checkdatasheet).,
Der Vorteil dieses Schemas ist, dass Sie jedes Gerät separat betrachten (steuern) können, wenn Sie es mit der Daisy – Chain-Methode vergleichen-so dass die Verbindung von SPI-Geräten, die unterschiedliche Taktschemata erfordern.

Wenn Sie SPI-Slaves haben, die mit unterschiedlichen Takten arbeiten (Kanten/Leerlaufzustände), können Sie das Master-SPI-Hardwaremodul neu programmieren, bevor Sie eine bestimmte CS aktivieren, sodass jedem Slave die richtigen Signale gesendet werden.

Wenn Sie die Daisy-Chain-Methode verwenden, müssen Sie sicherstellen, dass alle Chips dieselbe Taktkante und denselben Leerlauftaktstatus verwenden.,

SPIInterface: Daisy Chaining

Mit diesem Schema werden alle vom Master gesendeten Daten in alle Geräte verschoben und alle von jedem Gerät gesendeten Daten werden zum nächsten verschoben (rot gepunkteter Pfeil). Damit dieses Schema funktioniert, müssen Sie sicherstellen, dass jeder Slave die Uhr auf die gleiche Weise verwendet und Sie die richtige Anzahl von Bits erhalten müssen, damit mehr Arbeit in der Software geleistet werden kann.

Hinweis: Der Vorteil der Daisy-Chain-Methode besteht darin, dass Sie für jedes Slave-SPI-Gerät ein Chipauswahlsignal speichern.

Weitere Informationen auf Wikipedia.,

SPI Interface Daisy Kette

SPI Daisy Kette Beispiel

Verwenden mehrere HC595 chips, daisy-kette verbunden, was eine einfache erhöhung der anzahl der ausgänge zur verfügung, ohne mit viele mikrocontroller pins.

Die grenzen der betrieb sind die geschwindigkeit von HC, die geschwindigkeit der SPI ausgang. Auch Design-Überlegungen, z. B. beim Fahren eines Satzes von LEDs, die alle 20 ms aktualisiert werden müssen.

Parallel Versus seriell SPI

Der Kompromiss zwischen der Verwendung einer parallelen Schnittstelle und der SPI-Schnittstelle ist Geschwindigkeit, z., wenn Sie einen parallelen 12-Bit-ADC mit 200 ksps haben, können Sie die ata 200KHz-Rate des Geräts lesen, aber wenn Sie die gleiche Datenrate mit SPI erhalten möchten, benötigen Sie eine serielle Geschwindigkeit von 200KHz x 12 = 2.4 MHz. Der eigentliche Kompromiss ist also die Geschwindigkeit und der daraus resultierende Lärm, der in die Schaltung eingeführt wird.

Zusammenfassung

Die SPI-Schnittstelle definiert ein sehr beliebtes Protokoll, das mit hoher Geschwindigkeit arbeitet. Das Hauptproblem besteht darin, dass Slave-Geräte nicht an ein bestimmtes Taktschema gebunden sind, sodass sie möglicherweise unterschiedlich funktionieren und die Steuerung schwierig machen kann, dh, die Uhr idle und edge müssen für jedes Gerät korrekt eingestellt sein.

Vorteile:

  • Hohe Geschwindigkeit.
  • Exremely einfache Schnittstelle, die einfach in Software zu replizieren ist.

Nachteile:

  • Slave-Chips können jedes erforderliche Taktschema übernehmen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.