SolarView

.
Einfacher DCC Zubehördecoder mit Watchdog

Ein einfacher DCC Zubehördecoder mit Watchdog Version 1.3

Seit einiger Zeit ist der ATtiny2313 von Atmel auf dem Markt und der AT90S2313 ist nur noch über Restposten erhältlich. Der tiny2313 verfügt über einige zusätzliche Features wie z.B. integrierte Brown Out Detection und einen internen Oszillator mit bis zu 8MHz. Das hat den Vorteil, dass man nun einen DCC Zubehördecoder mit sehr wenigen externen Bauteilen realisieren kann. Hier nun mal ein Beispiel, das ich selbst aufgebaut und programmiert habe und mit meiner Lenz Digital Plus Steuerung erfolgreich getestet habe:

Die Schaltung verfügt über einen ATtiny2313 als Herzstück sowie optional einem ULN2803 als Schaltverstärker, einer Leuchtdiode, einem Jumper sowie einem Gleichrichter/Spannungsregler. Hier kann eine Externe Spannungsquelle angeschlossen werden, um den teuren Digitalstrom zu sparen. Insgesamt können 8 Ausgänge geschaltet werden. Den Schaltplan und das Board sind mit der Freeware - Version von Eagle erzeugt und können hier runtergeladen werden.

Das Programm in der momentanen Version 1.3 kann programmiert werden, indem man kurz den Jumper entfernt und wieder aufsteckt. Nun leuchtet die LED und beim nächsten Betätigen einer Weiche wird die entsprechende Adresse abgespeichert. Die Programmier-LED erlischt danach. Es gibt vier Modi, die folgendermassen programmiert werden:

Ein Weichenblock sind immer 4 Weichenadressen, also Weiche 1-4, Weiche 5-8, Weiche 9-12 usw. Zum Programmieren des gewünschten Modus geht man folgendermassen vor:

  • Modus 1 (Weichendecoder, 250ms Schaltzeit):
    Die erste Adresse des Weichenblocks am LH 100 eingeben und die Minustaste drücken. Damit werden die Ausgänge für ca. 250ms eingeschaltet, danach werden sie wieder automatisch ausgeschaltet.
     
  • Modus 2 (Weichendecoder, 500ms Schaltzeit):
    Die erste Adresse des Weichenblocks am LH 100 eingeben und die Plustaste drücken. Damit werden die Ausgänge für ca. 500ms eingeschaltet, danach werden sie wieder automatisch ausgeschaltet.
     
  • Modus 3 (8-Kanal Lauflicht):
    Die zweite Adresse des Weichenblocks am LH 100 eingeben und die Minustaste drücken. Damit ist ein Achtkanal-Lauflicht Modus gewählt. Nach dem Programmieren kann mit der ersten Adresse des programmierten Weichenblocks und der Plustaste das Lauflicht eingeschaltet werden, mit der Minustaste wird das Lauflicht ausgeschaltet. Gut geeignet z.B. für Baustellen etc.
     
  • Modus 4 (Signaldecoder für 2 begriffige Signale):
    Die zweite Adresse des Weichenblocks am LH 100 eingeben und die Plustaste drücken. Damit ist sind die Ausgänge dauerhaft eingeschaltet, wobei zusammengehörende Paare sich gegenseitig schalten. Wird z.B. Weiche 2 und Minus gedrückt geht Ausgang 2 an und Ausgang 3 aus. Gut geeignet für Signale. Werden einfache LED's damit geschatet kann man auf den ULN2803 verzichten und durch 220 Ohm Vorwiderstände ersetzen. Zudem wird nach ca. 6 Sekunden, nachdem das letzte Kommando an den Decoder gesendet wurde der Zustand der Ausgänge im EEProm gespeichert und nach dem nächsten Einschalten der Anlage wieder geladen.
     
  • Modus 5 (Watchdog und Weichendecoder): (neu in Version 1.3)
    Es kommt immer mal wieder vor, dass die Verbindung PC-Modellanlage aussetzt, unterbrochen wird oder sich aufhängt. Die Züge fahren dann einfach weiter, Weichen werden nicht mehr gestellt etc. Um dies zu verhindern kann man einen Watchdog verwenden, der alle paar Sekunden ein Lebenszeichen vom PC erwartet. Erfolgt das nicht wird ein Nothalt oder die Gleisspannung unterbrochen.

    Die dritte Adresse des Weichenblocks am LH 100 eingeben und die Minustaste drücken. Damit ist der Watchdog - Modus aktiviert. Die Ausgänge 3-8 arbeiten wie der normale Weichendokoder (Modus 1), die Ausgänge 1 und 2 sind für die Watchdog-Funktion vorbehalten.
    Nach dem Einschalten der Anlage ist der Watchdog (zu Deutsch: Wachhund) erst einmal in der Hütte und schläft ;-) In diesem Zustand ist Ausgang 1 ausgeschaltet und Ausgang 2 Eingeschaltet. Um den Watchdog zu aktivieren wählt man am LH100 die erste Weichenadresse des Blocks und drückt die Plustaste. Nun muss spätestens alle 5 Sekunden die erste Weichenadresse des Blocks und die Plustaste gedrückt werden, damit der Watchdog nicht "anspricht". Kommt das Signal nicht, dann geht Ausgang 1 auf Ein und Ausgang 2 auf Aus. Schliesst man ein Relais an Ausgang 1 an und implementiert den Nothalt - Taster ("Kurzschluss" zwischen Anschluss E und M an der Zentrale, siehe Lenz-Handbuch, Abb.3 für Details) der Lenzzentrale kann man so verhindern, dass die Züge weiterfahren, wenn die Verbindung zwischen PC und Zentrale unterbrochen wurde. Ausgang 2 kann verwendet werden, um z.B. per Relais die Versorgungsspannung zum Gleis zu unterbrechen. Das Relais ersetzt in dem Falle den Taster oder wird parallel zum Taster eingebaut.
    Damit man nicht selbst die ganze Zeit diesen Impuls von Hand auslösen muss wird die PC - Software so konfiguriert, das sie maximal alle 5 Sekunden ein "Lebenszeichen" von sich gibt, indem sie die erste Weichenadresse im Weichenblock anspricht (Plustaste). Einige Steuerungs-Software Produkte unterstützen eine Watchdogfunktion von Hause aus (z.B. WinDigital, Soft-Lok, Railware), andere tun das nicht (z.B. Railroad&Co.) - mit der Begründung, dass die Software so stabil ist und so eine Funktion nicht benötigt wird ;-\. Bei Railroad & Co. gibt es einen Workaround, indem man "blinkende Bahnwärter" verwendet. Um den Watchdog - Modus auszuschalten drückt man die Minustaste der ersten Weichenadresse im Weichenblock. Dabei geht dann Ausgang 1 wieder auf "Aus" und Ausgang 2 wieder auf "Ein".
    Der Watchdog kann natürlich nicht feststellen, ob eine Weiche falsch oder gar nicht gestellt wurde oder Waggons irgendwo liegenbleiben. Er dient lediglich dazu, die Verbindung PC - Modellbahnsteuerung zu überwachen.
    Das Relais muss so dimensioniert werden, dass es mit der Ausgangsspannung (Gleichstrom) klar kommt. Die kann irgendwo zwischen 5 Volt und der angelegten Versorgungspannung liegen - einfach nachmessen. Wird nicht die "Not-Taster Funktion" verwendet sondern die Gleisversorgung unterbrochen dann muss natürlich bedacht werden, dass relative grosse Strome von mehreren Ampere fliessen können, das Relais muss diese Schalten können!

