Benutzer-Werkzeuge


weiteres:modellbahn:digital

Digital-Hardware

Hardware-Konfiguration

Ich fange gerade an, mich etwas mit der digitalen Steuerung der Modellbahn zu beschäftigen. Ich habe einige alte Loks mit einem Digitaldekoder ausgestattet, um erstmal einen Anfang zu machen. Das Bild zeigt meinen derzeitigen Aufbau.

Dargestellte Komponenten sind

LocoNet® is a Trademark of Digitrax Inc., 2443 Transmitter Rd, Panama City, FL, 32404-3157, USA
Digtrax LocoNet Page


DCC-Hardware

Programmer

Mein erstes Projekt war dann ein Lok-Programmer DECPROG mit einem seriellen Anschluss. Ich habe diesen auf einer Universalplatine aufgebaut. Als Programmiersoftware kommt Prolok von Thomas Borrmann zum Einsatz. Dieses ist zwar schon etwas betagt, funktioniert aber auch unter Windows10. Mit Kenntnis der Dekoder-Variablen kann das Programm auch erweitert werden.

Command Station

Als Command Station wird SPROG3 eingesetzt. Diese ist über USB an den PC angeschlossen und erscheint als serielles Gerät im Gerätemaneger von Windows. Die Railsync-Signale werden an die Schiene geführt, oder an einen Booster, der mit der Schiene verbunden ist. Weiteres hierzu auch unter RSCLD.

In einer Steuersoftware, wie RocRail, kann diese dann zugefügt werden und z.B. mit dem Demoprogramm und dem Bildschirm-Throttle getestet werden.


Booster

Für den Anfang wäre es sicher nicht notwendig, einen Booster zu bauen, da ja die Commandstation 3A Fahrstrom liefert, aber ich wollte das System komplett aufbauen, um nicht später auf Systemschwierigkeiten zu treffen. Ich habe mit dafür den SpaXbooster des FremoDCC ausgesucht. Die Software ist hier zu finden. Da die Leiterplatten-CAD-Daten frei verfügbar waren (nicht die Produktionsdaten), habe ich diese in das freie CAD-System DesignSpark übertragen incl. des 100nF-Kondensators (Lok-Sound-Problem), für den auch ein Keramik-Typ ausreichen sollte. Ich musste statt des 100nF-Kondensators einen 220nF-Typ einsetzen, da das Signal zur Kurzschlusserkennung Störspitzen aufwies und nicht richtig funktionierte.

Anstelle des PIC16F628 nutze ich den PIC16F628A und den internen 4MHz-Oszillator, was den Schwinger spart. Dies muss aber über die Fuses (Config-bits) beim Programmieren eingestellt werden. Da das Programm kurz ist, reicht auch ein PIC16F627(A).

Schaltplan
Bestückungsplan
Leiterplatte bei QSH Park
Bestellmöglichkeit der Leiterplatte für Selbstbau bei Aisler
Eine kommerzielle Nutzung ist untersagt.


Weichen-Dekoder

Als Weichendekoder habe ich derzeit die DCC-Hardware von digital-bahn.de, den Servo-Dekoder SAnD-Ei aufgebaut. An diesen habe ich einen kleinen Servo mit selbst gebautem Weichenantrieb angeschlossen. Die Versorgung erfolgt aus der Fahrstromversorgung, die an der Schiene anliegt.


LocoNet-Hardware

LocoBuffer

Damit Fahrregler und andere Bausteine über LocoNet mit einem PC als Zentrale kommunizieren können, wird eine Schnittstelle benötigt, welche die Signale von und zum PC zwischenspeichert und die Kommunikation mit dem LocoNet realisiert. Der erste Entwurf des LocoBuffer stammt von John Jabour. Dieser hatte keine galvanische Trennung und wird über die RS232-Schnittstelle angeschlossen. Auf dieser Idee basieren viele DIY-Projekte und auch kommerziell hergestellte Produkte.

HDM09USB

Mein erster LocoBuffer war ein Bausatz von H. Deloof, der HDM09USB. Vor dem Anschließen muss der Microchip-Treiber installiert werden, da HDM09USB einen PIC als USB-Seriell-Adapter verwendet. Nach dem Anschließen am PC erscheint das Gerät als USB-Seriell-Port im Gerätemanager und über die Nummer der COM-Schnittstelle können Daten von der PC-Software ans LocoNet gesendet bzw. vom LocoNet empfangen werden. Der LocoBuffer hat auch als Option die 15mA-LocoNet-Stromquelle, auch LocoNet-Pullup genannt. Diese ist aktiviert, da keine LocoNet-Zentrale verwendet wird.

