OpenSwitch - Digitaldecoder für BiDiB®
Überblick
-
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 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 Baugruppe OpenSwitch bietet hierfür Lösungen an:
Einschaltverzögerung
Die Einschaltverzögerung beim Anlegen der Stromversorgung wird mittels zweier CVs eingestellt:
CV63: | Modus der Einschaltverzögerung |
---|---|
0 | keine Einschaltverzögerung |
1 | Verzögerung mit einer festen Zeit, welche in CV64 angegeben wird. |
2 | Verzö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..255 | Angabe der Zeit in Einheiten von 100ms, d.h. es ist eine Zeit von 0 bis 25,5s einstellbar. |
- 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) |
---|---|
0 | keine Beschränkung |
1 | Verzögerung folgender Schaltvorgänge. |
CV62: | Zeitdauer Zwischenpause |
0..255 | Angabe der Zeit in Einheiten von 10ms, d.h. es ist eine Zeit von 0 bis 2,5s einstellbar. |
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..100 | Angabe der Zeit in Einheiten von 1ms. |
CV66: | Zeitpunkt der Prüfung bei Ausgang aktiv (HIGH) |
5..100 | Angabe der Zeit in Einheiten von 1ms. |
CV67: | Interval der Stellungsüberprüfung |
10..100 | Angabe 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 |
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).
- 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.
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.
Erst-Installation der Firmware
Fuses:
Zur kompletten Installation der Firmware sind 4 Bestandteile erforderlich:
Bootloader | Dieser 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). |
Seriennummer | Um 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 Programm | Die Applikation (OpenSwitch_Vxx.000.hex) kann mittels BiDiB-Wizard oder mit dem Programmiergerät programmiert werden. |
Applikation Daten | Die 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.