Nachbau der OpenDCC Zentrale

Beschreibung

Die Zentrale ist das Herzstück jeder digital gesteuerten Modellbahnanlage. Solche Zentralen gibt es eigentlich schon jede Menge. Nur haben die Hersteller des Modellbahnzubehörs entweder beachtliche Preisvorstellungen oder diese sind so abgespeckt, das man nur wenige Züge fahren kann, das Rückmeldesystem eingespart wurde oder keine PC-Schnittstelle haben bzw. von den grossen Modellbahnsteuerungen nicht unterstützt werden.
Die OpenDCC-Zentrale versucht soweit wie möglich das Beste aus den bisher bekannten Konzepten verschiedener Hersteller in einer günstigen Eigenkonstruktion zu vereinen. Neben der standardisierten Erzeugung des DCC-Signals incl. Railcom©-CutOut für das Haupt- und Programmiergleis wird über eine USB-Schnittstelle das Protokoll der weit verbreiteten Intellibox für die problemlose Kommunikation mit der vorhandenen Modellbahn-Software eingesetzt.
Die OpenDCC-Zentrale ist primär für die Steuerung durch Software ausgelegt und beinhaltet deshalb keine eigenen Bedienelemente außer Start/Stop-Tastern. Aufgebaut ist das Ganze auf einer bei Rail&Road erhältlichen doppelseitigen und durchkontaktierten Leiterplatte in herkömmlicher Bestückung mit nur vereinzelten SMD-Bauelemten und einem ATMega32bzw. mit Xpressnetadapter einem ATMega644P in DIL-Ausführung. Als Leistungstreiber wird ein 2kanaliger L6202 in DIL-Bauform verwendet. Allerdings ist dieser mangels Kühlung nicht dafür ausgelegt, viel Leistung zu liefern, so dass es besser ist, die Leistung extern zu erzeugen, z.B. mit dem ebenfalls hier beschriebenen Booster2
Über kleine Zusatzplatinen werden der S88-Rückmeldebus mit 3 Ports wie beim LDT HSI88, wahlweise nach alter oder der neuen S88-N-Norm sowie ein Adapter für den Anschluss von Lenz XPressnet-Geräten wie den beliebten Lokmäusen bereitgestellt. Und das alles in einem Gerät.!
An Materialkosten muss man für die Platinen 25,60Eur incl. S88 +10Eur Xpressnet Zusatzplatine (Preise 2009), Bauelemente noch einmal 30-40Eur incl. Gehäuse rechnen, plus ein externes geregeltes Netzteil (z.B. "Eco-Steckerschaltnetzteil MW 3H36GS", Pollin Art.Nr.350 047, 36W max 2,4A bei 15V) für ca. 15Eur, so dass von für unter 100Euro zu einer kompletten DCC-Zentrale kommt.

Nachbau

Grundlage für den Nachbau sollte die detailreiche originale Aufbauanleitung sein. Ich beschreibe hier meine persönlichen Erfahrungen.

Vorbereitungen

Den Nachbau eines so komplexen Projektes muss man etwas strukturiert angehen. Zunächst muss man für sich festlegen, welche der vielen Optionen man bestücken will.
Ich habe mich für S88 (Standard, ohne Raildata), USB (statt RS232), Xpressnet, aber gegen den Ponyprog-Adapter entschieden. Nun geht es zunächst darum, aus der Stückliste die nicht benötigten Bauelemente herauszurechnen und zu bestellen. Als Vorlage kann man durchaus einen der angebotenen Warenkörbe benutzen, muss aber unbedingt alle Positionen noch einmal checken und ggfls ergänzen bzw. woanders bestellen. Den Leistungstreiber L6202 und den 5V-Regler als Schaltregler gibt es schwer im Einzelhandel, aber man kann diese zur Not auch direkt von Wolfgang Kufer bekommen. Für den 74AC244 kann man auch die 74HC-Version nehmen.

Wenn dann alles da ist, geht ersteinmal das grosse Sortieren los. Ich bestelle meistens (sowiet vertretbar) immer etwas mehr als benötigt von jedem Bauteil, so dass ich bei einem Problem immer noch Reserve habe und nicht wegen einem fehlenden Widerstand wieder extra neu bestellen muss. Deshalb sortiere ich jetzt zunächst die wirklich benötigten Bauelemnte zusammen in eine Tüte, ähnlich wie bei den kommerziellen Bausätzen. Anschliessend empfielt es sich, den Bestückungsplan in doppelter Größe auszudrucken und dort im Vergleich mit der Stückliste die nicht benötigten Bauelemente zu markieren(aus-X-en)und die Markierungen anschliessend auf die Leiterplatte übertragen, damit man beim Bestücken wirklich nur die richtigen Positionen einlötet. Dabei sollte man sich genug Zeit nehmen und alles nocheinmal gründlich prüfen.

Hauptplatine

Nach diesen (zeitraubenden) Vorbereitungen ist man nun gut gerüstet, um mit der Bestückung beginnen zu können.
Als erstes müssen die Teilplatinen(Front- und S88-Platine) von der gelieferten Hauptplatine z.B. mit einem scharfen Seitenschneider getrennt und entgratet werden. Dann kann man mit der Bestückung der Hauptplatine beginnen.
Der FTDI-Baustein wird als aller erstes gelötet, da er durch die engen Pinabstände etwas knifflig zu handhaben ist und man Platz für den Lötkolben braucht. Es wird das gleiche Verfahren wie beim Prozessor des OpenDekoder2 angewendet, d.h. erst sauber positionieren und fixieren, dann die diagonalen Aussenpins löten und die Lage ggfls. korigieren, jetzt an alle Pins Lötzinn geben und zum Schluss mit der Entlötsauglitze das überschüssige Lötzinn stressfre entfernen. Abschliessend die Gegenlichtkontrolle auf ungewollte Lötbrücken.
Nun kann man wie gewohnt vorgehen, erst SMD außer der USB-Buchse, dann die niedrigen Bauelemente, jetzt die SMD USB-Buchese, dann die hohen Bauelemente, und die Anschlussklemmen ordentlich mit Lötzinn versehen. Im Gegensatz zur Beschreibung habe ich auch den Leistungs-IC gesockelt und die Kühlfahnen nicht eingebaut, da ich den Ausgang lediglich zum Programmieren bzw zur Ansteuerung der Booster einsetzen werde. Bei Bedarf kann ich immer noch einen, wegen der hohen Shunts längshalbierten, handelsüblichen IC-Kühlkörper aufkleben.
Der 5V-Schaltregler benötigt auch etwas mehr Aufmerksamkeit. Hier muss durch das Lötloch hindurch gelötet werden. Das ist zwar etwas ungewöhnlich, funktioniert aber ganz gut. Als besonderheit muss bei diesem Bauelement der Lötkolben etwas länger in die Lötstelle gehalten werden, damit es keine kalte Lötstelle an den Anschlussbällen gibt. Siehe Problemlösungen.
Die ISP-Header und Stiftleisten, welche später die Verbindung zur XPressnet-Platine herstellen, bestücke ich mit den etwas höheren 17mm-Stiftleisten. Daduchr wird die Xpressnet-Platine allerding 5mm tiefer als im Bauplan positioniert Die Frontplatine wird in diesem Stadium ebenfalls noch nicht betrachtet.
Die LED-Einbauplätze auf der Hauptplatine bestücke ich mit Resten einer IC-Fassung, um dort bei der Inbetriebnahme auch ohne Frontplatte LEDs stecken(und wieder entfernen) zu können. Hat man die Hauptplatine fertig, kann man nach einer Endkontrolle die ICs seitenrichtig auf den Sockeln bestücken.

Als nächster Schritt kann man an die Eingangsbuchse eine Gleichspannung von 15V aus einem Labornetzteil mit Strombegrenzung angelegt. Dabei sollten weniger als 250mA verbraucht werden.
Als nächster Schritt kommt die Kontrolle der Spannungen. Insbesondere die 5V Spannung sollte an den ICs kontrolliert werden. Bei meiner Erstinbetriebnahme fehlte diese Spannung, was seinen Grund in dem unzureichend gelöteten Spannungsregler hatte. Das Lötzinn kam zwar an die Anschluss-Kugeln, war aber keine Verbindung mit diesen eingegangen. letztendlich liess sich der Spannungsregler sogar von Hand wieder von der Platine lösen... Erst ein beherztes Nachlöten mit dem Lötkolben bis zum Anschlag im Lötloch für einige Sekunden löste das Problem zuverlässig.

Wenn die oben beschriebenen Vorgänge erfolgreich waren, kann man alle Verbindungen trennen und sich mit den Zusatzplatinen beschäftigen.

Zusatzplatinen

Die Xpressnet-Platine ist relativ einfach zu bestücken. Hier sind insbesondere die Buchsenleisten zum Aufstecken auf die Hauptplatine bemerkenswert. Diese werden als allerletztes auf die Lötseite bestückt und zeigen damit nach unten, werden aber zunächst nur mit einem Pin relativ locker auf die Platine "gehaucht", damit sich deren Lage noch korrigieren läßt. Ich habe die etwas höheren trennbaren Buchsenleisten verwendet.
Um die Buchsenleisten endgültig festlöten zu können, empfielt es sich das im fertig montierten Zustand zu tun, damit evtl. toleranzen noch ausgeglichen werden können. Dazu habe ich die Platine mit den lockeren Buchsenleisten aufgesteckt und hinten mit einem 15mm (statt 20mm, wegen der kürzeren Stiftleisten) hohen Distanzbolzen in der dafür vorgesehenen Bohrung befestigt. Jetzt müssen noch die Leiterplattenabstände so korrigiert werden, das die Platinen parallel sind, die Buchsenleisten noch ordentlich Kontakt zu den Stiftleisten auf der Hauptplatine haben und man auf der Xpressnetplatine noch genug Lötpin zum festlöten hat.
Wenn das alles passt:festlöten!
Als letztes muss noch das Stromversorgungskabel zur Xpressnet-Platine gebaut werden. Ich habe dazu ein altes Motherboardkabel verwendet, welches ich mit einer Seite der Hauptplatine anstelle der alternativen Schraubklemme für den Netzteilanschluss festgelötet habe.

An dieser Stelle habe einen Zwischentest der Xpressnet-Schnittstelle angelegt. Die Platine war aufgesetzt und über den Abstandsbolzen gesichert, die Hauptplatine funktionsfähig und die Firmeware komplett in den MC geladen. Das Spannungsversorgungskabel war seitenrichtig! angesteckt. Nach dem Anschalten der Spannung müssen am Ausgang des Spannungsreglers 12V messbar sein und die LED leuchten. Als nächstes wird eine Lokmaus angesteckt. Diese sollte normal Aufleuchten (Spannung OK)und keinen Errcode ausgeben, d.h. die Zentrale kann sich mit Lokmaus unterhalten.

Bei der S88-Platine sollte man nach Bestückung der Bauelemente nicht vergessen, SJ2 zu schliessen (bzw. den Widerstand einzulöten) , damit der Treiber-IC ein definiertes Potential bekommt. Ich habe einen Port mit einer konventionellen Stiftleiste und einen Port für die neue S88_N-Norm ausgestattet. Das Verbindungskabel zur Hauptplatine wird aus ca. 15cm Flachbandkabel und den Schneidklemmverbindern hergestellt. Dabei muss zunächst beim Einfädeln des Kabels darauf geachtet werden, das die Klemmen seitenrichtig verbunden werden und mit einer parallelen Quetscheinrichtung (Schraubstock oder Spezialzange) aufgedrückt werden. Bei einer normalen Zange verkanten Ober und Unterteil der Klemmen, sodas häufig der Rastbügel abbricht und damit das Kabel nicht mehr sichereingeklemmt werden kann.
Die S88-Platine wird dann mit 2 20mm Distanzbolzen in den vorgesehenen Bohrungen auf der Hauptplatine festgeschraubt.

Die Frontplatine wird aus den vorher abgetrennten Einzelteilen zusammengesetzt. Beim Verbinden tut ein starker Drahtrest (z.B. von einer 3A-Diode) an den Übergängen, von beiden Seiten aufgelötet, gute Dienste. Die LEDs werden erst später eingelötet, wenn die Frontplatine in der Frontplatte eingepasst wird. Dann erst wird der Steckverbinder der Frontplatine in die Hauptplatine eingelötet.

Gehäusebearbeitung

Das ist bei mir ein eher ungeliebtes Thema, weil ich selten die Bearbeitung so gerade und sauber hinkriege, wie es sein sollte. Insbesondere bei der Frontplattenbearbeitung ist das sehr auffällig. Es gibt auch Anbieter für die professionelle Herstellung eigener Frontplatten, nur dann kann man sich auch gleich eine handelsübliche Zentrale kaufen.
Egal, ist ja bei mir nur für den Eigenbedarf. Der zeitliche Aufwand dafür ist nicht zu unterschätzen. Ich habe den Ausschnitt für die Gleisausgänge der Einfachheit halber gleich komplett ausgeschnitten. Die Öffnung für die S88-Anschlüsse ist erst gebohrt und dann ausgefeilt worden. Der Expressnetanschluss liegt bei mir wie beschrieben etwas tiefer und wurde in Einbaulage erst angezeichnet, dann mit 10mm gebohrt und dann ebenfalls ausgefeilt.
Die Frontplatte wurde angezeichnet und gebohrt. Dann wurde die Frontplatine eingesetzt und im eingebauten Zustand festgelötet. Da ich den Verbinder auf der Rückseite der Platine angelötet hatte, standen nun die Taster zu weit nach vorne, so das ich die Öffnungen für die Taster vergrößern mußte.
Im Gehäuse mußte ich den Nippel für die Leiterplattenbefestigung unter der Stelle des Gewindebolzens für die Xpressnet-Platine entfernen, damit die Gewindemutter Platz hat.

Software

Für die Inbetriebnahme der USB-Schnittstelle sollte man sich die aktuellsten FTDI-Treiber besorgen, die lediglich um angepasste Treiberdefinitionsdateien geändert werden. Ich habe dazu mit FT_INF diese Definitionen gemäß den Vorgaben der OpenDCC-Webseite angefertigt. Diese werden dann über die bisher vorhandenen Definitionen kopiert. Sie sind in diesem Download enthalten.
Als nächstes sollte der FTDI-USB-Baustein programmiert werden. Wenn man mittels USB-Kabel den PC anschliesst, sollte dort ein neues Gerät erscheinen. Nun kann man mit MPROG oder FT-Prog den Chip selber mit den entsprechenden IDs programmieren, muss man aber nicht. Dann erscheint die Zentrale als "Serieller Port" statt als OpenDCC-Gerät. Wenn jetzt ein neues Gerät erkannt wird, wird als Treiber das Verzeichnis mit den gerade neu erstellten Definitionen und darunter befindlichen Originaltreibern ausgewählt. Am Ende sollte man im Gerätemanager einen neuen COM-Port haben, den man sich notieren sollte.

Jetzt muss man den Prozessor auf der Platine programmieren. Ich habe den PonyProg-Adapter nicht bestückt und programmiere deshalb über den ISP-Header mittels AVRISP. Dort erst die Fuses, dann den Bootloader programmieren. Ich bin mit dem von OpenDCC bereitgestellten Bootloader nicht klar gekommen (das avrosp hat nie Kontakt bekommen) und habe statt dessen den stk500v2-Bootloader von Peter Fleury entsprechend modifiziert. Leider war er dann größer als 512 Byte,aber da der Original Bootloader auch größer war, war das kein Problem Nach dem Einschalten geht die Zentrale mangels Programm gleich in den Programmiermodus. Jetzt kann man über den Bootloader das Programm und die Eeprom-Datei laden. Der Bootloader verwendet die gerade neu erstellten Comport des FTDI und muss auf 19200 Baud eingestellt werden
Leider kann man die verlangte Baudrate von 19200 im AVR-Studio nicht einstellen, zumindest weiss ich es nicht.
Dieser Bootloader ist ebenfalls in diesem Download enthalten. Das File STK500boot2.hex im Ordner default muss statt des OpenDCC-Bootloader geladen werden
Ich verwende gerne AVR-Brenner weil man dort sehr schnell zwischen verschiedenen Brennern wechseln und diese auch konfigurieren kann. Das ist eine Oberfläche zum avrdude (Version 5.10+ benutzen!), den man für alle denkbaren Programmertypen und Konfigurationen verwenden kann.
Wenn beide Files geladen sind, wird die Stromversorgung kurz getrennt und die Zentrale sollte normal starten.

Jetzt wird die Zentrale im Modellbahn-Programm als Intellibox mit dem Comport eingerichtet. Durch das setzen von bestimmten CVs kann man das Verhalten der Zentrale beeinflussen. Dazu kann man z.B. recht komfortabel Rocrail verwenden.
Die ebenfalls vorgeschlagene Konfiguration mit dem Trainprogrammer, für den es eine spezielle Konfigurationsdatei gibt, hat bei mir nicht funktioniert. Siehe auch im Abschnitt Problemlösungen.

Anschluss an die Anlage

Die Zentrale ist nicht dafür ausgelegt, viel Leistung zu liefern. Noch dazu, wenn man so wie ich die Kühlfahnen am Treiber einspart. Deshalb sollte der Main-Ausgang nur zur Versorgung nachgeschaltetet Booster eingesetzt werden. Hier kann man auf die ebenfalls hier beschriebenen BiDi-Booster aus dem gleichen Haus zugreifen.

Bilder

Aufgebaute Zentrale(1)
Foto der Zentrale im Teko-Gehäuse. Im Hintergrund ist die Xpressnet-Platine auf dem ISP-Header mit angestecktem Stromversorgungskabel, links der S88-Aufsatz, welcher über das Flachbandkabel mit der Hauptplatine verbunden ist
Aufgebaute Zentrale(2)
Ansicht der Zentrale mit (nicht so ganz perfekt gelungener) Frontplatte
Fuses im AVR-Studio
Meine Fuse Settings im AVR-Studio mit Einstellung des Bootloaders.
AVRBrenner
AVR-Brenner-Oberfläche.

Problemlösungen

An dieser Stelle auch noch einmal ein herzliches Danke an Wolfgang Kufer für seine Hilfe und Geduld mit mir bei der Aufspürung der Fehlerursachen, und das auch am Wochenende und an Feiertagen

OpenDCC Projekte
Home
Disclaimer
© 2009-2010 Thomas Dreßler
Alle Rechte vorbehalten
letzte Änderung 10.04.2010