Bei der Inbetriebnahme gab es jedoch Kommunikations-Probleme. Die Software meldete einen Fehler. Die Rückfrage beim Hersteller lieferte die Erklärung. Eine Eigenart des Microchiptreibers ist wohl, dass das Handshake im USB-Treiber realisiert ist und nicht die RTS-CTS-Signalisierung der virtuellen COM-Schnittstelle nutzt. Handshake muss also im Treiber und in der Software ausgeschaltet sein.

LocoBuffer-II + USB

Da der HDMUSB09 keine galvanische Trennung vorsieht, habe ich mich auch nach anderen Lösungen umgesehen. Dabei bin ich auf den LocoBuffer-II von RR-CirKits gestoßen, wo auch Schaltung und HEX-Code für den PIC veröffentlicht sind. Der hier gezeigte LocoBuffer basiert auf dort gezeigten Schaltungen und einem USB-Seriell-Wandler auf einem Carrier-Board von Pololu. Damit sind keine SMD-Bauteile eingesetzt und die Bestückung ist einfach. Das ganze passt dann auch in das gleiche Gehäuse wie beim Fahrregler FREDI. Der µC-Teil des LocoBuffer wird aus der USB-Schnittstelle versorgt, der LocoNet-Teil aus dem RailSync-Signal. Die 15mA-LocoNet-Stromquelle (Pull Up) ist über eine Steckbrücke aktivierbar. Über LEDs werden Spannungsversorgung USB und RailSync sowie die LocoNet-Aktivität angezeigt. Für die RailSync-Spannungsversorgung gilt das gleiche wie beim Fahrregler, es ist das Pseudo-GND wie beim RSCLD notwendig. Auch bei Rocrail ist ein Version eines LocoBuffers beschrieben, der GCA85.

Schaltplan
Bestückungsplan
Stückliste
Firmware rr-cirkits LocoBuffer-II
Firmware rocrail GCA85 entspricht LB163.hex
Bestellmöglichkeit der Leiterplatte für Eigenbau bei Aisler
Eine kommerzielle Nutzung ist untersagt.

Der LocoBuffer wird mit JP1 auf 57600 Baud eingestellt JP2 und JP3 bleiben offen. Im System wird für die COM-Schnittstelle auch diese Baud-Rate festgelegt und Hardware-Handshake eingeschaltet. Diese Einstellungen sind dann auch in der Software-Zentrale z.B. Rocrail einzustellen.

Um die Betriebsfähigkeit auch bei geringer Eingangangsspannung zu gewährleisten, wurde anstelle des 78L05 ein LDO LP 2950 ACZ5,0 eingesetzt. Dieser hat außerden einen deutlich geringeren Ruhestrom.

Ich habe Spaß am Selberbauen, bei RR-CirKits gibt es auch einen LocuBuffer-USB zu kaufen.


LN-Shield-ISO

Für Experimente mit dem Arduino und den von MRRWA veröffentlichten Bibliotheken und Beispiel-Sketchen habe ich den LocoNet-Teil der Schaltung des oben beschriebenen LocoBuffer-II+USB auf eine Arduino-Shield-Platine gebracht. Die Versorgung der LocoNet-Seite erfolgt aus dem RailSync. Die 15mA-LocoNet-Stromquelle (Pull Up) ist über eine Steckbrücke aktivierbar. Die Signalführung zum Arduino ist wie beim Fremo-LN-Shield ausgeführt, so dass für Tx das Signal D6 oder D7 verwendet werden kann. Eine weitere LED kann optional für weitere Signalisierungen genutzt werden, diese ist aktuell nicht bestückt. Ich habe die erste Platine ohne die Stacking Header aufgebaut, da erste Tests als LocoBuffer gedacht sind. Dafür habe ich den Beispiel-Sketch LocoLinx geladen.

Die serielle Schnittstelle wird auf 57600 Baud eingestellt und das Handshake muss ausgeschaltet werden, da der Arduino dies nicht unterstützt. Diese Einstellungen erfolgen im System und auch in der Steuer-Software.

Schaltplan
Bestückungsplan
Stückliste
Bestellmöglichkeit der Leiterplatte für Eigenbau bei Aisler
Eine kommerzielle Nutzung ist untersagt.

