OneStep/StepControl: eine Drehscheibensteuerung für BiDiB und DCC
Die Drehscheibensteuerung kann mit einem Soundmodul ausgerüstet werden,
damit werden dann während der Bewegung passende Geräusche abgespielt.
Soundansteuerung via SUSI
Die StepControl kann über eine SUSI-Schnittstelle Sound passend zur Drehbewegung abspielen.
Ein passendes Modul gibt es bei D&H.
Es wurde folgende Funktionszuordnung gewählt:
Funktionszuordnung | Dauer [s] | Aktiv |
F1 | Verriegelung lösen | 2,5 (Einzelton) | 2 |
F2 | Fahrt (Beschleunigen) | 4,672 (Einzelton) | 1 |
F3 | Fahrt (Fahren) | 1,22 (Loop) | 1 |
F4 | Fahrt (Bremsen) | 4,535 (Einzelton) | 1 |
F5 | Verriegelung schließen | 3,0 (Einzelton) | 2 |
F6 | Schienenstoß | 4,0 (Einzelton) | 1 |
F7 | Warnhupe | 1,73 (Einzelton) | 2 |
F8 | Signalton Fahrt | 1,22 (Einzelton) | - |
F9 | Signalton Halt | 2,7 (Einzelton) | - |
F10 | Warnsignal bei Referenzfahrt (Fiepton) | 0,5 (Einzelton) | 1 |
F11 | Homeposition bei Referenzfahrt erreicht | 0,4 (Einzelton) | 2 |
F12 | Warnsignal bei erkannten Fehlern | 0,7 (Einzelton) | 2 |
F13 | Signalton Kommen | 3,0 (Einzelton) | - |
Aktiv: diese Töne werden von der Bewegungsteuerung abgespielt, wenn das Accessory für die Soundsteuerung
auf 1 (alle Geräusche) bzw. 2 (nur Anschlagsgeräusche) steht. Stellung 2 schließt Stellung 1 ein. Alle Töne sind auch
für die Makrosteuerung verfügbar.
Anschluß des Soundmoduls
Auf der OneStep sind zwei Anschlußmöglichkeiten vorgesehen:
- Orginal SUSI Schnittstelle: auf der Platine ist ein JST SM04B-SRSS-TB (side entry) mit Raster 1mm. (X50)
- Bergstifte im Raster 2,54mm (J1)
Anschluß SUSI Modul |
|
Pin | Farbe | Signal |
1 | schwarz | GND |
2 | grau | DATA |
3 | blau | CLOCK |
4 | rot | +12V |
Test mit der Debug-Schnittstelle
Die Debug-Schnittstellen enthält Befehle zum Testen des Soundmoduls.
- S
Schaltet Sound ON / OFF (toggle). Bei Schalten bleiben die momentan aktiven Soundfunktionen intern erhalten, es wird nur
an das SUSI-Modul alles mit Wert 0 übertragen.
S 0: schaltet den Sound immer off.
S 1: schaltet den Sound immer on.
- SF [0...12]
Schalten die Soundfunktion F0 ... F12 aus- oder ein (toggle). Die aktuell aktivierten Funktionen werden angezeigt.
- SPLAY Fct, Time
Spielt die Soundfunktion FCT (F0 ... F12) für die Dauer von Time [ms].
- SV [VLOCO, VCPU, LLOCO]
Setzt die Geschwindigkeiten, welche an das Soundmodul geschickt werden.
- VLOCO: die aktuelle Istgeschwindigkeit
- VCPU: die vorgegebene Sollgeschwindigkeit
- LLOCO: der Zustand der Lastregelung
- SCV cv_addr,[cv_dat]
liest oder schreibt eine CV aus. Ohne Angabe von CV_DAT wird gelesen. Beim Lesen muß man den Befehl doppelt aufrufen:
der erste Aufruf startet den Lesevorgang (dieser terminiert dann selbständig),
der zweite Aufruf stellt das Ergebnis (von letzten Lesevorgang) dar.
Erläuterungen zur Software des Soundmodul
Schnittstelle
Das Susi-Interface kann man mittels serieller Schnittstelle
oder mit einem Compare-Interupts eines Timers bauen. Gewählt wurde die Lösung mit Compare-Interrupt.
Firmwarefragen zu SUSI
- Wie oft muß man updaten? Und was muß man schicken?
Ein Soundmodul braucht v_ist, v_soll, last, f0f4 und f5f12. Das wird in der Drehscheibensteuerung alle 20ms
durchnudelt, also mit einer Gesamtwiederholrate von 100ms übertragen.
Fraglich war auch, ob der Sound auf die Lastvarable oder nur auf die Differenz v_ist gegen v_soll reagiert.
D&H-Soundmodule brauchen "last" nicht, sondern benutzen "v_soll" und "v_ist", auch wenn kein Fahrgeräusch aktiv ist.
Diese Geschwindigkeit müssen Vorzeichen-konstant ausgegeben werden, dürfen nicht in der Fahrtrichtung 'wackeln'!
Aus der Differenz zwischen v_soll und v_ist ergibt sich der abzuspielende Sound.
Dietz-Module brauchen 'v_soll' nicht.
- Fahrtrichtung?
Laut Dietz-Norm soll an der SUSI vorwärts "1" und rückwärts "0" sein
(wie bei DCC). D&H agiert jedoch aus der SX-Historie heraus invers. Auch DH-Soundmodule erwarten daher
die eigentlich falsche Kodierung der Richtung.
- Soundspieldauer?
Es gibt in CV1020 das Bit 0 (Status), dieses kann allerdings nicht sinnvoll für den Betrieb verwendet werden.
- Wie ist der Sound zu konfigurieren?
Nachfolgende Beispiele zeigen das Verhalten des Soundmoduls bei Ansteuerung über eine Funktion. Die Soundschnipsel
habe ich wie folgt bezeichnet: Anfang: abc, Ende: xyz, Schleife: 123
1. Nur Einleitung (einmaliger Sound bei Flanke 0->1)
Funktion: ----------------------1111111111111111111111111111-------------
Sound: abc
Funktion: ----------------------11---------------------------------------
Sound: abc
2. Nur Ende (einmaliger Sound bei Flanke 1->0)
Funktion: ----------------------1111111111111111111111111111-------------
Sound: xyz
3. Anfang und Ende (Sound bei beiden Flanken)
Funktion: ----------------------1111111111111111111111111111-------------
Sound: abc xyz
Funktion: ----------------------11-------------
Sound: abcxyz
4. Schleife (Sound solange die Funktion "1" ist)
Funktion: ----------------------111111111111111111111111111-------------
Sound: abc123123123123123123123123xyz
Funktion: ----------------------1111111111111111111111111-------------
Sound: abc123123123123123123123123xyz
Man sieht, Soundschnipsel werden immer zu Ende gespielt, erst dann wird auf das nächste (ev. schon früher getriggerte)
Schnipsel gewechselt.
Wie entstanden die Aufnahmen?
Hier haben die Entwickler Orginalaufnahmen einer Drehbühne mit professionellem Aufnahmeequipment
durchgeführt.