OpenSwitch - Digitaldecoder für BiDiB®

Überblick

    OpenSwitch Baugruppe OpenSwitch ist ein Schaltdecoder mit BiDiB-Anschluß, der besonders für den professionellen Einsatz entworfen wurde. Er ermöglicht die Ansteuerung von bis zu vier elektrischen Weichenantrieben (Magnetantrieb) und bis zu 8 Schaltverbrauchern (Glühlampen, Entkuppler usw.). Diese besonderen Eigenschaften zeichnen den OpenSwitch aus:
  • Jeder Ausgang kann 1.2A liefern und ist dauerkurzschlußfest.
  • Der Zustand jeden Ausganges wird mit Leuchtdioden angezeigt.
  • Die Funktion eines Ausganges wird überwacht und bei Fehler erfolgt eine Meldung an das Steuergerät (Zentrale / PC)
  • Die Position von angeschlossenen Magnetantrieben wird gemessen, die korrekte Ausführung von Schaltbefehl wird überwacht und an das Steuergerät gemeldet.
  • Wahlweise kann ein automatischer Selbsttest von Weichenantrieben beim Einschalten des Dekoders aktiviert werden.
  • Wahlweise eine automatische Einschaltverzögerung aktiviert werden, um eine Überlast der Stromversorgung beim Einsatz vieler OpenSwitch zu vermeiden.
  • Wahlweise kann gleichzeitige Schalten von mehreren Antrieben leicht zeitlich versetzt werden - ebenfalls um die Belastung der Stromversorgung zu reduzieren.
  • Ausgänge können einzeln, paarweise oder 4-fach zusammengefaßt und gemeinsam angesteuert werden. (für Licht, Magnetweichenantriebe, Dreiwegeweichen)
  • Modernes, energiesparendes Design: effiziente Schaltwandler, geringe Verluste

Anwendung

Standard-Installation

    Die Stromversorgung des OpenSwitch erfolgt an der Klemme X__ mit geregelter Gleichspannung (z.B. aus einen Industrienetzteil oder aus einem Tischnetzteil), Modellbahntrafos sind nicht geeignet. Der zulässige Spannungsbereich ist 10-17V= DC. Das Netzteil muß von der Leistung her in der Lage sein, die angeschlossenen Lasten sicher betreiben zu können. Der Strombedarf hängt dabei von den verwendeten Antrieben ab - z.B. Roco Seitenantriebe 40295 oder 40296 benötigen beim Schalten ca. 500-600mA.
    Die Magnetantriebe (Doppelspulenantriebe) werden an die Klemmen X__ bis X__ angeschlossen, dabei ist jeweils der mittlere Anschluß gemeinsames Plus, die beiden Anschlüsse links und rechts sind dann für die Spulen.
    Nach Anschließen des Buskabels ist der OpenSwitch dann auch schon einsatzbereit und die Weichen können geschalten werden. Hierbei gilt zu beachten:
    - Accessory 0 schaltet die Weiche 0, Anschluß 0 und 1.
    - Accessory 2 schaltet die Weiche 1, Anschluß 2 und 3.
    - Accessory 4 schaltet die Weiche 2, Anschluß 4 und 5.
    - Accessory 6 schaltet die Weiche 3, Anschluß 6 und 7.
    Technisch bedingt bleiben die Accessory 1,3,5 und 7 sowie 8 und 9 unbenutzt, sind aber in der Anzeige zu sehen.

Schalten einzelner Ausgänge

    Die oben beschrieben Standardinstallation gilt für übliche Doppelspulenantriebe mit und ohne Endabschaltung. Je nach geplanter Anwendung kann es wünschenswert sein, einzelne Ausgänge direkt schalten zu wollen - z.B. Beleuchtung an/aus oder Entkuppler Betätigung. Um hier nicht einen Doppelausgang quasi halbseitig zu verschwenden, kann man einen Doppelausgang in zwei einzelne Ausgänge auflösen.
    Hierzu klickt man im Wizard mit der rechten Maus auf den entsprechenden Port und wählt im Menu dann 'Portkonfiguration ändern'. Dann kann man von Switch-Pair zu Switch ändern. Einzelne Ports können dann mit dem Accessory mit der gleichen Nummer geschaltet werden, also z.B. Accessory 3 schaltet dann den Port 3.
    Diese Portumstellung kann individuell je Ausgangspaar vorgenommen werden, das erlaubt einen flexiblen Einsatz der Baugruppe.

