DCC Dekoder

Aus Digital Modellbahn

Eigenbau | Allgemein | Railcom | DCC-Dekoder | Servo-Dekoder | Spezialdekoder

DCC Sniffer

Mit dieser Hardware kann der Arduino das DCC-Signal dekodieren. Dazu wird der Interrupt 0, welcher sich beim Arduino UNO an Pin 2 befindet und der Timer 1 genutzt. Der Timer startet nach einer ansteigenden Flanke am Pin 2 und läuft für 70µs. In einer Auswerteroutine wird dann der Zustand (High/Low) des Pin 2 abgefragt. Diese Daten, beginnend bei der Präambel, werden zu je 8 Bit zusammengefasst und ergeben ein DCC Datenpaket.

Hardware

Anschluss DCC Sniffer (Eagle)

Die Hardware kann in drei verschiedenen Varianten aufgebaut werden.

  1. Der Aufbau mit einem PC817 Optokoppler ist sehr klein, allerdings gibt es keinen passenden Sockel für diesen 4 Pin Optokoppler. Das Signal wird durch den Optokoppler ohne Signalaufbereitung etwas flach und hat keine steile Flanke mehr.
  2. Ein 6N136 oder 6N137 Optokoppler besitzt einen interne Signalverstärkung. Hier wird die Flanke weitergegeben die auch für einen Booster mit Brückengleichrichter nutzbar ist.
  3. Der Einfachste Aufbau ohne optische Trennung für Dekoder welche auch direkt vom Gleis mit Spannung versorgt werden. Hier kann Wahlweise eine Diodenkombination oder ein Gleichrichter verwendet werden. Um den Mikroprozessor zu schützen wird das Signal über einen Widerstand geführt.

Download

Die Software ist für die Arduino IDE geschrieben.

Mini 4x DCC-Decoder

Mini 4x DCC Dekoder (Open-Collector)
Mini 4x DCC Dekoder mit Treiber

Der kleine Dekoder für vier Ausgänge kann bei einer vielzahl von Anwendungen genutzt werden. Durch seine flexiblen Ausgangsansteuerung und Programmierung mit dem DCC-Tiny-Programmer (Lesebaustein) ist die Konfiguration sehr einfach. Blinkmuster werden über zwei Register programmiert. Diese bilden 16bit um den Status des Ausgang anzugeben. Durchlaufen werden diese 16bit über einen Zähler dessen Geschwindigkeit (CV# x8) sich regulieren lässt. So lässt sich zum Beispiel ein "STROBE" Blitz darstellen (CV# x4 = "10101000" und CV# x3 = "00000000"). Es kann aber auch ein Flackern für den Start einer Leuchtstofflampe in diesem Bitmuster umgesetzt werden. Mit der globalen Einstellung CV# 6 = "0x01" wird dann das Bitmuster nur beim Starten einmal durchlaufen.

DCC CV-Programmierung

Ausgang Konfiguration:

  • CV# 1 - kurze Lok Adresse (1..127)
  • CV# 5 - "1" als Wert führt zum Shift der Adresse um "4" für IntelliBox (default 255)
  • CV# 6 - "1" Bitmuster nur einmal wenn Ausgang auf "ON" wechselt durchlaufen
  • CV# 7 - "1" = Bit 0: Synchronisierung aller Bitmusterzähler mit dem 1. Ausgang (z.B. Lauflicht)
  • CV# 7 - "2" = Bit 1: Syncronisierung aller Zubehöradressen auf den Ausgang 1
  • CV# 7 - "4" = Bit 2: Ausgang erst abschalten wenn Muster ihn anschaltet (belebtes Haus).
  • CV# 8 - Softwareversion (Firmware) Dekoder - "nur lesen"
  • CV# 9 - Softwareidentifikation (ID) Dekoder - "nur lesen"

Für jeden Ausgang x=[1..4] können folgende Parameter eingestellt werden:

  • CV# x0 - Zubehöradresse HIGH (0..64) - default: 0
  • CV# x1 - Zubehöradresse LOW (0..255) - default: 10+x
Zur Steuerung über F0 bis F12 muss CV# x0 bei BIT 6 und BIT 7 auf "1" gesetzt werden:
Funktionssteuerung: CV# x0: DIR, 1 , 1 ,F0,F4,F3,F2,F1
CV# x1: F12,F11,F10,F9,F8,F7,F6,F5
  • CV# x2 - PWM Frequenz ON - Helligkeit (0..255) - default: 255
  • CV# x3 - Blinkmuster HIGH (0..255)
  • CV# x4 - Blinkmuster LOW (0..255)
  • CV# x5 - Geschwindigkeit Dimmen zu Position ON (0..255) - default: 5
  • CV# x6 - Geschwindigkeit Dimmen zu Position OFF (0..255) - default: 5
  • CV# x7 - Invertiert die Position ON und OFF des Ausgangs (0..1) - default: 0
  • CV# x8 - Geschwindigkeit Blinkmuster (0..255)
  • CV# x9 - Pause nach Ablauf des Blinkmusters (0..255) - default: 0

Eine Programmierung des DCC 4x mini Dekoders kann über DCC direct am Programmiergleis erfolgen. Damit ein unabsichtliches Ändern der Werte durch die Programmierung eines anderen Dekoders verhindert wird, kann diese Funktion in der Software nach dem Programmieren deaktiviert werden.

Ein Auslesen der programmierten CV# Werte, ist nur mit dem DCC-Tiny-Programmer (Lesebaustein) und 
einer vorherigen Hochspannungsprogrammierung (High-Voltage-Programming) möglich!

Hardware

DCC 4x Dekoder (Eagle)

Der Dekoder verfügt über einen 5-poligen Programmierstecker J1 für den DCC-Tiny-Programmer (Lesebaustein). Für den normalen Betrieb ist bei diesem Stecker der PIN 4 und PIN 5 (DCC-Signal) mit einem Jumper zu brücken. Wenn der Tiny Programmer (4-polig nur PIN 1 bis 4) aufgesteckt wird, muss der Jumper vorher entfernt werden, da dann das DCC-Signal durch den Programmer und nicht durch die Digitalzentrale erzeugt wird!

Aufgebaut werden kann der Dekoder je nach Anforderung individuell. Der Ausgang kann direkt eine LED mit max. 20 mA ansteuern. Es kann aber auch ein Transistor (Open-Collector-Ausgang) oder ULN2007/8 am Ausgang als Treiber eingesetzt werden.

Download

Motorweichen Treiber

Motorweichenadapter

Für die Weichenansteuerung nutze ich die 4x Ausgänge Schaltdecoder, welcher oben erklärt wurde.

Motorweichenantrieben können mit einem Relais gesteuert werden. Diese Schalten eine Phase der 16V~ für die Motorantriebe. Mit einem Doppelumschaltkontakt am Relais, kann der zweite Kontakt zum Beispiel für eine Herzstückpolarisierung eingesetzt werden.

Soll kein Relais verwendet werden kann der Adapter für Motorweichen ORM-1 von Rocrail verwendet werden - Vergleichbar ist dieser mit dem LENZ 11010 (LA 010).