Modellbahn Servodecoder für Weichen mit Rückmeldung

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Von: Micha68

Platine3.png


Einleitung

Hier beschreibe ich meine Version des DCC-Servodecoders "OpenDecoder2" von Wolfgang Kufer (http://www.opendcc.de)

Funktionsübersicht:

  • Spannungsversorgung über ein externes 5V-Netzteil, Durchschliff für weitere Verbraucher (ACHTUNG! Polarität beachten!)
    • (Ich betreibe meine Modellbahn mit 2 zentralen Schaltnetzteilen. Daher haben meine Platinen keinen eigenen Spannungsregler.)
  • Spannungsversorgung der Servos schaltbar, dH das Servo wird nur während des Umlaufs mit 5V versorgt. (Diese Option ist im Default eingeschaltet)
  • Relais für Herzstückpolarisation. Während des Umlaufs ist das Herzstück Spannungsfrei.
  • Rückmeldung der Weichenlagen über vier s88-Melder (im Default über Kontakte der Herzstück-Relais, kann aber auch über externe Schalter signalisiert werden)
  • Belegtmeldung über vier s88-Melder (2 für die Weichen, 2 freie DCC-Blöcke)
  • 4 freie Ausgänge über Treiber (ULN2803, 5V, einzeln schaltbar, für Lampen, Leds, Relais etc.)
  • 8 freie Ausgänge ohne Treiber (5V und 1,5kOhm Vorwiderstand - für LEDs, paarweise schaltbar für zB Signale)
  • Weichen-Rückmeldung über openDCC-Ringleitung (Option, ungetestet)
  • schwarze Platine, zweiseitig, 10cm x 10cm, keine SMD´s

Software

  • Attiny2313 für s88-Melder. Die Software entspricht ohne Änderung der Software der s88-Tastatur von opendcc.de
  • Atmega8515 für Decoder. Hier sind einige Änderungen durchgeführt worden. (Beschreibung folgt)
  • Von der Standardbelegung abweichende CV´s:

Mit diesen Einstellungen betreibe ich meine Robbe FS100-Servos. Um den Servoweg zu testen, am besten mal das Servo ohne mechanische Verbindung zur Weiche laufen lassen. Die jeweiligen Endpunkte lassen sich ja über die Adressen 3 und 4 justieren. Da ich mit meinen Erweiterungen an die Speichergrenze des Atmega kam, habe ich einige vordefinierte Servokurven löschen müssen (Flügelsignale). Also am besten nur mit Kurve 7 bzw. 8 laufen lassen.

Liste CVs: Download

Einbindung in Modellbahnsoftware am Beispiel von RocRail

Die Weichen liegen auf der Decoderadresse, die Ausgänge 9-16 auf der Decoder-Adresse+1 und die Ausgänge 5-8 liegen auf der Decoder-Adresse+2 ! Die erste Adresse wird gesetzt, indem man den Prog-Taster drückt und die Weiche 1 schaltet.

Adresse Ausgang Funktion1 Bemerkungen 1
x 1 Rot Weiche 1 gerade Sollte durch die Einbausituation des Servos die Richtung nicht stimmen, müssen über den Abgleich die passenden Positionen eingegeben werden.
x 1 Grün Weiche 1 abbiegen
x 2 Rot Weiche 2 gerade
x 2 Grün Weiche 2 abbiegen
x 3 Rot Servoabgleich minus Mit dem Abgleich kann die zuletzt angefahrene Weiche eingestellt und die neue Position abgespeichert werden.
x 3 Grün Servoabgleich plus
x 4 Rot Servoabgleich speichern
x 4 Grün
x+1 1 Rot Ausgang 9 EIN, Ausgang 10 AUS Anwendung: Signale, zB Blocksignale, Weichensignale etc. Es wird immer paarweise geschaltet.
x+1 1 Grün Ausgang 9 AUS, Ausgang 10 EIN
x+1 2 Rot Ausgang 11 EIN, Ausgang 12 AUS
x+1 2 Grün Ausgang 11 AUS, Ausgang 12 EIN
x+1 3 Rot Ausgang 13 EIN, Ausgang 14 AUS
x+1 3 Grün Ausgang 13 AUS, Ausgang 14 EIN
x+1 4 Rot Ausgang 15 EIN, Ausgang 16 AUS
x+1 4 Grün Ausgang 15 AUS, Ausgang 16 EIN
x+2 1 Rot Ausgang 5 EIN Anwendung: Beleuchtung, Relais zB Kehrschleife
x+2 1 Grün Ausgang 5 AUS
x+2 2 Rot Ausgang 6 EIN
x+2 2 Grün Ausgang 6 AUS
x+2 3 Rot Ausgang 7 EIN
x+2 3 Grün Ausgang 7 AUS
x+2 4 Rot Ausgang 8 EIN
x+2 4 Grün Ausgang 8 AUS
Port 9-16
Port 5-8

s88-Melder:

Melder Funktion
1 Endlage Weiche 1 gerade
2 Endlage Weiche 1 abbiegen
3 Endlage Weiche 2 gerade
4 Endlage Weiche 2 abbiegen
5 Belegtmeldung Block 4
6 Belegtmeldung Block 3
7 Belegtmeldung Block Weiche 2
8 Belegtmeldung Block Weiche 1

Hardware

Zur Inbetriebnahme die DCC-Versorgung der Weichen nicht anschliessen (3-polige Stecker) und die Servos nicht mechanisch mit den Weichen verbinden. Zunächst mal mit der Modellbahn-Software die Weichen schalten und die richtige Polarität am Kontakt für das Herzstück prüfen. Evtl. muss man in der Software die Weiche Umkehren (so heisst die Option in Rocrail), das Servo umdrehen oder per Abgleich die Endpositionen ändern. Auch die Lagemelder können so zunächst überprüft werden. Erst wenn alles stimmt, die Weiche mit DCC versorgen (sonst kurzschlussgefahr!).

Bestückungsvarianten

  • schaltbare Servoversorgung

Um die Servos nur während des Umlaufs mit Spannung zu versorgen, müssen zusätzlich zu den Bauteilen Q5, Q6, R5 und R6 noch zwei Jumper gesetzt werden. (Foto 1) Die CV´s sind schon entsprechend gesetzt. Q5 und Q6 brauchen keine Kühlung. Achtung! Die Kühlfäche ist der Kollektor und somit Spannungsführend!

Wird diese Funktion nicht benötigt, können die Bauteile Q5, Q6, R5, R6 weggelassen werden und die eingerahmten Pins unter Q5 und Q6 müssen gebrückt werden. (Foto 2)

Foto 1
Foto 2

  • eigene Rückmelder

Um eigene Rückmelder für die Weichenlage zu nutzen, sind 4 Leiterbahnen zu durchtrennen. (siehe Foto 1 und 2, klicken zum vergrössern, markierte Leiterbahnen)

Die eigenen Melder müssen dann die Kontakte RM1-4 mit GND verbinden. (ACHTUNG! Nur diese blau markierten GND-Pins nutzen! s88-Ground!)

Foto 1
Foto 2

Bestückung

folgende Bestückungsreihenfolge hat sich bewährt:

  • Widerstände (klassiche Bauform, Kohleschicht 5%, alle liegend) und die 1N4148
  • IC-Sockel und Taster
  • Kondensatoren (RM2.5 oder RM5, wenn die jemand in schwarz findet, bitte melden :) )
  • Stecker (DCC-Seite oben) und Pinleisten (wo nötig)
  • Dioden (stehend)
  • LEDs
  • Transistoren (die kleinen)
  • Stecker (s88)
  • Elkos
  • Relais
  • Leistungstransistoren