Möglich sind Weichenadressen von 1-1020 (dies entspricht den Decoderadressen von 1-255, pro Decoderadresse sind also 4 Weichen zu schalten).
Beispiel: Soll z.B. der Decoder die Weichen 17-20 schalten mit einer Schaltzeit von 250ms dann muss man die Weiche 17 aufrufen und die Minustaste betätigen (Siehe auch die Beschreibung zum DCC - Beleuchtungsdecoder)

Damit das Ganze auch läuft müssen noch die entsprechenden Fuses des ATtiny2313 programmiert werden. Im Einzelnen ist das die Brown Out Detection bei 2,7V, den internen Oszillator auf 8MHz und den Prescaler ausschalten. Weitere Details dazu gibt es im Datenblatt bei Atmel. Mit dem von mir verwendeten Programmer sehen die Fuses so aus:

Vorsicht aber bei den Fuses - programmiert Ihr da falsch, dann kann es sein, dass der Chip nicht mehr ansprechbar ist.

Hier nun noch das Hex-File für die Version 1.3 dazu. Die Schaltung sowie das Programm dürfen nur für rein private, nicht kommerzielle Zwecke verwendet werden. Zuwiderhandlungen werden entsprechend verfolgt. Ich habe keine Lust, dass sich einer an meiner in der Freizeit entwickelten Arbeit eine goldene Nase verdient - scheinbar ist das bei anderen im Internet publizierten Decodern schon vorgekommen.

Und nun noch viel Spass beim Basteln - und wie üblich - keine Gewährleistung auf Funktionalität und natürlich macht Ihr das alles auf eigene Gefahr. Für Fehler oder fehlerhaften Aufbau und daraus eventuell entstehende Schäden kann ich ebenfalls nichts.

Datenschutz


Zuletzt geändert: