Booster für DCC, mit Austastlücke für BiDi (railcom™)

    Bidi (railcom) Booster für DCC
    Mit der Einführung von NMRA-BiDi (railcom) sind Booster erforderlich, welche die Austastlücke (cutout) erzeugen können.
    Diese Schaltung basiert auf dem normalen Booster, ist also wieder in H-Brückentechnik realisiert.

Eigenschaften

  • Strom: max. 4,0A
  • Spannung: Stabilisiert auf 15V, Stromversorgung über externes Netzteil
  • Sicherung: Automatische Abschaltung bei mehr als 4A, Wiedereinschalten nach ca. 1s; Automatisches Abschalten bei fehlendem DCC-Signal am Eingang
  • Melder: Abschaltmeldung an Zentrale per Optokoppler (optional)
  • Anschluß: mit Schraubklemmen, Eingangssignal über Optokoppler eingespeist.
  • BiDi: Erzeugen der Austastlücke für BiDi (railcom ®)
  • Baugröße inkl. Kühlkörper: 100*60*30mm

Einbau und Bedienung

    Spannungsversorgung:
    An X3 wird die stabilisierte 15V-Spannung des externen Netzteils eingespeist, Polarität beachten.

    DCC-Eingang:
    An X1 wird das DCC-Signal angeschlossen, dabei ist die Polarität benachbarter Gleisabschnitte gleich zu verdrahten. Auch die Polarität bei benachbarten Booster ist jeweils gleich zu verdrahten, da es sonst beim Überfahren von Versorgungsgrenzen zu Kurzschlüssen kommt.

    Gleis-Ausgang:
    Der Ausgang (X2) wird mit dem Gleis verbunden, auch hier ist auf gleiche Polarität zu achten. Ein Kurzschluß zwischen benachbarten Boostern (z.B. durch eine Lok oder Waggon) bleibt ohne Folgen. Bei Waggons, die den Strom diagonal aufnehmen (z.B. vorderes Drehgestell rechts, hinten links), wird das Licht an der Trennstelle dunkel, weil der Rückstrom unterbrochen ist. Hinweis: Falls dieser "diagonale" Waggon der erste Wagen eines Zuges ist, dann kann je nach Richtung der Diagonale der Zug fallweise von den Rückmeldern zu spät erfasst werden.

    Prinzipiell ist der Gleisanschluß mit verdrillten Leitungen auszuführen, um Einkopplungen des Ausgangssignals auf andere Schaltungsteile (z.B. Rückmelder, S88) möglichst zu vermeiden. Sollten am Gleis Signalüberschwinger auftreten, so muß das zusätzliche RC-Glied im Ausgang bestückt werden. (s.u.)

    Betrieb mehrerer Booster: Aus Gründen der Störsicherheit (Einkopplung auf andere Schaltungsteile, insbesondere S88) sollten mehrere Booster sekundärseitig untereinander verbunden werden. Hierzu ist ist jeweils der gleiche Anschluß von X2 zu verwenden. Der Grund sind Ausgleichsströme, wenn eine Lok zwei Versorgungsbezirke kurzschließt: hier kann kurzzeitig ein Strom über die S88-Masse fließen, der damit verbundene Spannungsabfall kann einen zusätzlichen Schiebetakt auslösen, was dann zu vollkommen unerklärlichen Fehlmeldungen führt. Durch die sekundärseitige Masseverbindung (mind. 1,5mm²) der Booster wird dieser Ausgleichsstrom abgefangen.

    Achtung: Keinesfalls unterschiedliche Boosterkonzepte (also Massegekoppelte Booster und H-Brückenbooster auf einer Anlage mischen. Des weiteren keinesfalls Booster mit BiDi und solche ohne BiDi mischen.
    Auf der Seite Anlagenverdrahtung ist die Verdrahtung einer Modellbahn dargestellt.

    BiDi (Railcom™):
    Der Booster kann die Austastlücke (=cutout) für bidirektionale DCC-Kommunikation erzeugen. Hierfür wird das DCC-Logiksignal mittels zweier UND-Gatter (74HC08) auf 0 geklemmt und die Ausgangsstufe erzeugt daraus den notwendigen Schluß für die Rückübertragung von Daten. Wenn das Eingangssignal bereits eine Austastlücke enthält, so wird automatisch auch an Ausgang eine Lücke erzeugt. Durch Stecken des Jumper 1 kann die Austastlücke auch erzeugt werden, selbst wenn das Eingangssignal keine Lücke enthält.
    Hinweise:
    Der Booster enthält keine Logik, um das rückübertragene Signal auszuwerten (Globaler Detektor). Er stellt nur die notwendige Austastlücke bereit.
    Falls Cutout nicht benötigt wird, kann man IC3 weglassen und dafür die Lötbrücken SJ1 und SJ2 schließen.
    Für die Erzeugung der Cutout muß der Attiny mit Booster_BiDi.hex (Version > 1.23) geladen werden, siehe download.


    Anzeigen:
    Das Anliegen des DCC-Signals wird mit einer grünen LED, das Ansprechen der Überlastsicherung mit einer roten LED angezeigt. Je eine gelbe LED zeigt die Last von 3,2A ("loaded"). Eine weitere LED zeigt an, ob eine Austastlücke empfangen wird.

    Wenn der Booster wegen fehlendem Eingangssignal oder wegen Überlast abgeschaltet hat, dann wird mit dem Optokopplerausgang (Open Collector) X4 dieser Zustand gemeldet. X4-1 ist Ground, X4-2 ist Schaltausgang. Die Rückmelde-Schaltausgänge mehrerer Booster dürfen parallel geschaltet werden. Beide Lötbrücken SJ3 und SJ4 bleiben i.d.R. geöffnet.
    Neu ab Version 0.21 bzw. 1.21: der FEEDBACK-Ausgang (für Platinen 2.01) wird angesteuert.

    Eingang:
    Neu ab Version 1.22: es ist ein extra Eingang zum An- und Abschalten in der Software vorgesehen (Pin PD6, das ist Pin 11 beim DIP20-Gehäuse), high schaltet den Booster ein, low schaltet ihn aus. Am Prozessor ist ein Pullup programmiert, der default-Zustand ist also 'EIN'. Dieser Anschluß ist aber nicht auf der Platine rausgeführt.

Schaltungsbeschreibung

    DCC Booster with railcom

    Spannungsversorgung:
    An X3 wird die stabilisierte 15V-Spannung des externen Netzteils eingespeist und zur Versorgung des Vollbrückentreibers L6203 und des 5V Längsreglers 7805 verwendet. Wichtig: richtige Polarität, sonst raucht's!
    Die vom Booster ans Gleis abgegebene Spannung ist dann auch normalerweise 15V, allerdings sinkt diese Spannung bei höherer Stromentnahme etwas ab, da intern in den L6203 etwas ein Widerstand von 0,3Ohm im eingeschalteten Zustand (R-on) vorhanden ist. Bei 3A sind etwa 13V zu erwarten. Wenn das nicht reicht, dann einfach ein Netzteil mit 18V verwenden. Diese Spannung muß gut gesiebt werden, hierzu ist C10 (keramischer Abblockkondensator) als SMD möglichst nah am L6203 zu montieren.

    Kurzschlußüberwachung:
    Der Rückstrom aus der Vollbrücke wird über einen Strommeßwiderstand (0,05 Ohm, ev. Parallelschaltung von zwei 0,1 Ohm Widerständen) geleitet. Der Spannungsabfall an diesem Widerstand (0,2V bei 4A) wird mit dem Komparator mit dem Spannungsabfall am Widerstand R7 (432 Ohm) verglichen. Der Komparator hat einen Eingangsspannungsbereich bis 0V. Mit der Kombination aus R11 und C6 wird die Ansprechverzögerung (100µs) der Kurzschlußüberwachung eingestellt. Bei zu großem Strom zieht der Komparator an und triggert den Attiny, welcher in Folge die Brücke abschaltet. Der Prozessor ist auf folgendes Abschaltverhalten programmiert: nach einem Kurzschluß wird zuerst dreimal in Abständen von 4ms versucht, wieder einzuschalten. Wenn das nicht gelingt, dann erfolgen die nächsten Einschaltversuche im Abstand von 1s.
    Folge: wenn der Kurzschluß durch eine Kehrschleifenautomatik behoben wird, dann schaltet der Booster schnell wieder ein. Bei echtem Kurzschluß sind die Einschaltversuche hinreichend weit auseinander, so daß es nicht zu Lichtbogenbildung oder Brummen kommt.
    Neu ab Version 0.2 bzw. 1.2: Nach dem Starten des Boosters wird trotz vorhandener Kurzschlußmeldung für eine kurze Zeit von 10ms das Signal aufrechterhalten. Damit werden eventuelle Startschwierigkeiten behoben, die bei zu großer kapazitiver Last (durch Sounddekoder) oder mit Kaltleitern (Glühlampen) enstehen können. Diese Abschaltverzögerung gilt nur, wenn der Booster frisch eingeschaltet wird, z.B. weil das Eingangssignal aktiv geworden ist oder wenn der Booster aus der langen Abschaltzeit startet. Sie gilt nicht im normalen Betrieb und nicht bei den Schnellstartversuchen.

    DCC-Überwachung:
    Das Eingangssignal wird mit den Prozessor auf Pegelwechsel und Cutout überwacht. Sollte länger als 15ms kein Pegelwechsel anliegen, wird die Vollbrücke abgeschaltet. (Lt. NMRA darf DCC bis zu 12ms lange "0"-Bits enthalten.) Damit wird sichergestellt, dass nach Ausfall des DCC-Signals keine Gleisspannung anliegt und ev. Loks eine anliegende Analogspannung annehmen und losrennen.

    Cutout-Erzeugung:
    Wenn ein Cutout erzeugt werden soll, so werden beide Seiten des DCC-Signals durch das UND-Gatter auf 0 geklemmt und dadurch beide unteren MOSFETs der Brücke durchgeschaltet. Somit ist der Ausgang kurzgeschlossen und die Rückübertragung ist ermöglicht. Zusammen mit der Cutout-Erzeugung ist auch noch eine kleine Totzeit implementiert, das hat folgenden Grund: Der eng tolerierte Rahmen für die cutout bedingt auch, dass der Booster dem Eingangsignal exakt folgen kann. Bei Versorgung mit einem steilflankigen Signal auf der Eingangsseite ist dies auch gewährleistet. Wenn das Eingangssignal jedoch mit langsamen Flanken eintrifft (wie sie z.B. von der Intellibox erzeugt werden), dann kann es erforderlich sein, den Schaltzeitpunkt der beiden Ausgangsstufen näher zusammen zu bringen. Hierzu kann der Vorwiderstand R1 des Optokoppler von 2k2 auf 1k2 gesenkt werden, der OK schaltet dann beim Flankenwechsel etwas früher.
    Guard-Intervall für CUTOUT bei BiDi
    Wenn eine Lok zwei Booster kurzschließt (z.B. beim Überfahren der Versorgungsgrenze), und ein Booster macht schon CUTOUT, der andere jedoch noch das Gleissignal, dann feuern beide Booster gegeneinander und zwar mit maximalen Strom.
    Um das sicher zu vermeiden, wird kurz vor der Cutout abgeschaltet und nach 4µs gleich wieder eingeschaltet.


    Überschwinger am Ausgangssignal:
    Der Ausgang ist intern mit einer RC-Kombination kompensiert. Sollte eine längere Leitung angeschlossen sein (z.B. 5m), so kommt es wegen des gewählten Schaltungsprinzips (schaltende MosFETs mit schneller Flanke) zu Reflexionen auf der Leitung und entsprechend zu Überschwingern. Diese lassen sich vermeiden bzw. reduzieren wenn man den Ausgang zusätzlich durch ein RC-Glied filtert. Bewährt hat sich eine Kombination aus Längswiderstand und Querkondensator mit den Werten R23=0,15Ohm und C16=100nF bis 200nF. Der Widerstand sollte eine max. Verlustleistung von 2,5W haben. Der Ruhestrom steigt dadurch allerdings um ca. 30-60mA (je nach Kondensator) an.
    Bei der Zentrale OpenDCC wurde das gleiche Schaltungsprinzip angewendet, dort sind auch Oszillogramme der Ausgangskurvenform gezeigt.

Layout, Bestückungsplan


    Das Layout ist auf einer Platine 50*80mm realisiert.

    DCC Booster, Bauteileseite
    Bauteilseite

    DCC Booster, Lötseite
    Lötseite

    DCC Booster, Bestückung
    Bestückung

Aufbauanleitung

    Zuerst mal der übliche Sums: Elektroniklötkolben (nicht über 300W;-), geeignetes Lötzinn (kein Tiffany-Bleilot), Dioden richtig polen (kleiner Strich in Layout), CMOS-ICs sind statisch gefährdet, kurzum: wer's nicht kann, soll nicht mit dieser Schaltung das Üben anfangen. Die Werte der Widerstände und C's sind unkritisch, im Schaltplan finden sich Hinweise zur Dimensionierung.
    Bei LEDs ist der lange Anschluß Anode (+).
    Die Erstinbetriebnahme muß am geregelten Labornetzteil erfolgen, der Leerlaufstrom beträgt etwa 50mA.
    Attiny2313 8MHz intern RC-Oscillator
    Fuses für dem Attiny bei 8MHz, internen Takt.

    Aufbauhinweise - Alternativen
    • Kühlkörper: Im Worst Case werden am L6203 bis zu 10 Watt frei; bei einer max. T(case)=90° und T(amb)=40° sollte der Kühlkörper nicht mehr als 5°/W haben.
    • Optokoppler: Statt hp2631 kann auch ein anderer Typ verwendet werden, muß allerdings schnell genug sein. hp2731 ist zu langsam!
      Nachfolgend eine kleine Crossreferenzliste (ohne Anspruch auf Vollständigkeit)
             Agilent     HCPL-0631      HCPL-2631
             Fairchild   HCPL0631       HCPL2631
             Toshiba     TLP2631
             Vishay      SFH6780T       SFH6751
             NEC         PS9817-2
             
      Im Prinzip passt jeder Dual 10MBit Optokoppler.
    • Bitte die Hinweise zur Verdrahtung beim Booster beachten.


    Test, Fehlersuche
    • Nach dem Einschalten blinken alle 3 LEDs am Prozessor während einer Zeit von ca. 2s dreimal hintereinander. Wenn das deutlich länger dauert, dann ist die Clockversorgung des Attiny noch auf dem Defaultwert von 1MHz.
    • In der Version 1.1 sendet die Software auf Pin 11 des Attiny einen Takt mit etwa 500Hz und 50% Taktverhältnis.

Software

  • Erzeugen der Meßlücke (Cutout), Timing
    Für die Belegtmeldung nach D&H und für railcom benötigt man eine Austastlücke. Etwa 30µs nach der abschließenden 1 der vorangegangenen Nachricht wird eine Austastlücke von 418µs erzeugt. Diese Zeit ist relativ eng toleriert, sie muß auf etwa 1% genau eingehalten werden, vorausgesetzt, die vorgeschaltete Zentrale hält ihr Timing genau ein. Zieht man die dort zulässigen Abweichungen in Betracht, so muß sich der BiDi-Booster auf das Timing der Zentrale synchronisieren und zwar nicht nur für die Phasenlage der Austastlücke, sondern mit seinem ganzen Taktoszillator.
    Dies ist insbesondere auch wichtig bei Verwendung mehrerer Booster, diese würden sonst bei ausgangsseitigen Kurzschluß (z.B. durch eine Lok auf Trennstelle) gegeneinander arbeiten.

    Hier wird dies durch eine in Software implementierte digitale Regelung realisiert. Als Vorwärtsfilter wird eine gleitende Mittelwertbildung verwendet, die exakte Länge der Austastlücke (bezogen auf die aktuellen Taktverhältnisse) wird dann aus dem Filterergebnis berechnet. Dieser in der Software berechnete genaue Zeitpunkt für die Austastlücke muß nun möglichst jitterfrei in die Hardware gebracht werden. Hierzu werden am Timer 1 die PWM-Komparatoren mit den berechneten Werten für Start und Ende der Cutout geladen und in der entsprechenden Interruptroutine erfolgt die Manipulation der Ausgangsstufe. Erreicht wird eine Genauigkeit von <2µs. Dadurch arbeitet der Booster immer exakt im Timing der Zentrale.

    Zur weiteren Erhöhung der Sicherheit wird beim Übergang von normalem DCC-Signal auf Austastlücke eine 4us (CUTOUT_GUARD) lange Pause eingefügt, in welcher der Booster kurzfristig hochohmig wird. Mit Hilfe dieser Zeit werden die Unsicherheiten zwischen mehreren Boostern sicher kompensiert.
    Dieses CUTOUT_GUARD ist leider in der Version 2.0 auch als Abschaltereignis am Meldeausgang sichtbar gewesen, deshalb wurde in der Version 2.01 der Meldeausgang von der Freigabe der H-Brücke entkoppelt.

    (Urprünglich wollte ich die Regelung mit einer PLL realisieren, das o.g. Filter hätte dann den RC-Oszillator des Atmel als VCO verwenden. Leider schwingt das etwas, weil die OSCCAL-Kennlinie des Attiny nicht sauber monoton ist. Dadurch hätte sich zu viel Jitter ergeben.)
  • Polarität:
    Zur Erzeugung der Cutout muß das DCC Eingangssignal in der richtigen Polarität in der Software vorliegen. Da nun der Anschluß nicht sicher ist, wird innerhalb der DCC Empfangsroutine die Polarität geprüft und fallweise das Signal auf die aktive Flanke synchronisiert. Der Signalweg vom Eingang zum Ausgang bleibt hiervon unberührt. Der Booster gibt immer das Eingangsignal 1:1 auf den Ausgang durch.
    Trotzdem sollten bei Verwendung mehrerer Booster alle Booster in gleicher Polarität angeschlossen werden, um Laufzeitfehler durch Signal-Asymmetrien auszuschließen.

Unterlagen

    Folgende Unterlagen werden für den privaten Gebrauch bereitgestellt. Jegliche Weiterveröffentlichung oder kommerzielle Nutzung ist untersagt, es gibt auch keine Haftung für die Richtigkeit ;-)
  • Software:
    Software_Booster2.zip V0.23 (nur Timer, kein BiDi) und V1.28 (BiDi), bugfix: wegen eines in 1.27 eingebauten Fehlers konnte BLOCK_SHORT_after_PowerOn zu lange wirken und der Booster verzögert abschalten.
  • Hardware:
    Partlist_Booster2.pdf Stückliste
    Bestückungsplan
    Bild Leerplatine

Links