OpenDCC BiDiB-IF2
Überblick, Entstehung
- BiDiB Interface: komplettes Interface zum Steuern einer Modellbahn. Anschluß per USB und per BiDiBus
- DCC Generator: Integrierter, vollständiger DCC Generator, zusammen mit externen Boostern ist kompletter Fahrbetrieb möglich.
- einfache Bedienung: Taster für Nothalt und Identify, Statusanzeige über mehrfarbige LEDs
- einfache Verbindung: an den USB-Port anstecken - an das BiDiB-Netz anstecken - fertig
- zukunftsicher: bequemer Firmware-Update menügeführt mit dem BiDiB-Tools
- kompakt: Maße 83mm x 41mm * 20mm

Eigenschaften des BiDiB-IF2:
Bedienelemente und Anzeigen, Blinkcodes
- Taster:
Identify-Taster: Im Betrieb: Wenn eine BiDiB-Verbindung zum PC besteht, dann wird ein 'Identify'-Ereignis an den PC geschickt (führt dort zu einer entsprechenden Anzeige in der Baumansicht) und die lokale LED blinkt purpur. Wenn keine Verbindung besteht, blinkt die lokale LED rot. Beim Starten gedrückt: Das Interface startet nicht in den Betriebsmode, sondert bleibt im Bootloader. Der Bootloader kann dann mittels der Firmware-Update des Monitors / Wizard eine neue Version des Betriebssystems laden. Stop/Go-Taster: kurzer Tastendruck DCC wird auf Halt gestellt. Hierzu werden die Lokbefehle in einer kurzen Zeitspannung von auf 0 geregelt (Softstop). Weichenbefehle und Programmierbefehle können weiterhin gesendet werden, die Gleisausgabe bleibt aktiv. Wenn DCC im Halt steht oder abgeschaltet ist, dann wird eingeschaltet. Die LED wechselt auf grün. langer Tastendruck Notabschaltung, DCC wird abgeschaltet (und in Folge schalten auch die Booster wegen fehlendem Eingangssignal ab) - Das Starten mit gedrückter ID-Taste ist zum Firmware-Update normalerweise nicht erforderlich, nur wenn das BiDiB-IF2 nicht mehr ansprechbar ist (z.B. weil im vorangegangenen Update was schief gegangen ist).
- Der Bootloader des BiDiB-IF2 meldet sich mit BIDIB_PRODUCT_ID = 131 und CLASS_BOOTLOADER = 1 am PC an, weitere Funktionalität ist im Bootloader nicht ansprechbar.
- LEDs:
Anzeige der Identify-LED: •
dunkelblaunoch nicht mit PC verbunden, Interface hat noch keine Daten erhalten. Oder: Verbindung war zu lange inaktiv •
hellblauVerbindung vom PC wurde aufgenommen, Interface hat Daten erhalten •
purpurBlinkend: Identify Mode = ON •
rotkeine Verbindung; rot leuchtet kurz auf, wenn die Identify-Taste betätigt wurde und keine Verbindung zum PC besteht. Rot blinkt nach ID, wenn zwar (kürzlich) eine PC-Verbindung besteht, aber der Tastendruck nicht abgesandt werden konnte (wegen System gestoppt/disabled) •
FarborgelInterner Programmfehler, Prozessor angehalten; Huch! Anzeige der Stop/Go-LED: •
grünDCC im normalen Betrieb •
gelb-rotSanftes Anhalten ist aktiviert - alle Fahrstufen werden (in etwa 1,3s) auf 0 runtergeregelt, anschließend geht das Interface von selbst in den Zustand STOP. •
gelbSanftes Anhalten wurde durch die Watchdog-Überwachung ausgelöst. alle Fahrstufen werden auf 0 runtergeregelt. •
rotHALT. Alle Fahrbefehle sind auf 0 geklemmt, DCC bleibt aber aktiv, es können z.B. noch Weichen gestellt werden. Nach GO werden wieder Fahrstufen ausgegeben. •
rot, schnell blinkendHALT, bedingt durch das Auslösen des Watchdogs. Alle Fahrbefehle sind auf 0 geändert. •
rot, langsam blinkendOFF. DCC ist abgeschaltet.
Normaler Bootablauf:
Beide LED blinken zur Funktionskontrolle nach dem Einschalten dreimal in unterschiedlichen Farben, dann wechselt die Identify-LED auf ein dunkles blau, die STOP/GO auf ein grün oder rot, je nach gewünschten Zustand der DCC-Ausgabe.
Sollte der normale Bootablauf nicht erfolgreich durchlaufen werden, so gibt es folgende Fehleranzeigen:Fehler-Blinkcodes: LED ID LED STOP/GO Bedeutung 10x Blau hektisch - Bootloader fehlt. Das Interface funktioniert, Firmwareupdate nur durch AVR-Programmer Rot Lila blinkend EEPROM nicht korrekt. Keine Funktion des Interfaces. Abhilfe: EEPROM-Daten per Bootloader einspielen Blau Rot blinkend Masseschluß auf GO-Taster
Schaltplan BiDiB-IF2
-
Der Schaltplan findet sich in Abschnitt Download als pdf.
- Prozessor:
Das Interface wird mit einem atxmega128a4u betrieben. Der Prozessor wird mit einem 8MHz-Quarz getaktet, intern wird das mit der PLL auf 32MHz Systemtakt hochgesetzt. - Interfaces:
Zum PC hin ist eine USB-Schnittstelle mittels des FT232RL realisiert (einfachere Treiberversorgung), die BiDiBus-Anbindung erfolgt als Leitungs-Endpunkt mit nur einer Buchse und fest installiertem Busabschluss. Das Interface muß also leitungstechnisch an einem Ende einer BiDiB-Installation liegen. - Stromversorgung:
Das Interface selbst wird vom PC aus versorgt und implementiert auch den notwendigen Pullup auf der ACK-Leitung. Eine Speisung der 12V-Leitung des BiDiBus erfolgt nicht. Die 3,3V des Prozessors werden mit einen einfachen Längsregler erzeugt.
Es sind zwei Taster (Identify und Stop/Go) vorgesehen, die Zustandsanzeige des Interfaces erfolgt über zwei RGB-LEDs.
Layout

