OpenDCC AniMat - PC Schnittstelle
Anschluß
-
AniMat-S 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: OpenDCC_AniMat version 00.08 api 00.12 vs1011 (Beipiel)
Die Antwort besteht aus einem String, beginnend mit dem Hardware Identifier (OpenDCC_AniMat) 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)
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.
Hinweis: Hierbei werden alle internen Event-Codes zugreifbar gemacht, neben den DCC Kommandos (0 ... 127) sind das externe Eingänge (128 ... 239), sowie MP3_END_OF_FILE (240), KEY_BOOT_PRESSED (241) und KEY_PROG_PRESSED (242) - 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.
Es wird der entsprechende Motor angesteuert. - P PORT STATE
Parameter:
PORT Ausgang, der angesteuert wird
Wertebereich: 0...7STATE Zustand des Ausgangs
0 Aus 1 Blinkend, beginnend mit Ein (Phase A) 2 Blinkend, beginnend mit Aus (Phase B) 3 Ein
Es wird der entsprechende Port angesteuert. - PLAY CMD
Parameter:
CMD Soundatei, welche abgespielt wird
Wertebereich: 0...7
Die Sounddatei wird über die Einstellungen der CVs gefunden - dort ist hinterlegt, ob aus dem internen Speicher oder von der SD-Karte abgespielt wird und welcher Filename in diesem Fall verwendet wird. - 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.
- 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...1COMMAND Anweisung bzw. Zielposition
Es wird das entsprechende Servo angesteuert. - TB [hour] [min]
Parameter:
hour Stunde (Wertebreich: 0... 23) min Minute (Wertebreich: 0... 59)
Antwort: OK - TF [Command]
Parameter:
Command reserviert
- TS FREQ (=Test Sine)
Parameter:
FREQ Die auszugebene Frequenz wird über die eingebaute Funktion des mp3-Chips erzeugt.
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
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)