Mehrwegweichen

    Es ist vorgesehen, dass man zwei Doppelausgänge kombinieren kann, um z.B. eine Drehwegweiche anzusteuern. Die beiden Magnetantriebe werden dann auf ein Accessory (Nummer 8 bzw. 9) abgebildet, wobei Nr. 8 die Ausgänge 0, 1, 2 und 3 ansteuert, Nr. 9 die Ausgänge 4, 5, 6 und 7. Die Kombination hat dann auch 4 Begriffe, eben alle möglichen Kombinationen der Stellungen der beiden Magnetantriebe.
    Mehrwegweichen sind nur möglich, wenn für die einzelnen verwendeten Ports ein SwitchPair einstellt ist. Dabei werden die Parameter wie z.B. Schaltzeit vom ersten SwitchPair (also 0 bzw. 4) verwendet. Eine Mehrwegweiche ist erst dann eingelaufen, wenn die Schaltzeit der letzten Spule abgelaufen ist.

    Die Ansteuerung der Spulen erfolgt simultan oder in Reihe (siehe hier den Abschnitt 'Nur ein Antrieb schalten'); wenn in Reihe geschaltet wird, wird das Ausgangpaar 0-1 vor den Paar 2-3 geschaltet.

Schaltzeit

    Jeder Ausgang kann einzeln in seiner Schaltzeit eingestellt werden, bei Doppelspulenantrieben gilt die Schaltzeit für beide Seiten. Wenn eine Schaltzeit von 0 eingestellt wird , geht der Ausgang auf Permanent-Ein. (z.B. für Glühbirnen).
    Hinweis: wenn ein Einzelausgang auf Pulsbetrieb gestellt ist, so folgt er doch intern einer 'Ein'-'Aus'-Logik, d.h. es erfolgen folgende Reaktionen:
      -Einschalten: Ausgang wird aktiviert und nach der Schaltzeit wird die Aktivierung von selbst weggenommen. Der interne Zustand ist aber 'EIN'.
      -Ausschalten: Der interne Zustand wechselt auf 'AUS', sofern der Ausgang noch aktiviert ist, wird er abgeschaltet. Ist er wegen der abgelaufenen Schaltzeit schon aus, passiert nichts weiter.

Ausgangsüberwachung

    Jeder Ausgang verfügt über eine Überwachung angeschlossene Last. In der Grundeinstellung ist diese Überwachung abgeschaltet (einfach um bei der Erstinbetriebnahme nicht zu viele Fehlermeldungen zu erzeugen ;-) ). Die Überwachung wird durch Angabe des Lasttypes zugeschaltet:
  • Lasttyp = ohm'sche Last: hier wird das korrekte Schalten und bei Nichtbetätigung auch das Vorhandensein des angeschlossenen Verbrauchers überwacht. Dadurch kann z.B. ein Drahtbruch oder eine durchgebrannte Glühlampe erkannt werden.
  • Lasttyp = Spule mit Endabschaltung: hier wird sowohl das korrekte Schalten als auch (bei Switch-Pair) das Umlaufen des Antriebes überwacht. Damit kann das Stellen einer Weiche kontrolliert werden.
    Hinweis: diese Kontrolle reicht nur bis zum Doppelspulenantrieb. Wenn also der Stelldraht ausgehängt ist oder die Weichenzunge selbst blockiert ist (das berühmte und oft zitierte Schotterkorn), dann wird das nicht erkannt.

Zustand nach Einschalten

    Es kann frei gewählt werden, welchen Zustand die Accessory nach dem Einschalten annehmen sollen:
  • Definierter Begriff.
    Das ist z.B. sinnvoll bei Signale - diese sollen erst mal Hp0 zeigen. Bei Weichen ist es fallweise unerwünscht - es könnte ein Zug auf der Weiche stehen.
  • Letzter eingestellter Begriff: der Dekoder nimmt die letzte Stellung erneut ein. Das ist empfehlenswert bei Weichen mit internen Federschnappmechanismus (z.B. Märklin oder Roco 40295/40296)
  • Letzter eingestellter Begriff: der Dekoder nimmt die letzte Stellung erneut ein. Das ist empfehlenswert bei Weichen mit internen Federschnappmechanismus (z.B. Märklin oder Roco 40295/40296)
  • Keine Aktion: es wird nicht versucht, das Accessory zu restaurieren. Diese Einstellung ist zu verwenden, wenn das Accessory nicht benutzt wird oder nicht angeschlossen ist.
  • Da durch die Flexibiltät des Dekoders mehrer verschiedene Accessory auf einen Ausgang wirken könnten, gibt es bei der Initialisierung eine festgelegt Priorität:
      - Initialisierung der Accessory mit Schaltpaaren (normaler Weichenantrieb)
      - Initialisierung der Accessory mit Einzelausgängen
      - Initialisierung der Accessory mit Mehrfachweichen
    Die jeweilige Initialiserung wird nur durchgeführt, wenn der Ausgang nicht schon vorher durch ein anderes Accessory initialisiert wurde. Das bedeutet z.B. dass man zum Init einer Dreiwegweiche alle Initialsierungen der Schaltweichen oder Einzelausgänge mit den gleichen Anschlüssen abschalten muß.