Realisiert wurde die Schaltung auf einer Platine 78 x 32mm.
Als USB-Buchse sind sowohl USB-B als auch USB mini-B bestückbar. Die USB-B (in normaler Größe) paßt exakt zum Gehäuse und ist auch in der SMD-vorbestückten Version installiert.
Das Layout der BiDiB-Buchse ist universell für Durchsteck- oder SMD-RJ45 geeignet, auch verscheidene Befestigungsarten (Lötfahnen, Lötpad oder Schnapphaken) sind berücksichtigt. Wichtig ist: die Buchse muß die Verriegelung unten haben. Nur sogenannte 'Lowprofile'-Ausführungen passen zum Gehäuse.
Für die beiden Taster sind 4 Alternativen möglich:
Taster MEC SMD |
Taster MEC Durchsteckmontage |
Taster Schurter 9314 (oder kompatible 6x6mm Taster) in SMD |
Minitaster 6x6mm in Durchsteckmontage |
Als LEDs sind ab Platinenversion 1.2 Osram RGB-Leds im Chipgehäuse mit 3x3mm vorgesehen (www.osram-os.com/Graphics/XPic1/00194610_0.pdf/LTRB R8SF – MultiCHIPLED.pdf). Bis Platinenversion 1.1 waren LED des Typs Osram LRTB G6TG vorgesehen (anderes Pinning, PLCC-6 Gehäuse). Das Licht der LEDS wird mit einem Lichtleiter zur Gehäuseoberfläche geleitet.
Der Prozessor (Atxmega128a4u) kann sowohl im QFN (Atxmega128a4u-mh) als auch im QFP (Atxmega128a4u-au) bestückt werden.
Die Stifte für AVR_ISP, X1, J1 und J3 werden normalerweise nicht bestückt, die Steckbrücken werden durch die 0-Ohm Widerstände R8 und R9 geschlossen. (statt R8 und R9 kann man auch Lötbrücken auflöten)
Gehäuse

