OpenDecoder4 - PC Schnittstelle
Anschluß
OpenDecoder4 verfügt über eine Hostschnittstelle für den
Firmwareupdate und für eine vereinfachte Konfiguration.
Der PC wird per USB über ein FTDI-USB-Kabel 3V3 an der seriellen Schnittstelle 1 des AVR angeschlossen.
Dabei wird ein virtueller COM-Port initialisiert.
Diese USB-Schnittstelle dient zum einen für den
Firmware-Update sowie als Interface für die Konfiguration.
Eine gleichzeitige Verbindung von DCC und USB ist möglich, jedoch entsteht hierbei eine
Masseverbindung vom PC zur Modellbahn. Diese kann
zum einen eine ungewollte Masseschleife und Kurzschluß erzeugen - DCC und
PC müssen an irgendeiner Stelle optogekoppelt sein.
Des weiteren kann die VDE-gerechte Schutztrennung der Modellbahn aufgehoben werden.
Firmware-Update
Wenn beim Einschalten des Dekoders der Bootjumper gesteckt ist,
dann wird der Bootloader aktiv und
es kann ein Firmware-Update durchgeführt werden.
Die LED leuchtet zu Beginn permanent und blinkt da bei jedem Byte kurz auf.
Der Bootloader kommuniziert im standard-AVROSP Protokoll mit 19200 Baud. 8N1.
Nähere Informationen finden sich in der Bauanleitung zum Regler..
Konfigurationsschnittstelle
Im regulärem Betrieb ist auf dem USB-Port ein Kommando-Interface (API) implementiert,
mit dem man Befehle an den Dekoder absenden kann. Hierzu kann z.B. das Terminalprogramm hterm.exe verwendet
werden.
Die API arbeiten mit einem seriellen Protokoll, eingestellt sind 115200 Baud, 8 Bit, keine Parity, 1 Stopbit (8N1).
Übertragen werden 8-Bit ASCII, die API unterscheidet bei Befehlen nicht nach Groß-Kleinschreibung.
Gesendete Befehle werden mit <cr> oder <cr-lf> terminiert,
die Antwort enthält <cr-lf> als Endemarkierung.
Unbekannte Befehl werden mit 'unknown command' beantwortet.
API Befehle
- Help
Parameter: keine
Antwort: ein Hilfetext, der die API-Befehle kurz erläutert.
- Info
Parameter: keine
Antwort: OpenDecoder4 version 00.08 api 00.12 vs1011 (Beipiel)
Die Antwort besteht aus einem String, beginnend mit dem Hardware Identifier
(OpenDecoder4) und der Versionnummer.
Es folgen weitere Schlüsselworte, jeweils gefolgt von einem Zahlenwert.
| version | Die geladene Softwareversion wird angezeigt,
bestehen aus [Hauptversion].[Unterversion] |
| api | Dies ist die Versionnummer des Parsers,
anhand dieser kann unterschieden werden,
welcher Befehlsvorrat unterstützt wird. |
| vs1011 | Gibt an, ob ein mp3-Dekoder installiert ist. |
- C CMD
Parameter:
| CMD | Lokale Befehlsnummer des DCC Befehls
(also der DCC-Offset des Accessory Command von der Basisadresse)
|
Antwort: OK
Es wird der entsprechende Befehl ausgeführt (wie wenn der Befehl vom DCC Interface übermittelt worden wäre).
0 entspricht dabei der eingestellten Basisadresse, Spule rot; 1 = Basisadresse, grün,
2 = Basisadresse+1, rot; usw.
- M MOTOR DIR SPEED
Parameter:
| MOTOR | Anwahl des Motors, Wert: 0 oder 1
|
| DIR | Richtung, Wert 0 oder 1
|
| SPEED | Geschwindigkeit, Wert 0 ... 15; Die Geschwindigkeit wird intern immer mit 127
Fahrstufen gesteuert. Die Fahrstufen werden mit einer wählbaren Kennlinie auf diese internen
Fahrstufen abgebildet. Für eine stationäre Ansteuerung reichen 16 Fahrstufen - damit ist das auch
vom Sequenzer mit einem Byte ansteuerbar.
|
Antwort: OK
Es wird der entsprechende Motor angesteuert.
- P PORT STATE
Parameter:
| PORT | Ausgang, der angesteuert wird
Wertebereich: 0...7 |
| STATE | Zustand des Ausgangs
| 0 | Aus |
| 1 | Blinkend, beginnend mit Ein (Phase A) |
| 2 | Blinkend, beginnend mit Aus (Phase B) |
| 3 | Ein |
|
Antwort: OK
Es wird der entsprechende Port angesteuert.
- CV ADDR, [DATA]
Parameter:
| ADDR | CV-Adresse von der gelesen oder auf die geschrieben werden soll.
|
| DATA | Wenn dieser Parameter angegeben ist, dann wird geschrieben, wenn DATA fehlt,
dann wird gelesen.
|
Antwort: CV1234:56 (= die Adresse 0x1234 hat den Inhalt 0x56; die Antwort hat immer gleiche Länge)
- REBOOT
Parameter: keine
Antwort: keine
Der Decoder führt einen Neustart aus (notwendig z.B. nach Umstellen von Betriebarten-CVs
- SV SERVO COMMAND
Parameter:
| SERVO | Servo, welches angesteuert wird
Wertebereich: 0...1 |
| COMMAND | Anweisung bzw. Zielposition
|
Antwort: OK
Es wird das entsprechende Servo angesteuert.
- TF [Command]
Parameter:
Antwort: OK
- TS FREQ (=Test Sine)
Parameter:
| FREQ | Die auszugebene Frequenz wird über die eingebaute Funktion des mp3-Chips erzeugt.
|
Antwort: OK
Die Sinuserzeugung versucht, mittels der Testfunktion des mp3-Chip einen Sinus zu erzeugen. Dabei können
nicht alle möglichen Frequenzen erzeugt werden, sondern nur eine eingeschränkte Auswahl. Die Routine versucht,
die nächstmögliche Frequenz einzustellen.
TS 0 schaltet den Ton wieder ab.
- V VOL (=Volume)
Parameter:
| VOL | Werte von 0 ... 100: 0 = leise, 100 = laut
|
Antwort: v
Die folgenden Befehle sind nur für Debugzwecke gedacht, es erfolgt keine Parameterprüfung - bitte vorsichtig benutzen :-)
- XER ADDR
Lese von der EEPROM Adresse (z.B. XER 0x34)
- XEW ADDR DATA
Schreibe auf EEPROM Adresse (z.B. XEW 0x34 0x45)