Besonderheiten beim Einsatz auf großen Anlagen

    Im Anlageneinsatz mehrerer Weichendekoder stellt sich oft das Initialisierungsproblem, welches zudem noch mehrschichtig ist: man will zum einen sicher gehen, dass die Hardware funktioniert (dass also auch die angeschlossenen Magnetantriebe korrekt funktionieren), zum anderen verbietet es sich, alle Weichen zu Beginn zu schalten, weil dann die Stromversorgung ev. zu stark belastet wird. Aber auch das einfache simultane Einschalten mehrere Dekoder bedeutet oft eine Stromspitze (Inrush-Current), die zu große für das Netzteil ist.
    Die Baugruppe OpenSwitch bietet hierfür Lösungen an:
  • Die initiale Einschaltstromspitze wird durch eine Softstart-Automatik wirksam reduziert.
  • Die erstmalige Bestromung von Antrieben kann in einstellbaren Zeiträumen verzögert werden.
  • Zuschaltbar kann festgelegt werden, dass immer nur ein Antrieb zur gleichen Zeit schalten darf.
  • Die angeschlossenen Weichenantriebe können mittels eines automatischen Test bei Starten der Anlage geprüft werden
    Einschaltverzögerung
    Die Einschaltverzögerung beim Anlegen der Stromversorgung wird mittels zweier CVs eingestellt:
    CV63:Modus der Einschaltverzögerung
    0keine Einschaltverzögerung
    1Verzögerung mit einer festen Zeit, welche in CV64 angegeben wird.
    2Verzögerung mit einer (Pseudo-) Zufallszeit, welche von der Kennung der Baugruppe (Unique) abhängt. Die Verzögerung liegt dann im Bereich von 0 bis zu einem maximalen Wert, welcher in CV64 angegeben wird.
    CV64:Zeitdauer Einschaltverzögerung
    0..255Angabe der Zeit in Einheiten von 100ms, d.h. es ist eine Zeit von 0 bis 25,5s einstellbar.
    Wichtige Hinweise:
      - die Anmeldung am BiDiBus erfolgt erst, wenn die Einschaltverzögerung abgelaufen ist.
      - während der Einschaltverzögerung flackert die 'Activity'-LED.

    Nur einen Antrieb schalten
    Mittels der CV61 kann man wählen, ob bei mehreren gleichzeitig eintreffenden Schaltbefehlen immer nur ein Antrieb zur gleichen Zeit aktiviert werden soll. Die Aktionen der weiteren Antriebe werden dann verzögert und natürlich auch die entsprechende 'Fertigmeldung' verzögert sich dabei auch.
    CV61:Parallelschalten-Sperre (only-one-coil)
    0keine Beschränkung
    1Verzögerung folgender Schaltvorgänge.
    CV62:Zeitdauer Zwischenpause
    0..255Angabe der Zeit in Einheiten von 10ms, d.h. es ist eine Zeit von 0 bis 2,5s einstellbar.
    Sollten mehrere Antriebe zugleich geschaltet werden, so gilt nach nach wie vor 'only one coil': die später eintreffenden Schaltbefehle werden entsprechend verzögert (und auch später als fertig gemeldet). Die Zwischenpause kann benutzt werden, um z.B. Kondensatoren im Netzteil wieder etwas 'Ladezeit' einzuräumen.

    Selbsttest
    Gerade bei Ausstellungsanlagen möchte man sich vor Aufnahme des Betriebes vergewissern, ob alle Antriebe funktionieren. Die OpenSwitch kann auf Wunsch nach den Einschalten einen ersten Funktionstest angeschlossener Antriebe durchführen.
    Hierzu legt man in den CV-Einstellung die entsprechende Einstellung beim Accessory auf 1. Das Accessory wird dann beim Starten einmal in allen Begriffen durchgeschaltet und jeweils die Rückmeldung ausgewertet. Ergeben sich Fehler, meldet die Baugruppe diese Fehler nach der Anmeldung am Bus. Die Fehlermeldung lautet: MSG_SYS_ERROR BIDIB_ERR_HW (hexadezimale Ziffer). Die Hex-Ziffer gibt das Accessory (High Nibble) und den Aspect (Low Nibble) an, wo der Fehler aufgetreten ist.
    Die Rückmeldung ausgewertet wird, macht Selbsttest nur Sinn bei Magnetantrieben mit Endabschaltung und wird deswegen auch nur dann aktviert, wenn der Lasttyp des Accessory auf 'Antrieb mit Endabschaltung' steht.
    Es empfiehlt sich, diese Einstellung erst nach erfolgreichem Anschluß und Test der Antriebe zu aktivieren, ebenso empfiehlt es sich, die obigen Option 'nur-einen-Antrieb' schalten zu aktivieren, sonst geht es nach dem Einschalten sofort heftig zur Sache.

