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.
    hterm mit AniMat verbunden
    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.
    versionDie 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:
    CMDLokale 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.
    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:
    MOTORAnwahl des Motors, Wert: 0 oder 1
    DIRRichtung, Wert 0 oder 1
    SPEEDGeschwindigkeit, 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:
    PORTAusgang, der angesteuert wird
    Wertebereich: 0...7
    STATEZustand des Ausgangs
    0Aus
    1Blinkend, beginnend mit Ein (Phase A)
    2Blinkend, beginnend mit Aus (Phase B)
    3Ein
    Antwort: OK
    Es wird der entsprechende Port angesteuert.
  • PLAY CMD
    Parameter:
    CMDSoundatei, welche abgespielt wird
    Wertebereich: 0...7
    Antwort: OK
    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:
    ADDRCV-Adresse von der gelesen oder auf die geschrieben werden soll.
    DATAWenn 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:
    SERVOServo, welches angesteuert wird
    Wertebereich: 0...1
    COMMANDAnweisung bzw. Zielposition
    Antwort: OK
    Es wird das entsprechende Servo angesteuert.
  • TB [hour] [min]
    Parameter:
    hourStunde (Wertebreich: 0... 23)
    minMinute (Wertebreich: 0... 59)
    Intern wird hieraus eine DCC_CLOCK Nachricht generiert und an die Glockenschlagsteuerung geschickt. Diese spielt daraufhin den ersten Ton ab. Weitere Töne zu dieser Uhrzeit werden nur abgespielt, wenn der AniMat auch auf Mode 41 steht.
    Antwort: OK
  • TF [Command]
    Parameter:
    Commandreserviert
    Antwort: OK
  • TS FREQ (=Test Sine)
    Parameter:
    FREQDie 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:
    VOLWerte 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)