![]() |
![]() |
![]() |
||||||
Shop | Forum | Datenschutzerklärung | Suche | Kontakt | ||||
DSD 2010
(Drehscheiben-Dekoder 2010)
Entwicklungsgrundlage
Dies ist keine Aufbau-Anleitung oder Bedienungs-Anleitung. Die hier beschriebenen Informationen sind für den Aufbau und den Betrieb des Moduls normalerweise nicht nötig.
Dieses System ist in der Planungsphase. Ein Realisierungs-Datum wird nicht genannt, auch nicht auf Anfrage, auch nicht auf wiederholte Anfrage!
INHALT:
1 Grundsätzliches
1.1 Zweck dieses Doc
1.2 Grund für die Überarbeitung des Systems
1.3 System-Übersicht DSD2010
2 Haupt-Platine
2.1 Aufgaben
3 Motor-Platine
3.1 Aufgaben
3.2 Funktionsblock „Spannungsversorgung“
3.3 Funktionsblock „Hall-Sensor“
3.4 Funktionsblock „Motor-Ansteuerung“
3.5 Funktionsblock „Erkennung Position“
3.6 Funktionsblock „Rückmeldung“
3.7 Kommunikation mit der Haupt-Platine
3.7.1 Bitübertragung (Physical Layer)
3.7.2 Haupt-Platine an Motor-Platine
3.7.3 Motor-Platine an Haupt-Platine
4 Anzeige-Platine
4.1 Aufgaben
4.2 Kommunikation mit der Haupt-Platine
4.2.1 Bitübertragung (Physical Layer)
4.2.2 Haupt-Platine an Anzeige-Platine
4.2.3 Anzeige-Platine an Haupt-Platine
5 Anhang
5.1 Fehler-Codes
Dieses Dokument dient der technischen Dokumentation. Es werden Ideen und bereits realisierte Teile entwicklungsbegleitend beschrieben, sodass dieses Dokument während der Entwicklung als Diskussions-Grundlage und Ideen-Sammlung dient und nach Abschluss des Projektes den technischen Ist-Zustand des Projektes dokumentiert.
Der Drehscheiben-Dekoder (DSD) V1.4 hat in seinem Geburtsjahr 2004 die Wünsche vieler Drehscheiben-Anwender erfüllen können. Inzwischen sind sowohl die Ansprüche alsauch die technischen Möglichkeiten gewachsen.
Auf der Wunschliste standen daher z.B.:
Um möglichst viele Wünsche zu realisieren, wird das neue System aus 3 Modulen bestehen:
Die Hauptplatine fungiert als Zentral-Platine.
Diese Platine wird unter der Bühne montiert und ist klein genug, um in alle Fleischmann-Drehscheiben (H0, TT, N) zu passen.
Die Motor-Platine erhält 18V DC (von der Haupt-Platine). Diese wird auf 5V herabgesetzt.
5V:
18V:
tbd
Die Drehrichtungsumkehr erfolgt wie bisher via Relais.
Neu ist jetzt eine Motor-Regelung, die ein genaueres Positionieren während der Endphase der Bewegung (Langsamfahrt!) ermmöglicht.
tbd
Es können 3 Rückmelde-Kontakte eingelesen werden. Die Information wird via Optokoppler übertragen, d.h. es muss eingangsseitig eine LED (die Übertrager-LED im Opto) bestromt werden. Die Opto-Eingänge besitzen hierfür AC-Eingänge, d.h die Polung der Spannung ist unbedeutend, ebenso kann Wechselspannung oder Digital-Spannung verwendet werden.
Als Beispiel: Ein Reed-Kontakt wird einseitig an die Digital-Spanung angeschlossen und an der 2. Seite an den Opto-Eingang. Schliesst jetzt der Kontakt (Magnet), dann wird der Opto-Eingang an die Digital-Spannung gelegt, die Opto-LED ist bestromt und der Rückmelde-Kontakt wird ausgelöst.
Ein ähnliches Beispiel kann man sich für Masse-Sensoren (Kontakt durch Achsen bei Mittelleiter – Märklin möglich).
Weitere Möglichkeiten können sich durch Lichtschranken, Hall-Sensoren, Strom-Sensoren (sinnvoll???) usw. ergeben.
Die Motor-Platine kommuniziert über 1 Leitung mit der Hauptplatine, also bidirektional und seriell.
„1“ und „0“ sind entsprechend der DCC-Norm codiert.
Folgende Informationen müssen übertragen werden:
Für die Übertragung werden 2 Byte verwendet, wobei das erste Byte die Funktion definiert (Identifier Byte):
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
Contents Byte enthält: |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
Motor-Parameter 1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
Motor-Parameter 2 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
Motor-Parameter 3 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
Motor-Parameter 4 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
Soll-Position |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
Blink-Code |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
Flag-Übergabe |
Das 2. Byte (Contents Byte) überergibt idR. einen Zahlwert 0..255 (Parameter, Soll-Position etc).
Für die Flags (Identifier = 01110111) wird definiert
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
Go 0 = stop 1 = go |
|
|
|
|
|
Drehricht. 0 = Rechts 1 = Links |
Licht Haus 0 = aus 1 = ein |
Es wird zudem ein 3. Byte übertragen (Prüfbyte, EXOR-Verknüpfung aus dem Identifier Byte und dem Contents Byte (analog DCC)
Folgende Informationen müssen übertragen werden:
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
0 |
1 |
Istwert (6-Bit) |
|||||
1 |
0 |
Reserve |
|||||
1 |
1 |
Error-Code (siehe Anhang) |
|||||
0 |
0 |
Flag-Übergabe |
|||||
Drehricht. 0 = Rechts 1 = Links |
Bühne 0 = steht 1 = dreht |
RM1 0 = idle 1 = set |
RM2 0 = idle 1 = set |
RM3 0 = idle 1 = set |
Reserve |
Diese Platine ist optional. Sie ermöglicht die Anzeige der ist- und Soll-Position der Drehscheibe. Zusätzlich kann hierüber die Bühne bewegt werden, ohne dass man Digital-Befehle auslösen muss („Hand-Steuerung“)
An stehen 6 Taster und 2 LEDs zur Verfügung.
In dieser Variante entspricht die Taster-Funktionen im wesentlichen den digitalen Befehlen
Alternativ könnte man sich auch folgende Tastenbelegung vorstellen:
Zwischen den beiden Varianten kann via DIP-Schalter gewählt werden.
Zusätzlich kann die Anzeige-Platine einen Fehler-Code anzeigen, sobald ein Fehler aufgetreten ist. (Codes siehe Anhang)
Die Motor-Platine kommuniziert über RS232, also bidirektional (2-Draht) und seriell.
„1“ und „0“ sind entsprechend der RS232 Norm codiert. Es wird mit einer Baudrate von 9600 Baud übertragen (8N1)
Folgende Informationen müssen übertragen werden:
Für die Übertragung genügt 1 Byte, sodass keine Ring-Puffer beim Senden und Empfangen nötig sind. Bit 7/6 stellen dabei den Identifier dar, Bit 5..0 die Nutz-Information
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
0 |
1 |
Sollwert (6-Bit) |
|||||
1 |
0 |
Istwert (6-Bit) |
|||||
1 |
1 |
Error-Code (siehe Anhang) |
|||||
0 |
0 |
Flag-Übergabe |
|||||
Drehricht. 0 = Rechts 1 = Links |
Bühne 0 = steht 1 = dreht |
Reserve |
Reserve |
Reserve |
Reserve |
Folgende Informationen müssen übertragen werden:
Für die Übertragung genügt 1 Byte, sodass keine Ring-Puffer beim Senden und Empfangen nötig sind. Bit 7/6 stellen dabei den Identifier dar, Bit 5..0 die Nutz-Information
Bit 7 |
Bit 6 |
Bit 5 |
Bit 4 |
Bit 3 |
Bit 2 |
Bit 1 |
Bit 0 |
0 |
1 |
Sollwert-Vorgabe (6-Bit) rechts herum |
|||||
1 |
0 |
Sollwert-Vorgabe (6-Bit) links herum |
|||||
1 |
1 |
Reserve |
|||||
0 |
0 |
Taster Info |
|||||
Taster 6 0 = idle 1 = pressed |
Taster 5 0 = idle 1 = pressed |
Taster 4 0 = idle 1 = pressed |
Taster 3 0 = idle 1 = pressed |
Taster 2 0 = idle 1 = pressed |
Taster 1 0 = idle 1 = pressed |
Die Anzeige-Platine zeigt folgende Fehler-Codes an:
Anzeige: |
Bedeutung |
Erläuterung |
E1 |
Communication Error |
Haupt-Platine kann mit der Motor-Platine nicht kommunizieren |
E2 |
Motor Error |
Motor-Platine kann keinen Motor-Strom messen („Open Loop“ oder Motor-Treiber defekt) |
E3 |
Motor Klemmung |
Motor-Platine erkennt eine Einklemmung (kein Sensor-Impuls) |
E4 |
Sensor Pegel |
Motor-Platine: Sensor-Pegel unterschreitet Minimal-Wert |
E5 |
Motor Parameter |
Motor-Platine: Motor-Parameter unstimmig |
E6 |
|
|
E6 |
|
|
E8 |
|
|
E9 |
|
|