Besondere Einstellungen

    Das Schaltverhalten und die Weichenlage wird durch Rücklesen der Ausgänge überwacht. Die Zeitpunkt für das Rücklesen sind mittels CV einstellbar:
    CV65:Zeitpunkt der Prüfung bei Ausgang aktiv (LOW)
    5..100Angabe der Zeit in Einheiten von 1ms.
    CV66:Zeitpunkt der Prüfung bei Ausgang aktiv (HIGH)
    5..100Angabe der Zeit in Einheiten von 1ms.
    CV67:Interval der Stellungsüberprüfung
    10..100Angabe der Zeit in Einheiten von 10ms.

Download

      OpenSwitch   Version Erläuterung
      Bootloader: 
      V00.00.01  
    31.10.2021
        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 
    OpenSwitch 

      V0.01.02  
    28.02.2022
        Die eigentliche Applikationsfirmware. Sie besteht aus zwei Teilen:
    OpenSwitch_version.000.hex für den Flashspeicher der Baugruppe.
    OpenSwitch_version.001.hex für den EEPROM-Speicher der Baugruppe.
      Bauanleitung        (noch fehlend)
      Schaltplan    OpenSwitch_sch_v1.1.pdf
      V1.10  
         
      Bestückungsplan    OpenSwitch_comp_v1.1.pdf
      V1.10  
         
    Hinweise:

Versions-History

  • Applikation:
      31.10.2021 V0.00.01 Erste Freigabe
      31.11.2021 V0.00.05 Erweiterung für Dreiwegweichen
      28.02.2022 V0.01.02 Bugfix bei der Rückmeldung im Falle simultanen Schaltens mehrere Weichen mit Lagerückmeldung
  • Bootloader:
      31.10.2021 V0.01 Erste Freigabe

Technische Beschreibung