Die plus-Seite der LEDs auf der linken Seite (5V und s88) liegt unten. Bei der Decoder-LED (rechts unten) ist die plus-Seite oben. Das Bauteil D101 (Eingang 5V) habe ich ersetzt durch eine Polyfuse. Ob die Spannung für die Schaltung reicht, wenn eine 1N5400 als Schutzdiode eingebaut ist, muss ich noch testen. Wer weiss was er tut, kann die Pads oben auch brücken :)

Bilder

Top-Layer
Bottom-Layer
Bauteile
Kicad 3D-Ansicht
Scan Platine
Scan Platine
Platine
Anschluss
Ansicht
Steckerbelegung

Downloads

Sollen die KiCad-Dateien als Grundlage für eigene Entwicklungen dienen, dann am besten per Mail die aktuelle Version anfordern! Ich korrigiere immer noch diverse Kleinigkeiten, die mir beim testen auffallen.

Stand der Dinge

Der Decoder ist bei mir im Einsatz. Bei Interesse: Es gibt noch Platinen

Bekannte Fehler

  • 6N136 in KiCad falsch definiert, Pin 5 auch als 4 deklariert, daher keine Masse an Pin5. -> Auf der Lötseite eine Brücke von Pin4 nach Pin5 löten. (In den aktuellen Dateien behoben)
6n136
  • Stecker für s88 zu eng beieinander. -> Plastiksteg am Steckergehäuse entfernen. (In den aktuellen Dateien behoben)
s88
  • Padreste an den LEDs auf der Unterseite zu gering. ->Sehr sorgfältig löten, evtl. auch von oben (In den aktuellen Dateien behoben)
LED
  • ISP-Stecker zu nahe am Jumper. ->zum Programmieren Jumper ziehen (In den aktuellen Dateien behoben)
ISP
  • Diverse Korrekturen der Platinenbeschriftung (zu klein etc) (In den aktuellen Dateien behoben)
  • Befestigungslöcher vergessen
  • BC547C getauscht in BC547A. Die Empfindlichkeit war zu hoch. Dadurch gab es bei langen DCC-Kabel falsche Belegtmeldungen