Um die Betriebsfähigkeit auch bei geringer Eingangangsspannung zu gewährleisten, wurde anstelle des 78L05 ein LDO LP 2950 ACZ5,0 eingesetzt. Dieser hat außerdem einen deutlich geringeren Ruhestrom. Als Gleichrichter-Diode kann anstelle der 1N4148 eine Schottky-Diode verwendet werden, z.B. BAT46. Bei den LEDs sollten Typen verwendet werden, die mit dem Vorwiderstand 2,2kOhm bei 5V noch ausreichend Intensität haben. Bei der in der Stückliste angegebenen grünen LED reichen für die statische Anzeige des 5V-Reglers bereits 15k als Vorwiderstand aus, um eine ausreichende Intensität zu erzeugen. Für die LocoNet-Impulsanzeige wurden die 2,2k wie im Schaltplan verwendet.


RJ12-Verteiler

Ich habe einen RJ12-Verteiler gebaut, der optional auch die zwei Dioden für das Pseudo-GND (siehe RSCLD) und einen Widerstand wie hier enthält. Das Pseudo-GND kann über eine Steckbrücke zugeschaltet werden. Den dort enthaltenen Widerstand habe ich derzeit nicht bestückt. Ein bestückter Widerstand kann bei Bedarf mit einem Jumper überbrückt werden. Das Pseudo-GND darf nur einmal in einem RailSync-Versorgungsabschnitt vorhanden sein.
Die Schaltung passt in das FREDI-Gehäuse.

Schaltplan
Bestückungsplan
Bestellmöglichkeit der Leiterplatte für Eigenbau bei Aisler
Eine kommerzielle Nutzung ist untersagt.


Fahrregler

Auf den Seiten des FremoDCC sind viele Informationen des FREMO-Fahrreglers FREDI von Olaf Funke zu finden. Die Version, die ich gebaut habe, ist Version 1.8. Hierfür waren Leiterplattendaten verfügbar. Aufgrund eines geschilderten Problems mit der Versorgungsspannung habe ich mir die CAD-Daten angesehen und festgestellt, dass die Leiterbahnführung der Masse und auch die Position des Kondensators C1 nicht optimal sind, was eine mögliche Ursache für Probleme bei der Versorgungsspannung sein könnte. Ich habe unter Beibehaltung der Bauteile die Leiterbahnen der Masse angepasst. Außerdem habe ich bei meiner Bestückung einen anderen LDO (LP 2950 ACZ3,3) eingesetzt, der nach Datenblatt kein Problem mit niedrigem ESR hat und so die vorhandenen Kondensatoren nutzen kann. Im TO-92-Gehäuse kann man die drei Beine entsprechend biegen, so dass er auf die Pads gelötet werden kann. Ich habe diese Lösung bevorzugt, zumal ich nur die inkrementale Version aufgebaut habe, die das beschriebene Problem nicht hat. Als Kurzhubtaster wurde TASTER 3301B von Reichelt mit schwarzem Stößel eingesetzt, der Tasterkopf wurde dann eingefärbt. Anders als auf der Abbildung wurde später als Drehgeber der STEC11B03 eingesetzt, die geschlitzte 6mm-Achse wurde gekürzt. Für die LEDs wurden Typen mit hoher Lichtleistung (ca. 1000mcd) verwendet, so dass die Widerstände von 470R auf 2,2k geändert wurden.

Bei der Inbetriebnahme am LocoNet musste ich etwas länger nach der Fehlerursache suchen. Es fehlte das Pseudo-GND. Weiteres siehe bei RSCLD. Als dies geschafft war, konnte dann die Inbetriebnahme wie in der Bauanleitung beschrieben, erfolgen.

Die FREDI Schaltung und das Layout von Olaf Funke und anderen steht unter einer Creative Commons Namensnennung-Nicht-kommerziell-Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.
The FREDI Schematic and Board by Olaf Funke and others is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Weitere Quellen beim FremoDCC:
Schaltplan und Stückliste entsprechend Version 1.8C
Bauanleitung
Mini-Bedienungsanleitung
FCalib2 - Programmierung und Firmware

Layoutvariante für Schaltplan 1.8C
Bestückungsplan meines Layouts
Bestellmöglichkeit der Leiterplatte für Eigenbau bei Aisler
Eine kommerzielle Nutzung ist untersagt.

Neue Version mit SMD-Controller
Da auf der aktuellen Leiterplatte bereits SMD-Bauteile verwendet werden, habe ich für den Aufbau weiterer FREDIs eine Leiterplatte mit dem SMD-Typ des ATMega328 erstellt. Statt eines Quarzes wird ein Resonator gleicher Frequenz eingesetzt, die Größe der SMD-Bauteile wurde von 0805 auf 0603 geändert. Dies ist mit den mir vorhandenen Mitteln noch gut manuell lötbar. Wegen der geschilderten Schwingneigung des LM2936 bei zu niedrigem ESR habe ich einen anderen SMD-LDO eingesetzt.
Die hier vorgestellte Version der Leiterplatte hat als 3,3V-Regler den LP2951-33D im Design, der für niedriges ESR geeignet ist. Es kann auch der dreipinnige LP 2950 ACZ3,3 auf die Pads gelötet werden, wie bereits bei der oben dargestellten 1.8C-Variante. Ein nicht mit Lötstopplack abgedeckter Teil eines Leiterzuges dient als Pad für dessen mittleres GND-Pin. Ich habe die inkrementale und die analoge Version aufgebaut.

Schaltplan
Bestückungsplan
Stückliste
Bestellmöglichkeit der Leiterplatte für Eigenbau bei Aisler
Eine kommerzielle Nutzung ist untersagt.


LocoIO-Keypad

Für die Weichensteuerung will ich LocoIO verwenden. Dieser entstammt auch einer Idee von John Jabour und wird von Rocrail unterstützt. Es gibt davon mehrere Nachbauten, u.a. den bei Rocrail vorgestellten GCA50. Ein handliches Gerät für den Einstieg stellt der GCA123 dar, der 16 Tasten bietet.

Ich habe die Schaltung etwas modifiziert. Als Pullup für die Taster wurden Widerstandsnetzwerke eingesetzt. Die Bestückung wurde so geändet, dass Komparator und Schalttransistor, die der LocoNet-Ansteuerung dienen, in die Nähe des Steckverbinders gebracht wurden. Die Reihenfolge der Taster S09…S16 wurde gedreht, so dass es zur Programmiermaske passt. Gegenüber von S01 ist jetzt S09, S09 bedient jetzt Port 9 usw.. Mit diesen Änderungen wurde das Keypad aufgebaut. Die Leiterplatte kann vor der Bestückung als Bohrschablone für Taster und LEDs genutzt werden.

Die Leiterplatte passt in das FREDI-Gehäuse. Die Versorgung erfolgt aus dem RailSync-Signal. Anstelle des 78L05 kann auch der LP 2950 ACZ5,0 getestet werden. Dieser ist ein LDO mit deutlich geringerem Ruhestrom.

Schaltplan
Bestückungsplan
Stückliste
Bestellmöglichkeit der Leiterplatte für Eigenbau bei Aisler
Eine kommerzielle Nutzung ist untersagt.
Firmware bei Rocrail or LocoIO


Sonstiges

RSCLD

Nachdem ich die Command Station und den SpaXbooster getestet hatte, war jetzt das LocoNet an der Reihe. Als erstes nahm ich den LocoBuffer in Betrieb. Hinweise hierzu unter dem Abschnitt dazu. Beim FREDI gab es Probleme. Mit normaler Spannungseinspeisung fing das Gerät erstmal an zu arbeiten. Am LocoNet jedoch nicht. Der FREDI nutzt als Spannungsversorgung das RailSync, das am LocoNet-Stecker an den Kontakten 1 und 6 anliegt. An den Kontakten 2 und 5 liegt GND. Der FREDI hat zwar zwei Dioden als Gleichrichter. Aber wenn man die Schaltung weiter verfolgt, gibt es keine Beziehung zum GND.

Hier ist jetzt eine einfache Schaltung notwendig, die beim FremoDCC im RailSync-Current-Limiter-Device (RSCLD) RSCLD Urversion verborgen ist. Dort sind zwei weitere Dioden eingesetzt, die zusammen mit den beiden Dioden im FREDI eine Greatz-Schaltung ergeben. Im Fredi entsteht also das Plus-Potential aus der Gleichrichtung und im RSCLD das Minus-Potential, welches mit dem LocoNet-GND (RJ11 6-6, Pin2 und Pin5) verbunden wird, sodass eine Versorgung von LocoNet-Geräten aus dem RailSync möglich wird. Einen Hinweis zu diesem Zweck habe ich jedoch auf keiner Seite gefunden. Etwas ähnliches jedoch hier. Desweiteren sind im RSCLD Widerstände zur Strombegrenzung eingesetzt. Zum Testen habe ich diese erstmal weggelassen und speise das DCC-Signal der SPROG3 Command Station als RailSync in den LocoNet-Steckverbinder (RJ11 6-6, Pin1 und Pin6) direkt ein.


weiteres/modellbahn/digital.txt · Zuletzt geändert: 2022/11/21 20:55 von miho