====== DCC-Dekoder ====== **In Bearbeitung** ===== DCC-Funktions-Dekoder mit ATtiny85 ===== ==== Funktions-Dekoder mit Digispark-Board ==== [[https://jo-fri.github.io/Eisenbahn/DCC_ATtiny85/index.html|Hier]] wurde ein Funktionsdekoder mit einem ATtiny85-Digispark-Board vorgestellt. Ich habe dafür die Hardware ergänzt, damit auch CVs in Wagen, die mit diesem Decoder ausgerüstet sind, auch auf dem Programmiergleis programmiert und zurückgelesen werden können. Der damit ausgestattete Dekoder hat dann nur noch 3 Ausgänge. Ein ergänzter Arduino-Sketch für die 3-Port-Variante mit ACK ist dort abgelegt, ebenso ein Sketch für 4 Ports ohne CV-Lesemöglichkeit. Das Programmieren kann aber trotzdem erfolgen\\ Ich empfehle in jedem Fall das dort erwähnte Upgrade auf die 300ms-Bootzeit. Nach ersten positiven Versuchen mit einem fliegendem Aufbau habe ich eine kleine Zusatzplatine entworfen, die rückseitig mit Stiften aufgelötet wird. Hier der überarbeitete Entwurf mit der zusätzlichen Diode. {{modellbahn:umbauten:attiny-mufu_schematic_1.1.pdf|Schaltplan}}\\ {{modellbahn:umbauten:attiny-mufu_assembly_1.1.pdf|Bestückungsplan}}\\ {{modellbahn:umbauten:attiny-mufu_bom_1.1.pdf|Stückliste}}\\ [[https://aisler.net/p/MYXFIEOZ|Bestellmöglichkeit]] der Leiterplatte für Eigenbau bei Aisler\\ Eine kommerzielle Nutzung ist untersagt.\\ {{:modellbahn:umbauten:pwg_dcc_04.jpg?direct&100 |}}Hier ein Einbaubeispiel der ersten Version der Platine im [[modellbahn:umbauten:pwg-daa|Pwgs/Daa-Wagen]]. Nachträglich musste eine zusätzliche Diode eingefügt werden, damit auch mit dem Stützkondensator ein CV-Schreiben und -Lesen mit dem ACK-Signal zuverlässig funktionieren. Die Software-Variante mit den 3 Ports wird von mir weiterentwickelt, z.B. mit Funktionsmapping für zwei Ports.\\ Das Projekt habe ich auf [[https://github.com/Sim-59/ATtiny-Function-Decoder|Github]] abgelegt. Folgende Funktionen sind aktuell konfiguriert: F0 Taste schaltet richtungsabhängig beide Schluss-LEDs an PB0 und PB4\\ F1 Taste schaltet Wagenbeleuchtung an Pb1, die beiden Onboard-LEDs wurden deaktiviert.\\ ----- ==== Funktions-Dekoder auf Lichtleiste ==== {{:modellbahn:umbauten:reko-umb_tiny_01.jpg?200|}} Auf der Basis der oben genannten Hard- und Software wurde eine Lichtleiste mit einem ATtiny85 aufgebaut. Diese erhält keinen Bootloader, wie das Digispark-Board. Die Programierung erfolgt über einen ISP-Stecker. Es kann der gleiche Sketch verwendet werden. Es sind ebenfalls drei Ausgänge vorhanden und das ACK-Signal wird verwendet. Der umgebaute Wagen mit der Lichtleiste ist [[modellbahn:umbauten:rekowagen|hier]] vorgestellt. Dort sind auch die Leiterplattendaten abgelegt. ----- ===== DCC-Zubehör-Dekoder mit ATtiny85 ===== ==== Entwicklungsboard ==== Nachdem ich den Funktionsdekoder auf Basis des ATtiny85 für die [[https://simandit.de/simwiki/doku.php?id=modellbahn:umbauten:rekowagen#schicht-rekowagen|Beleuchtung]] meiner Wagen erfolgreich in Betrieb genommen hatte, habe ich auf gleicher Basis die Entwicklung eines Zubehördekoders begonnen.\\ Basis war ein Arduino-Beispielsketch der [[https://github.com/mrrwa/NmraDcc|NmraDcc]]-Bibliothek von [[http://mrrwa.org/|MRRWA]]. Aus dem DCC-Signal wird die Spanung für das Board generiert und es kann auch ein DCC-ACK-Signal erzeugt werden. Damit ist das Lesen und Schreiben der Adresse und einiger Konfigurationsdaten mit dem Programmiergleis-Anschluss möglich. Der Dekoder hat 4 Ausgänge (Ports), die mit DCC-Befehlen aktiviert und deaktiviert werden können. Mit der Adresse+1 kann bei jedem Port ein Blinken eingeschaltet werden. Die Blinkperiode ist konfigurierbar von 0,5 ... 3,5s.\\ PORT1 und PORT2 können als alternierend verbunden werden (z.B. Weichen, Signale) und dann besteht auch die Möglichkeit, einen Impuls definierter Länge (0,25 ... 8s) zu erzeugen, z.B. bei Weichen ohne Endabschaltung. CV1/CV9 = Dekoder-Adresse (Modul-Adresse nach NMRA mit 4 Ports und zwei Gates)\\ CV1 = 6 bit LSB\\ ''x x x x x x x x''\\ ''- - +-+-+-+-+-+ - - - - - LSB 0 ... 63''\\ CV9 = 3 Bit MSB\\ ''x x x x x x x x''\\ ''- - - - - +-+-+ - - - - - MSB (0 ... 7) * 64'' CV10\\ ''x x x x x x x x''\\ ''- - - - - - - + - - - - - "0" = 4 unabhängige Ports, "1" = PORT1/PORT2 als alternierende Ports, z.B. Signale, Weichen''\\ CV11\\ ''x x x x x x x x''\\ ''| | | +-+-+-+-+ - - - - - 5 bit pulse length if PORT1 and PORT2 are alternating ports, number * 256 ms (256 ms ... 7.93 s)''\\ ''+-+-+ - - - - - - - - - - 3 bit for blinking periode in s (0.5 ... 3.5 s)'' Für die Adressierung gibt es unterschiedliche Varianten. Ich habe mit Rocrail und der [[https://simandit.de/simwiki/doku.php?id=modellbahn:digital#command_station|DCC-Commandstation]] von DCC-Ex die [[https://www.rocrail.online/doku.php?id=addressing-de&s[]=mada#adressierung_von_dcc_zubehoer-dekodern_in_rocrail_mada|MADA-Adressierung]] ohne Probleme verwenden können. Andere Adressierungsarten kann ich mit dieser Commandstation nicht testen.\\ An einer Z21 sollte es mit der [[https://www.rocrail.online/doku.php?id=addressing-de&s[]=pada#pada-adressierung_von_zubehoer-dekodern|PAPA-Adressierung]] funktionieren, jedoch mit einem Offset von +4. Im Video ein Beispiel für eine Signalsteuerung durch Rocrail und dem [[https://simandit.de/simwiki/doku.php?id=modellbahn:digital#locoio-keypad-arduino|LocoIO-Keypad]]. Für meine Modellbahn habe ich erstmal die Signalbilder mit statischer Anzeige vorgesehen: * Hl 1 - ein grünes Licht - Fahrt mit Strecken-Höchstgeschwindigkeit * HL 3a - ein gelbes Licht, darüber ein grünes Licht - Fahrt mit 40 km/h, dann mit Strecken-Höchstgeschwindigkeit * Hl 10 - ein gelbes Licht oben - "Halt" erwarten * Hl 13 - ein rotes Licht - "Halt" Die Signalbilder sind im Rocrail mit den Einstellungen für Mustern für die 4 Ausgänge erstellt worden. Mit Aktionen können auch weitere Signalbilder (Signal-Muster + blinkende LED) erzeugt werden, wie Hl 4 und Hl 7. Ich habe mal testweise zwei weitere erzeugt: * Hl 6a - ein gelbes Licht, darüber ein grünes Blinklicht * Hl 9a - ein gelbes Licht, darüber ein gelbes Blinklicht {{:modellbahn:umbauten:attiny_signal_k.mp4|}}