OpenDCC GBM16TS

Vorbemerkung

    Hier auf www.opendcc.de werden mehr die technischen Aspekte, Schaltungen und Details einer Baugruppe beschrieben, Anwendungsinformationen zur Baugruppe finden Sie im wiki bzw. auf fichtelbahn.de.

Geschichte

    Diese Baugruppe entstand aus dem Wunsch heraus, einfache Rückmelder ohne Booster direkt am Bus zu haben. Sie ist von GBM16T abgeleitet und entsprechend erweitert worden. Dabei sind Anschlußstecker sowie Kehrschleifenansteuerung unverändert übernommen worden.

Eigenschaften

    Daten GBM16TS
    16 railcom®-fähige Meldereingänge, je bis zu 4A belastbar
    Vollständige Implementierung von railcom® - inkl. Geschwindigkeit und Gleisverschmutzung
    Sichere Belegtmeldung nach dem Stromfühlerprinzip, Schwelle, Memory einstellbar
    integrierte Kehrschleifensteuerung
    Stromversorgung über das Buskabel (oder Steckernetzteil)
    2 BiDiBus-Anschlüsse zum einfachen Durchsleifen des Netzwerkkabels
    Potentialgetrennte Gleisseite, integrierter DC/DC Übertrager
    Automatische Baugruppenerkennung via BiDiB
    FW-Update über BiDiB.
    Kompakt: Baugröße 100mm x 80mm.
    Montagefreundlich: Befestigungslöcher an allen Ecken, alle Anschlüssen leicht vom Rand zugänglich.
    Optimale Verdrahtung: Jedes Leitungspaar von den Gleisen kann direkt und steckbar angeklemmt werden, kein zusätzlicher Verteiler erfoderlich..

Download

      GBM16TS   Version Erläuterung
      Bootloader: 
      V0.04.03  
    14.02.2017
        Der Bootloader ermöglicht das Erneuern der Firmware im eigenbauten Zustand. Muß einmal mit einem Atmel-Programmer geladen werden und bleibt dann immer drin.
    Der Programmer ist anschließend nicht mehr erforderlich.
      Firmware 
    GBM16TS 

      V2.07.00  
    14.07.2018

      V2.06.12  
    10.12.2017

      V2.06.11  
    30.11.2017
    Die eigentliche Applikationsfirmware. Sie besteht aus zwei Teilen:
    GBM16TS_version.000.hex für den Flashspeicher der Baugruppe.
    GBM16TS_version.001.hex für den EEPROM-Speicher der Baugruppe.
      Bauanleitung   
      V1.00  
        (noch fehlend)
      Schaltplan   
      V1.10  
         
      Bestückungsplan   
      V1.10  
         
    Hinweise:

Versions-History

  • Bootloader:
      14.06.2016 V0.01 Erste Freigabe
  • Firmware:
      12.10.2017: V2.07.00 Neu: Millimetergenaue Streckenmessung.
      12.10.2017: V2.06.11 Bessere Unterdrückung von Störungen im Channel 2.
      12.10.2017: V2.06.07 SECACK Intervall einstellbar.
      07.10.2017: V2.06.06 Bugfix im Bus-Init, wenn eine Belegung vorher da war.
      18.08.2017: V2.06.05 Die Kehrschleife ändert die Aufgleisrichtung bei Prio-Kanälen; damit ist auch nach Umschalten immer noch die Richtung korrekt
      23.02.2017: V2.06.02 Bugfix in KS, Dekodierung von Consist
      23.02.2017: V2.06.02 Neu: POM für Accessory
      03.11.2016: V2.03.00 Erste Freigabe

Schaltplan

    Kern des GBM16TS ist ist ein ATXmega128A1 (atxmega128a1u-au im TQFP100 Gehäuse). Dieser Prozessor bietet 16 sehr gute Analogeingänge, welche für die Belegtmeldung und Railcom-Auswertung verwendet werden. Versorgt wird der Prozessor mit 3,3V, wobei die Analogspannung besonders gesiebt wird.
    Die Clockversorgung erfolgt mit einem SMD Quarz mit 8MHz (Größe 5 x 3,2mm), z.B. www.geyer-electronic.de KX-9A 8MHz oder Euroquarz MJ (reichelt) oder Mouser 405I35E08M00000 .

    Stromversorgung:
    Der Prozessor liegt mit seiner GND auf Gleispotential, es ist daher eine Potentialtrennung erforderlich. Hierfür gibt es zwei Möglichkeiten: Verwendung eines getrennten Netzteiles oder Versorgung mittels eines DC/DC-Wandlers aus dem Bus. Letztere Möglichkeit ist bevorzugt und auch auf den vorbestückten Platinen realisiert. Aus der Busspannung wird mittels Schaltregler eine 5V-Spannung gewonnen, diese wird dann mit einem NME0505 (kann sowohl stehende als auch liegende Bauform sein) auf das Potential des Gleise transformiert. Dort regelt dann ein 3,3V-Längsregler auf die vom Prozessor benötigten 3,3V runter.

    Die Busspannung wird dabei mit etwa 30mA belastet. Eingespeist wird Busspannung nur an einem Knoten im Bus (das Buskabel darf max. 1A transportieren). Keinesfalls mehrfach einspeisen, das Buskabel könnte überlastet werden und dabei überhitzen. (Brandgefahr). Am Einspeisepunkt ist auch eine Sicherung vorgesehen.

    Kehrschleife:
    Wie auch beim GBM16T ist hier die Kehrschleifenlogik bereits in der Firmware integriert. Zusätzlich wird für die Kehrschleife noch das ausführende Relais benötigt. Hierzu wird eine kleine Baugruppe mit 3 bistabilen Relais (TQ2L-5V) auf den GBM16TS aufgesteckt oder mit einem 6-poligen Flachbandkabel (Raster 2,54) verbunden.
    Diese Kehrschleifenplatine muß mit 5V (=VUP) versorgt werden. Diese Spannung muß potientialgetrennt sein und kann an den Klemmen X2-1 und X2-2 oder direkt auf der Kehrschleife zugeführt werden.
    Sofern die Versorgung mit DC/DC-Wandler erfolgt und dieser nicht mehr als 5V am Ausgang hat und hinreichend Strom liefert (das ist bei den vorbestückten Platinen der Fall) kann man auch diese Spannung verwenden. Hierzu ist bis Layout 1.2 eine Brücke von VUP auf VBUS erforderlich. (siehe interne Versorgung KS). Wenn intern versorgt wird, darf natürlich extern nicht mehr eingespeist werden!
    Hinweis: bei Verwendung eines anderen **0505-DC/DC sollte man die 5V nachmessen, während der Entwicklung haben wir verschiedene Typen erprobt und dabei auch welche mit einer erhöhten Ausgangsspannung (bis zu 6,5V) gefunden.

Layout


    Die Platine ist 100 x 79mm groß, die Gleiseingänge sind flexibel als Steckklemmen oder Doppelstock bestückbar, jeweils im Raster 3.5mm bestückbar.

    Die RJ45-Buchsen werden als SMD oder THT bestückt. Wenn SMD, so emphielt sich eine Bauart mit mechanischer Verriegelung des Steckgehäuses. (Sonst besteht die Gefahr, dass man bei einem Ruck am Kabel die Buchse samt Lötpads abreisst).

Software

    Railcom-Erkennung:
    Der Railcom-Datenstrom wird mittels des integrierten A/D-Wandlers erfaßt, mit digitaler Signalverarbeitung nachverarbeitet und vollständig ausgewertet - inkl. aller möglichen Unterpakete, nicht nur die Adressmeldung.
    Durch die intelligente Signalverarbeitung garantiert der GBM16TS auch eine Railcomerkennung bei schwächerem Signal und insbesondere auch bei den gemäß Spec max. zulässigen Taktabweichungen von bis zu +/- 2%.
    Parallel zu den Railcom-Daten wird auch der DCC-Datenstrom vollständig analysiert und eine Zuordnung von Railcom-Antwort zu den DCC-Befehlen durchgeführt.

    BiDiB:
    Der BiDiBus wird über einen RS485-Transceiver empfangen. Der UART ist auf 9 Bit eingestellt. Wenn ein Byte mit gesetzem 9. Bit kommt (d.h. es ist ein Token für die Sendeerlaubnis), wird noch in der ISR überprüft, ob der Token die eigene Knotenadresse adressiert. Falls ja und falls eine abzusendende Nachricht vorliegt, wird direkt in der ISR auf Senden umgeschaltet, die TX-ISR freigegeben und auch gleich das erste Datum in den UART geschrieben.
    Wenn das letzte Byte der Nachricht geschrieben wird, dann wird der TX-Complete Interrupt aktiviert, welcher dann nach dem letzten Byte innerhalb von 2µs - 5µs wieder auf Empfangen umschaltet.

Debugschnittstelle

    Der GBM16TS verfügt über einen seriellen Debugport, dieser paßt für die FDTI-RS232-TTL-Kabel mit 6-poliger Stiftbuchse im Raster 100mil (2,54mm). Das Kabel wird so angesteckt, dass die schwarze Ader (GND) zum Taster zeigt (markiert mit Pin 1). Die Debugschnittstelle kann über eine Terminalprogramm wie hterm angesprochen werden und wird mit 115200, 8N1 betrieben.

    Mit dem Befehl ?<cr> kann man sich eine Übersicht der Funktionsaufrufe ausgeben lassen. Bedienungsbespiele finden sich auf fichtelbahn.de.

Bootloader

    Der Xmega128a1 verfügt über eine separate Bootloader-Section mit 8k Speicherplatz. In diesem Speicher ist ein BiDiB-Bootloader implementiert. Dieser wird aktiviert, wenn während des Einschaltens des GBM16TS der Identify-Taster (ID) gedrückt gehalten wird. Die Firmware startet dann den Bootloader.
    Bei Power-Up wird durch zehnmaliges schnelles Blinken auf das Fehlen des Bootloaders hingewiesen.

    Der FW-Update läßt sich komfortabel mit dem BiDiB-Wizard durchführen. Dort wird in der Knotenliste der Knoten mit der der rechten Maus angeklickt und der Menupunkt FW-Update gewählt.
    Namensregeln: Eine Firmware besteht aus einer Datei für den Flashspeicher (Beispiel: nc1_v0.09.02.000.hex) und aus einer Datei für das EEPROM (nc1_v0.09.02.001.hex). Dieses Beispiel ist also die Version 0.9.2, 000 bezeichnet den Flashteil, 001 den EEROM-Teil. Wenn nur die Datei *_update*.000.hex eingespielt wird, dann wird die Firmware erneuert, Makros und Einstellungen bleiben erhalten.

FAQ

  • ???
    Answer ...

Links

    --