de:netzer:spi-master

This is an old revision of the document!


SPI Master Ethernet Gateway

In diesem Modus können durch das Ethernet-Gateway Netzer direkt SPI-Geräte wie Speicher oder Displays angesprochen werden.

Dazu wird der Slave oder die Slaves am SPI-Interface des Netzers angeschlossen. Der Netzer fungiert dabei als SPI Master.

Durch die Natur des SPI werden Slaves zumeist über ein Chipselect ausgewählt. In der Regel also eine Leitung pro Slave. Manchmal werden auch noch andere Leitungen benötigt, um einen Slave steuern zu können - wie beispielsweise ein Resetsignal.

Auch die Schieberegister-Beschaltung ist möglich, dabei werden die Slaves wie in einer langen Kette hintereinander geschaltet (Chaining). Vorteil hierbei ist, dass sich alle Slaves eine Chipselect-Leitung teilen bzw. diese ganz entfällt. Das klassische Beispiel für Slaves im Chaining wäre das 8 Bit breite Schieberegister 74×594, welches beliebig oft hintereinander geschaltet werden kann.

Der SPI Master Modus wird auf der allgemeinen Einstellungsseite aktiviert.

Nach Änderung des Modes Neustart nicht vergessen!

Für TCP-Verbindungen wird der Port des seriellen Servers verwendet.

Desweiteren werden SPI-Einstellungen auf der Einstellungsseite für die seriellen Schnittstellen vorgenommen.

Webseite für serielle Schnittstellen

Es können die folgenden Frequenzen für SPI_CLK eingestellt werden:

Frequenz Ab Firmware-Version
10,4 MBit/s (Wow!) 1.0
2,6 MBit/s 1.0
650 kBit/s 1.0
100 kBit/s 1.5
50 kBit/s 1.5
10 kBit/s 1.5
5 kBit/s 1.5
1,3 kBit/s 1.5

Für SPI ist insbesondere der Taktmodus wichtig. Er bestimmt die Polarität des Taktsignals sowie die Übernahmeflanke wie folgt:

Modus Ruhezustand des Taktsignals Übernahmeflanke
Modus 0 0 Steigend
Modus 1 0 Fallend
Modus 2 1 Fallend
Modus 3 1 Steigend
Für die erfolgreiche Übertragung von Daten müssen die Modi bei Master und Slave(s) gleich sein!

Die Grafik zeigt alle Einstellungen im Überblick anhand eines Zeitdiagramms:

SPI Master Zeitdiagramm

Sobald eine Verbindung aufgebaut ist, kann der SPI Master verwendet werden. Alle vom TCP Client empfangenen Zeichen bis auf den Backslash ' ' (Escape) werden durch den Netzer transparent an das SPI Master Modul durchgeleitet. Escaped Zeichen, die von der jeweiligen Firmwareversion nicht unterstützt werden, werden ebenfalls transparent durchgeleitet. Für eine vollständige Auflistung der unterstützten Escape-Sequenzen siehe weiter unter. Der 256 Byte große Ringpuffer auf Netzerseite puffert größere Datenbursts.

Das SPI Master Modul generiert für jedes Byte 8 Takte an SPI_CLK und schiebt das Datum an SPI_MO hinaus. Zeitgleich liefert der Slave im Takt des Masters Daten an SPI_MI (siehe Grafik oben). Das so empfangene Byte wird automatisch an den TCP Client gesendet.

Netzer als SPI-Master in der Basisversion

Mit der frei downloadbaren Basisversion wird genau ein SPI Slave unterstützt bzw. mehrere SPI Slaves im Chaining, da dafür nur ein Chipselect benötigt wird. Eine Beispielbeschaltung wie im Bild oben besteht aus den vier Pins SPI_MI, SPI_MO, SPI_CLK sowie SPI_CS. SPI_MO ist der Datenausgang, d.h. Daten vom Netzer zum Slave. SPI_MI ist der Dateneingang, Daten vom Slave zum Netzer. Die Taktleitung (SPI_CLK) wird vom Netzer gesteuert. SPI_CS dient der Selektierung und Synchronisierung des Slaves - sobald Daten übertragen werden, setzt der Netzer diese Leitung automatisch auf 0. Werden keine Daten übertragen, ist die Leitung 1.