de:netzer:s88

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
de:netzer:s88 [2012/01/13 15:13] – angelegt sveschde:netzer:s88 [2025/06/11 20:42] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== S88 ======+====== Auslesen des S88 Busses vom Ethernet ======
  
 ===== Allgemein ===== ===== Allgemein =====
 +
 +<note important>Für die Funktionalität muss das **[[io_project|IO Projekt]]** (base oder pro) auf den Netzer [[fwupdates|geladen]] werden.</note> 
  
 Der S88 ist ein Rückmeldebus für Modellbahnsysteme.  Der S88 ist ein Rückmeldebus für Modellbahnsysteme. 
Line 16: Line 18:
 ===== Netzer als Zentrale ===== ===== Netzer als Zentrale =====
  
-Aufgrund der Flexibilität des Netzers ist es sehr einfach möglich einen S88-Strang mit dem Netzer auszulesen. Zur Anwendung kommt der [[serialserver|serielle Server]] im SPI Master Modus.+Aufgrund der Flexibilität des Netzers ist es sehr einfach möglich einen S88-Strang mit dem Netzer auszulesen. Zur Anwendung kommt der [[serialserver|serielle Server]] im SPI Master Modus. Neben dem Bus wird die Möglichkeit genutzt, dass IO-Pins direkt mit Escape-Sequenzen angesprochen werden können.
  
 ==== Hardware ==== ==== Hardware ====
  
 +{{ :s88.gif?nolink& |S88 Zusatzschaltung}}
  
 +Das Bild zeigt eine Schaltung für die Netzer [[playground|Spielfeld]] S88-Erweiterungsplatine. Die Komponenten sind Standardkomponenten, die auch schnell auf einer Lochrasterplatine aufgebaut werden können.
  
-==== Einstellungen ====+Die Schaltung ist schnell erklärt. Da die Betriebsspannung des Netzers +3,3V beträgt, der S88-Bus jedoch im Normalfall mit +5V arbeitet, werden Bustreiber (**IC1**) zwischen die drei Steuerleitungen S88_RESET, S88_LOAD und S88_CLOCK geschaltet. Da die Tristate-Funktion der Bustreiber nicht benötigt wird, werden sie einfach immer eingeschaltet (EN=GND). C1 dient der Abblockung. +5V wird vom [[playground|Netzer Spielfeld]] zur Verfügung gestellt.
  
