DCC Dekoder: Unterschied zwischen den Versionen

Aus Digital Modellbahn
Zeile 21: Zeile 21:
 
[[Datei:4x_DCC-Dekoder.jpeg|thumb|Mini 4x DCC Dekoder (Open-Collector)]]
 
[[Datei:4x_DCC-Dekoder.jpeg|thumb|Mini 4x DCC Dekoder (Open-Collector)]]
 
[[Datei:4x_DCC-Dekoder_Treiber.jpeg|thumb|Mini 4x DCC Dekoder mit Treiber]]
 
[[Datei:4x_DCC-Dekoder_Treiber.jpeg|thumb|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 Servo Dekoder#Tiny_Dekoder_Programmer|DCC-Tiny-Programmer (Lesebaustein)]] ist die Konfiguration sehr einfach.
+
Der kleine multifunktions Dekoder für vier Ausgänge kann bei einer vielzahl von Anwendungen genutzt werden. Durch seine flexiblen Ausgangsansteuerung und Programmierung mit dem [[DCC Servo Dekoder#Tiny_Dekoder_Programmer|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.
+
Blinkmuster werden dabei ü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.
Bei der Steuerung mittels Lok Funktionen (F0 bis F12) wird dies über die CV# x1 mit dem setzten des BIT 6 und BIT 7 auf "1" aktiviert. Die Abhängigkeit der Fahrrichtung kann für alle Funktionen optional mit aktiviert werden. Durch die CV# x7 kann diese dann auch Invertiert werden, so das ein Einsatz in einem Steuerwagen möglich ist.
+
Bei der Steuerung mittels Lok Adresse und den Funktionen (F0 bis F12) wird die Lokadresse mittels CV#1 (kurze Adresse) oder CV#58 und CV#57 (lange Adresse)  die CV# x1 mit dem setzten des BIT 6 und BIT 7 auf "1" aktiviert. Die Abhängigkeit der Fahrrichtung kann für alle Funktionen optional mit aktiviert werden. Durch die CV# x7 kann diese dann auch Invertiert werden, so das ein Einsatz in einem Steuerwagen möglich ist.
  
 
=== DCC CV-Programmierung === <!--T:7-->
 
=== DCC CV-Programmierung === <!--T:7-->
Zeile 37: Zeile 37:
 
:* CV# 8 - Softwareversion (Firmware) Dekoder - "nur lesen"
 
:* CV# 8 - Softwareversion (Firmware) Dekoder - "nur lesen"
 
:* CV# 9 - Softwareidentifikation (ID) Dekoder - "nur lesen"
 
:* CV# 9 - Softwareidentifikation (ID) Dekoder - "nur lesen"
 +
:* CV# 57 (CV#17) - Loco Adresse HIGH byte (192..255)
 +
:* CV# 58 (CV#18) - Loco Adresse LOW byte
 +
:* CV# 69 (CV#29) - Activate with Bit 5 long Loco Adresse
  
 
<!--T:8-->
 
<!--T:8-->
Zeile 47: Zeile 50:
 
:* CV# x5 - Geschwindigkeit Dimmen zu Position ON (0..255) - default: 5
 
:* CV# x5 - Geschwindigkeit Dimmen zu Position ON (0..255) - default: 5
 
:* CV# x6 - Geschwindigkeit Dimmen zu Position OFF (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# x7 - "1" = Bit 0: Invertiert der Position ON und OFF des Ausgangs - default: 0
 +
:+ CV# x7 - Aktivierung des Ausgang in Abhängigkeit Ausgang 1 (Bit 5) bis Ausgang 4 (Bit 7) für Lichtsignale
 
:* CV# x8 - Geschwindigkeit Blinkmuster (0..255)
 
:* CV# x8 - Geschwindigkeit Blinkmuster (0..255)
 
:* CV# x9 - Pause nach Ablauf des Blinkmusters (0..255) - default: 0
 
:* CV# x9 - Pause nach Ablauf des Blinkmusters (0..255) - default: 0
  
: Zur Steuerung über F0 bis F12 muss CV# x0 bei BIT 6 und BIT 7 auf "1" gesetzt werden:
+
: Zur Steuerung über Lok 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 und CV# x1: F12,F11,F10,F9,F8,F7,F6,F5
 
Funktionssteuerung: CV# x0: DIR, 1 , 1 ,F0,F4,F3,F2,F1 und CV# x1: F12,F11,F10,F9,F8,F7,F6,F5
 
+
:Über das "DIR" Bit kann die Richtungsabhängigkeit aktiviert werden. Angabe der Fahrtrichtung erfolgt über Invertierung (CV#7 Bit 0).
  
 
<!--T:9-->
 
<!--T:9-->

Version vom 21. August 2020, 15:20 Uhr

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 multifunktions 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 dabei ü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. Bei der Steuerung mittels Lok Adresse und den Funktionen (F0 bis F12) wird die Lokadresse mittels CV#1 (kurze Adresse) oder CV#58 und CV#57 (lange Adresse) die CV# x1 mit dem setzten des BIT 6 und BIT 7 auf "1" aktiviert. Die Abhängigkeit der Fahrrichtung kann für alle Funktionen optional mit aktiviert werden. Durch die CV# x7 kann diese dann auch Invertiert werden, so das ein Einsatz in einem Steuerwagen möglich ist.

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"
  • CV# 57 (CV#17) - Loco Adresse HIGH byte (192..255)
  • CV# 58 (CV#18) - Loco Adresse LOW byte
  • CV# 69 (CV#29) - Activate with Bit 5 long Loco Adresse

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
  • 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 - "1" = Bit 0: Invertiert der Position ON und OFF des Ausgangs - default: 0
+ CV# x7 - Aktivierung des Ausgang in Abhängigkeit Ausgang 1 (Bit 5) bis Ausgang 4 (Bit 7) für Lichtsignale
  • CV# x8 - Geschwindigkeit Blinkmuster (0..255)
  • CV# x9 - Pause nach Ablauf des Blinkmusters (0..255) - default: 0
Zur Steuerung über Lok 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 und CV# x1: F12,F11,F10,F9,F8,F7,F6,F5

Über das "DIR" Bit kann die Richtungsabhängigkeit aktiviert werden. Angabe der Fahrtrichtung erfolgt über Invertierung (CV#7 Bit 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).