Skip to content

Repository files navigation

DCC-Funktionsdekoder mit ATtiny85

Ursprungs-Version

Die erste Dekoder-Software für die Arduino wurde abgeleitet von einem Sketch, der für ein kleines Digispark-Board mit ATtiny85 entworfen wurde.
https://jo-fri.github.io/Eisenbahn/DCC_ATtiny85/index.html\ Die feste Adressierung und Konfiguration wurde geändert auf die Nutzung von CVs.

Der Sketch verwendet die NmraDcc-Bibliothek von MRRWA, die über die Arduino-Bibliotheksverwaltung eingebunden werden kann.

Zum Digispark-Board wurde von mir eine kleine Zusatzplatine entwickelt, mit der die Anschaltung an das Gleissignal erfolgt. Dies enthält weiterhin 3 Transistoren für die Funktionsausgänge, um z.B. die gleichgerichtete Gleisspannung zu schalten, und ein 4. Transistor zur Erzeugung des ACK-Signals. Damit sind jedoch nur noch drei der in der Ursprungsversion verfügbaren vier Ausgänge nutzbar.

Modifizierte Version

Für den Einsatz in einer LED-Lichtleiste als Ersatz für die vorhandene Beleuchtung mit zwei Birnchen in vierachsigen PIKO-DR-Rekowagen habe ich die Dekoder-Hardware mit auf die Beleuchtungsplatine gebracht. Die Wagen sind jetzt auf dem Programmiergleis konfigurierbar. Die Beleuchtung ist jetzt auch dimmbar.
Auf der Beleuchtungsplatine ist ein Steckverbinder für einen ISP-Programmer vorhanden, damit kann auf den Bootloader wie beim Digispark-Board verzichtet werden, was Speicherplatz und Bootzeit spart.

Einen Dekoder mit dem Digispark-Board und der Zusatzplatine habe ich in einem Packwagen eingebaut.

Folgende Funktionen sind möglich:

  • F0 schaltet richtungsabhängig PB0 (LV) und PB4 (LR), z.B. Schlusslichter beider Seiten
    • PB4 (LR) kann auf eine andere Funktionstaste gemappt und damit einzeln geschaltet werden
  • F1 schaltet PB1 (AUX1), z.B. Innenraumbeleuchtung

Jetzt sind folgenden Konfigurationsvariablen (CVs) sind vorhanden:

  • CV1 DCC-Adresse, default 3
  • CV7 Versionsnummer
  • CV8 Hersteller-ID
    • Schreiben auf CV8 führt einen Decoder Reset mit Default-Werten aus
  • CV17/CV18 erweiterte DCC-Adresse (zusammen mit CV29-Bit5)
  • CV29 Konfigurationsbyte
    • Bit0=1 Richtungsumkehr
    • Bit1=1 28/128 Fahrstufen (default
    • Bit5=1 erweiterte Adresse nutzen
  • CV33-CV46 Funktionsmapping für PB0 (LV), PB4 (LR), PB1 (AUX1)
    • CV33 default 1, F0-Vorwärts steuert PB0 (LV, Ausgang Vorwärtsfahrt)
    • CV34 default 2, F0-Rückwärts steuert PB4 (LR, Ausgang Rückwärtsfahrt), Mapping auf F1 ... F4 möglich
    • CV35 default 4, F1 steuert PB1 (AUX1, z.B. Innenbeleuchtung), Mapping auf F0 ... F12 möglich
  • CV49, CV50 für Steuerung der Ausgänge PB0 und PB4 (Schlussbeleuchtung)
    • Bit7=1 immer an
    • Bit6=1 aus, wenn vorwärts
    • Bit5=1 aus, wenn rückwärts
  • CV51, CV52, CV53 für Dimmung der Ausgänge PB0, PB1, PB4
    • Bit0 ... Bit4 (0 ... 31), 0 wird auf 1 gesetzt

Option 4 Ausgänge

Wenn auf das ACK-Signal zum Lesen der Konfigurationsvariablen verzichtet oder dieses zeitweilig mit einem Jumper/Schalter aktiviert werden kann, dann kann auch der Port PB3 als AUX2 genutzt werden. Die dafür gewählte Schaltung liegt im Ordner "hardware".

Für die 4-Port-Variante wurde auch eine komplette Leiterplatte mit dem ATtiny85 entwickelt. Diese Baugruppe hat kein USB-Anschluss und muss mit einem ISP-Programmer programmiert werden.

Dieser 4. Port ist nicht über PWM nicht dimmbar, das unterstützt der ATtiny85 an PB3 nicht. Es wurde aber eine Softwar-Dimmung in der loop-Funktion realisiert.

  • F2 schaltet AUX2 (default), Funktionsmapping mit CV36 (default 8)
  • CV54 ist für die Dimmung

Ich nutze aber nur die Variante ohne Bootloader mit ISP-Programmierung. Ich habe teilweise Konflikte mit dem Bootloader festgestellt, die den Chip resetten und der Bootloader muss neu aufgespielt werden.
Die Dekoder-Hardware ohne das Digispark-Board hat für die ISP-Programmierung 6 Kontakteflächen.

Die 4-Port-Hardware kann auch für die Software der 3-Port-Variante verwendet werden. Dazu ist der Anschluss ACK zu überbrücken, der letze Ausgang ist nicht verwendbar.

Eine gute Informationsquelle zur Programmierung des ATtiny85 ist hier zu finden.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages