de:netzer:s88

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
de:netzer:s88 [2012/02/06 21:12] – [Hardware] 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 35: Line 37:
  
 <WRAP center round info 60%> <WRAP center round info 60%>
-Für die Treibersoftware wird angenommen, dass LOAD an SPI_INT und RESET an SPI_CS angeschlossen ist.+Für die weitere Dokumentation wird angenommen, dass LOAD an SPI_INT und RESET an SPI_CS angeschlossen ist.
 </WRAP> </WRAP>
 +
 +{{ :gallery:s88_test.jpg?nolink& |}}
  
 ==== Einstellungen Netzer Webinterface ==== ==== Einstellungen Netzer Webinterface ====
  
 Der Netzer mit installierter **Pro**-Version (min. Release 1.5) muss zuvor über das Webinterface konfiguriert werden: 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 +  - SPI-Master-Mode auf der Allgemein-Seite aktivieren (Danach Neustart nicht vergessen!)  
-  - SPI-Master-Einstellungen: Frequenz 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)  +  - 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}} 
-{{s88_spisettings.gif?nolink&|SPI Einstellungen}} +==== Herstellen der Verbindung ====
- +
-<note important>Für Übernahme der Änderungen Neustart nicht vergessen!</note>+
  
 +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.
  
-==== 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 das Generieren der Steuersignale gilt beispielhaft folgendes Kommando:+==== 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 | \j | 0x5C 0x74 | Schalte LOAD von 1 auf 0 zurück. | +| 5 | \I | 0x5C 0x49 | Aktiviere RESET (am CS-Pin) von 0 auf 1. Damit werden eventuell vorhandene Latches zurückgesetzt. | 
-| 6 | \I | 0x5C 0x49 | Aktiviere RESET (am CS-Pin) von 0 auf 1. Damit werden eventuell vorhandene Latches zurückgesetzt. | +| \i | 0x5C 0x69 | Schalte RESET von 1 auf 0 zurück. | 
-| \i | 0x5C 0x69 | Schalte RESET von 1 auf 0 zurück. Nun ist der S88 vorbereitet, um die Daten bitweise zum Netzer zu schieben. |+| 7 | \j | 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): Und so sieht es dann aus (Oben ist der Takt, unten LOAD - das Timing des ersten Bytes):
-{{ :s88_oszi.jpg?nolink& |Erstes}}+{{ :gallery:s88_oszi.jpg?nolink& |Erstes S88 Oszi}} 
 + 
 +===== PC-Software =====
  
 +Kommt bald...