Hardware

    Am Eingang ist eine Verpolschutz-Beschaltung vorgesehen, so dass versehentliches Falschanschließen keine zerstörische Wirkung hat. Aus dieser Eingangspannung wird das über einen DC/DC-Schaltwander die Betriebspannung 3.3V der internen Logik gewonnen. Diese kann am Prüfpunkt hinter der Netzwerkbuchse kontrolliert werden. (der hier verwendete Schaltwandler legt auch die Begrenzung auf 17V).
    Als Prozessor findet ein Atmel atxmega32E5 aus der AVR-Familie Verwendung. Diese bietet einen 8-bit AVR Kern, DMA und priorisierbare Interrupts und ist optimal für diese Baugruppe geeignet. Der Prozessor bedient die BiDiB-Schnittstelle, steuert die LEDs und Schaltausgänge an und führt die Überwachung der Schaltausgänge durch.
    Vier Leuchtdioden zeigen den jeweiligen Programmzustand an, weitere 8 LEDs sind jeweils den Ausgängen zugeordnet.
    Die Schaltausgänge sind mittels integrierter Low-Side-Schalter von diodes.com realisiert. Diese Schalter sind für den robuste Einsatz unter schwierigen Umgebungsbedingunen konzipiert. Sie sind kurzschlußfest und zusammen mit der Freilaufdiode können auch beliebige rücklaufende Energien aus dem Schalten von Spule sicher beherrscht werden. Die Schaltausgänge sind paarweise gegliedert, der Anschluß ist jeweils als 'Triple' zusammen mit gemeinsamen Plus und den beiden Anschlüssen für die Spulen des Antriebes ausgeführt.
    Zur Lagekontrolle und zur Kontrolle des erfolgreichen Schaltens sind die Ausgänge über einen Multiplexer DG408 abfragbar. Die zwei grünen LEDs beschränken dabei die Spannung für den Prozessor.
    Der BiDiBus-Anschluß erfolgt mit dem in der BiDiB-Norm vorgeschriebenen Anschlußtiming - 500kBaud sowie entsprechende Anstiegszeit am Busbaustein. Es sind zwei parallele RJ45 Buchsen vorgesehen, damit das Buskabel leicht durchgeschleift werden kann. /

      Selbstbau

        Prinzipiell gibt es beim Aufbau keine besonderen Schwierigkeiten - ausgenommen die teilweise sehr kleinen Pinabstände bei diversen Bausteinen. Hier ist also unbedingt entsprechende Ausrüstung und Kenntnis erforderlich.
      • Man beginnt mit der Stromversorgung: Widerstände, Spule und Schaltwandler (TPS62170) sowie dem PFET zur Verpolsicherung. Nach dem Aufbau der Stromversorgung sollte man diese vor der Bestückung der restlichen Bauteile prüfen und kontrollieren, ob 3,3V erzeugt werden.
      • Dann werden die LEDs und Widerstandsnetzwerke bestückt. Auch hier empfiehlt sich ein sofortiger Test, ob die LED leuchten.
      • Als nächstes wird der Prozessor bestückt. Verwendet wird der ATxmega32E5M4U (hier die kleine Version mit 4x4mm groß, Pitch 0,4mm!). Bei Handlötung verzinnt man einen Eckpad, setzt den Prozessor ein, kontrolliert nochmal Pin 1 und die genaue Lage des Chips und lötet dann gegenüber fest. Nach allen Pins kann man das Centerpad (mit feiner Spitze) von unten durch die PCB hindurch verlöten. Da keine großen Ströme laufen, reicht eine punktuelle Verlötung.
      • Bei den Treibern ist in der Platinenversion 1.0 das SM8 (ZXMS6006DT8Q) Package verwendet, in der Version 1.1 ist das SO8 Package verwendet. Beim SO8 (ZXMS6006DN8) gibt es kompatible Alternativen: ST VNS1NV04DP-E, Infineon AUIPS2052G
      • Abschließend werden die höheren Bauteile bestückt.
      • Die Stromaufnahme der noch nicht mit Firmware bespielten Platine sollte im Bereich weniger mA liegen.

        Erst-Installation der Firmware
        Fuses:

        Zur kompletten Installation der Firmware sind 4 Bestandteile erforderlich:
        BootloaderDieser Firmwareteil erlaubt die Erneuerung der Applikation und bleibt auch bei Änderung der Applikation unverändert im Prozessor gespeichert. Der Bootloader kann nur mittels eines Prozessorprogrammiergerätes eingespielt werden (via PDI).
        SeriennummerUm die Baugruppe eindeutig am Bus zu identifizieren, muß eine Seriennummer hinterlegt werden. Das ist einmalig erforderlich und kann mittels BiDiB-Wizard oder mit dem Programmiergerät erfolgen. Wenn die Applikation gestartet wird, wird die Seriennummer permanent in der Signatur des Prozessors gespeichert. Die Seriennummer muß für jede Baugruppe individuell mittels des Generators erzeugen.
        Applikation ProgrammDie Applikation (OpenSwitch_Vxx.000.hex) kann mittels BiDiB-Wizard oder mit dem Programmiergerät programmiert werden.
        Applikation DatenDie Applikation benötigt Einstelldaten, hier muß bei der Erstinstallation die Datei OpenSwitch_Vxx.001.hex geladen werden.

      Fehlersuche

        Bei einer Fehlersuche beginnt immer erst mit einer genauen optischen Inspektion. Sollten keine optischen Vergrößerer verfügbar sein, photographiert man die Platine bei sehr gutem Licht von beiden Seiten und sieht sich da Bilder am PC an.
        Der nächste Punkt ist die Ruhestromaufnahme, diese sollte unter 10mA liegen. Wenn hier zuviel Strom fließt, muß irgendwas warm werden ...
        Als nächstes kontrolliert man die internen 3,3V: stabil, sauber?
        Dann überprüft man, ob man den Prozessor am Programmiergerät (ICE, Atmel mkII o.ä.) erreichen kann und ob dort die Fuses korrekt gesetzt sind.

      Software