Stückliste Gehäuse | ||
---|---|---|
St. | Bezeichnung | Teilenummer |
1 | Gehäuse Pactec CNR-L (Housing Black, top und bottom); Oberseite gemäß Bohrplan bearbeitet. | 115127-501-000 CN-RL |
1 | Gehäuse Pactec CNR-L (Endcap Black USB B) | 115121-01-000 CN-RL RS |
1 | Gehäuse Pactec CNR-L (Endcap Black RJ45) | 115123-01-000 CN-RL RS |
1 | Frontfolie, selbstklebend, bedruckt und konturgeschnitten | Maigler_BiDiB-IF2_V1 |
2 | Lichtleiter, Mentor, 3mm, 15mm, gerade | MEN 1275.1001 (reichelt) |
2 | Tastenkappe, MEC-Switches, 16mm Höhe | KAPPE 1S09-16.0 (reichelt); alternativ: KAPPE 1S09-19.0 |
Bohrplan
- Reinigen der Schale mit einem fuselfreiem Tuch, so dass keine Staubkörner oder sonstige Verunreinigungen mehr vorhanden sind.
- Ablösen des Schutzpapieres vom Aufkleber entlang der unteren Kanten. Das Schutzpapier nach hinten falten, dabei die Klebefläche des Aufklebers nicht berühren.
- Nun den Aufkleber auf Stoß exakt an der unteren Kante der Vertiefung anlegen. Erst wenn die Kante auf der ganzen Länge anliegt und der Aufkleber seitlich genau ausgerichtet ist, dann erst den Aufkleber langsam auf die Gehäuseschale ablegen. Dabei das Schutzpapier nach oben abziehen.
- Wenn der Aufkleber genau liegt, paßt er exakt in die Vertiefung. Denn Aufkleber dann von der Mitte her blasenfrei andrücken.

Die Löcher sind exakt bezogen auf die Mitte der Gehäusevertiefung zu bohren. Ein möglichst scharfkantiger Bohrer und eine sichere Fixierung der Gehäuseschale verhindert Ausrisse und Aufwerfungen am Bohrloch. Die Löcher im Aufkleber sind minimal größer, um ein sicheres Gleiten der Tastenkappen zu gewährleisten.

Anbringen des Aufklebers:
Hier hat sich folgende Vorgehensweise bewährt:
Aufbauanleitung
- Ein kompletter Selbstbau ist möglich, allerdings wurden wegen der Gehäusegröße kleine SMD-Bauteile verwendet, diese
erfordern entsprechende Lötausrüstung.
- Bestückung Spannungsregler und Kondensatoren um den Spannungsregler. Hier dann gleich eine Kontrolle der 3,3V durchführen.
- Bestückung der LEDs und der Widerstandsnetzwerk 1k. Kontrolle der LEDs durchführen.
- Bestückung von Kondensatoren und Widerstände, Dioden.
- Bestückung des Prozessors, FTDI-Chips und RS485-Baustein.
- Genaue optische Kontrolle auf Kurzschlüsse - dann 5V anlegen und 3,3V-Netz nachmessen.
- Mit PDI-Programmer Signatur des Prozessors auslesen. (Tipp: die Stifte für die AVR-ISP-Schnittstelle braucht man nicht zu bestücken, es reicht i.d.R. ein Einstecken der Stiftleiste und seitlicher Druck mit einer kleinen Federzwinge.)
Am Besten geht man wie folgt vor:
Fuses:

Bilder

FAQ
- Brauche ich zum IF2 noch eine DCC-Zentrale?
In BiDiB wird unterschieden zwischen DCC-Generator (der erzeugt den Bitstrom) und Booster (die verstärken den Bitstrom und versorgen die Loks). Das BiDiB-IF2 enthält den DCC-Generator, aber keinen Booster. Man braucht also externe Booster, wie z.B. GBMBoost als Node. - Versorgt das IF2 den BiDiBus?
Nein. Das IF2 stellt keine Busversorgung bereit. Wenn Baugruppen verwendet werden, die aus dem Bus gespeist werden (z.B. GBM16TS), dann ist eine separate Versorgung erforderlich (bzw. kann auch über den GBM16TS oder GBMBoost-Node erfolgen, dort ist dann die Busversorgung entsprechen vorzusehen).
Wenn nur Baugruppen verwendet werden, die nicht aus dem Bus versorgt werden (NeoControl, StepControl, usw.), dann ist keine Busspeisung erforderlich.
Booster brauchen aber immer eine eigenständige Versorgung. - Kann ich mit dem IF2 ein Programmiergleis ansteuern?
Nein. Hierzu wäre (technisch bedingt) ein direkt verbundener Booster erforderlich. - Kann ich mit dem IF2 Programmieren auf dem Hauptgleis durchführen?
Ja. Für das Lesen sind allerdings railcomfähige Booster und Rückmelder erforderlich (wie z.B. GBMBoost) - Wie wird der Bus beim IF2 terminiert?
Das IF2 hat Abschlußwiderstände integriert und muß daher an einem Ende des BiDiBus-Stranges angeordnet werden, nicht in der Mitte. - Kann man es nicht trotzdem in der Mitte anordnen?
Das ist mit einem kleinen Umbau möglich: in die Busleitung wird ein handelsübliches Y-Stück eingeschleift, an diesem wird das IF2 mit einer maximalen Kabellänge von 2m angeschlossen. Auf der Platine des IF2 müssen die beiden 0-Ohm Widerstände R8 und R9 entfernt werden (siehe Bild). Diese liegen parallel zu den unbestückten Jumpern J1 und J3, d.h. man kann den Umbau wieder rückgängig machen. Diese beiden Bedingungen unbedingt beachten, sonst gibt es Busfehler. Auf dem Gehäuse des IF2 dann bitte vermerken, dass die Terminierung entfernt wurde.
Download
History
- Applikation BiDiB-IF (Master):
- V2.10.02
17.07.2021 Ebenenzahl erhöht, max. Packet auf 64. - V2.10.00
06.01.2021 Verbesserungen bei Nachrichtenfluß ('Sequencefehler' behoben), DCCA und DCC SDF / Analogfunktion ergänzt. - V2.04.05
01.02.2020 Bugfix bei Speichern von internen CVs - V2.04.05
02.02.2019 Bugfix Fifo-Handling bei extremer Buslast; Update empfohlen. - V2.04.03
09.02.2017 Bugfix DCC Ausgabe - V2.04.02
23.01.2017 Hinzu: BiDiB-Systemzeit. Verbesserung der LED-Ansteuerung. - V2.04.00
28.11.2016 Bugfix: Unter bestimmten Lastbedingungen kann ein DCC-Befehl versehentlich zu oft ausgegeben werden - mit schädlichen Auswirkungen auf den DCC-Durchsatz, die Reaktionszeit auf Befehle und auf Railcom-Erkennung, wenn nur Channel 2 aktiviert ist. Ein Update wird empfohlen. - V2.04.01
08.01.2017 Konsolidierung der LED-Anzeigen. Ein Update wird empfohlen.
- V2.10.02
- Schaltplan:
- 10.12.2016 In V1.2 hat sich eine Vertauschung von RX/TX in die Schaltung gemogelt (in V1.0 war es noch okay), das wird durch eine Auffräsung und 2 Drahtbrücken behoben. Mit installierten Drahtbrücken ist die V1.2 technisch identisch zur V1.3.
Das IF2 als BiDiB-Logger
-
Für das IF2 gibt eine Firmware, welche den Bus beobachten kann und die dort übertragenen Nachrichten dekodieren und als
Test ausgeben kann. Diese Anwendung ist nur für Entwickler von Baugruppen gedacht!
Die Firmware kann normal eingespielt werden, allerdings ist anschließend das IF2 nicht mehr per BiDiB ansprechbar (logisch, es agiert jetzt ja als serielles ASCII-Device mit 115200 8N1).