-Der Netzer mit installierter **Pro**-Version (minRelease 1.5) muss zuvor über das Webinterface konfiguriert werden: +J1 bietet eine Anschlusstelle nach dem herkömmlichen Verdrahtungsmuster für S88JP1 ist eine RJ45-Buchse nach dem neuen Verdrahtungsstandard [[http://www.s88-n.eu|S88N]]
-  SPI-Master-Mode auf der Allgemein-Seite aktivieren +
-  - SPI-Master-EinstellungenFrequenz auf 5 kHz, SPI-Modus 2 (Ruhepegel des SPI-Taktes ist 1, Übernahme der Daten erfolgt bei fallender Flanke) Abtasten in der Mitte (siehe Bild) +
  
-{{s88_spisettings.gif?nolink&|SPI Einstellungen}}+Nach dem S88-Verdrahtungsstandard S88N ist für die Versorgungsspannung alternativ zu +5V auch eine +12V zulässig, falls das die Module am Bus unterstützen. Für das Umschalten der Versorgungsspannung per Jumper dient **JP2**. VCC_AUX ist die primäre Versorgungsspannung vom Netzer Spielfeld und sollte entsprechend auf +12V geregelt werden.
  
-<note important>Für Übernahme der Änderungen Neustart nicht vergessen!</note>+Pin 8 des S88N-Standards ist für das Gleissignal gedacht. Testweise wird hier der SPI-Datenausgang noch über den Bustreiber an diesen Pin gelegt, um ggf. auch Steueraufgaben übernehmen zu können (falls JP3 gejumpert ist).
  
 +Die Datenleitung des Busses S88_DATA wird direkt an den Netzer angeschlossen, da der SPI-Dateneingang +5V-tolerant ist. Die Suppressor-Diode D1 dient dem zusätzlichen Schutz des Eingangs.
  
 +<WRAP center round info 60%>
 +Für die weitere Dokumentation wird angenommen, dass LOAD an SPI_INT und RESET an SPI_CS angeschlossen ist.
 +</WRAP>
 +
 +{{ :gallery:s88_test.jpg?nolink& |}}
 +
 +==== Einstellungen Netzer Webinterface ====
 +
 +Der Netzer mit installierter **Pro**-Version (min. Release 1.5) muss zuvor über das Webinterface konfiguriert werden:
 +  - SPI-Master-Mode auf der Allgemein-Seite aktivieren (Danach Neustart nicht vergessen!) 
 +  - SPI-Master-Einstellungen: Frequenz auf 5 kHz (bei langen Leitungen ggf. auf 1,3 kHz), SPI-Modus 2 (Ruhepegel des SPI-Taktes ist 1, Übernahme der Daten erfolgt bei fallender Flanke) Abtasten in der Mitte der Taktperiode (siehe Bild).\\ {{s88_spisettings.gif?nolink&|SPI Einstellungen}} \\ \\ 
 +  - GPIO-Einstellungen: In diesem Beispiel wird SPI_INT sowie SPI_CS benötigt, demnach als digitale Ausgänge konfigurieren! {{s88_gpio.gif?nolink&|GPIO Einstellungen}}
 ==== Herstellen der Verbindung ==== ==== Herstellen der Verbindung ====
  
-Für einen Verbindungstest sollte ein Terminalprogramm verwendet werden, mit dem Bytes in Hexadezimal- oder Binärdarstellung versendet oder empfangen werden können wie z.B. das [[http://www.der-hammer.info/terminal|Hammer-Terminal]]). Die eigentliche [[connection|Netzwerkverbindung]] wird mit com2tcp aufgebaut.+Für einen Verbindungstest unter Windows sollte ein Terminalprogramm verwendet werden, mit dem Bytes in Hexadezimal- oder Binärdarstellung versendet oder empfangen werden können wie z.B. das [[http://www.der-hammer.info/terminal|Hammer-Terminal]]). Die eigentliche [[connection|Netzwerkverbindung]] wird mit **com2tcp** aufgebaut
 +Unter Linux kann auch ganz einfach **netcat** verwendet werden.
  
  
-Startkommando+==== Beispielprotokoll ==== 
 +Für das Generieren der Steuersignale wird die folgende Sequenz benutzt:
 ^ # ^ ASCII-Notation ^ Hexadezimal-Notation ^ Erläuterung ^ ^ # ^ ASCII-Notation ^ Hexadezimal-Notation ^ Erläuterung ^
 | 1 | \1 | 0x5C 0x31 | Umstellen des SPI-Modes auf 1. CLOCK wechselt von 1 auf 0. | | 1 | \1 | 0x5C 0x31 | Umstellen des SPI-Modes auf 1. CLOCK wechselt von 1 auf 0. |
 | 2 | \J | 0x5C 0x4A | LOAD (am INT-Pin) wird gesetzt. | | 2 | \J | 0x5C 0x4A | LOAD (am INT-Pin) wird gesetzt. |
 | 3 | \t | 0x5C 0x74 | Warte mindestens 100 µs (Ruhe). | | 3 | \t | 0x5C 0x74 | Warte mindestens 100 µs (Ruhe). |
-| 4 | \2 | 0x5C 0x74 | Schalte SPI-Mode auf 2 zurück. CLOCK wechselt von 0 auf 1. Damit werden durch das anliegende LOAD-Signal die Rückmeldesignale entlang des Busses in die Register übernommen. | +| 4 | \2 | 0x5C 0x32 | Schalte SPI-Mode auf 2 zurück. CLOCK wechselt von 0 auf 1. Damit werden durch das anliegende LOAD-Signal die Rückmeldesignale entlang des Busses in die Register übernommen. | 
-| 5 | \| 0x5C 0x74 Schalte LOAD von 1 auf zurück. | +| 5 | \| 0x5C 0x49 Aktiviere RESET (am CS-Pin) von 0 auf 1. Damit werden eventuell vorhandene Latches zurückgesetzt. | 
-| 6 | \| 0x5C 0x74 Aktiviere RESET von 0 auf 1. Damit werden eventuell vorhandene Latches zurückgesetzt. | +| 6 | \| 0x5C 0x69 Schalte RESET von 1 auf zurück. | 
-| 7 | \| 0x5C 0x74 | Schalte RESET von 1 auf 0 zurück. Nun ist der S88 vorbereitet, um die Daten bitweise zum Netzer zu schieben. |+| 7 | \| 0x5C 0x74 | Schalte LOAD von 1 auf 0 zurück. Nun ist der S88 vorbereitet, um die Daten bitweise zum Netzer zu schieben. |
 | 8... | a | 0x61 | Nun können beliebige viele Daten übertragen werden (sinnvollerweise nur soviel wie S88-Module am Strang hängen - Module mit 16 Eingängen zählen natürlich doppelt). Jedes Byte (**ohne** Fluchtsequenz) bewirkt ein Schieben des Busses um 8 Bit (normaler SPI-Modus). Gleichzeitig werden die Daten von der Leitung MI übernommen und über das Socket versendet.| | 8... | a | 0x61 | Nun können beliebige viele Daten übertragen werden (sinnvollerweise nur soviel wie S88-Module am Strang hängen - Module mit 16 Eingängen zählen natürlich doppelt). Jedes Byte (**ohne** Fluchtsequenz) bewirkt ein Schieben des Busses um 8 Bit (normaler SPI-Modus). Gleichzeitig werden die Daten von der Leitung MI übernommen und über das Socket versendet.|
  
 +Und so sieht es dann aus (Oben ist der Takt, unten LOAD - das Timing des ersten Bytes):
 +{{ :gallery:s88_oszi.jpg?nolink& |Erstes S88 Oszi}}
 +
 +===== PC-Software =====
  
 +Kommt bald...