Schaltdecoder: eine Software für OpenDecoder (Var. 1)

    Der Schaltdecoder ist die erste Version des DCC-Decoders. Diese Software kann sowohl als Weichendecoder (Pulsausgänge) wie auch als Schaltdecoder (Dauerausgänge) arbeiten. Diese Software ist lauffähig auf der Variante 1, basierend auf dem ATtiny2313.
    Sie arbeitet als einfacher Zubehördecoder, nur die Basic Packets werden ausgewertet, weder das DCC-Reset-Packet noch das Broadcast-Packet werden beachtet. Die Einstellung des Betriebsmodes und der Adresse erfolgt einfach durch Drücken der Programmiertaste und Senden eines Weichenbefehls.
    (Hinweis: für die Variante 2 gibt es einen Schaltdecoder mit CV-Programmierung und Lagerückmeldung)

    Es gibt folgende Modi:
      ModeFunktion
      0 Weichendecoder für Magnetantriebe, Pulsdauer 0,25s
      1 Weichendecoder für Magnetantriebe, Pulsdauer 0,5s
      2 Weichendecoder für Magnetantriebe, Pulsdauer 1s
      3 Weichendecoder für Magnetantriebe, Pulsdauer 2s
      4 Dauerdecoder für Lichtsignale, 4 Signale zweibegriffig
      5 Dauerdecoder für Lichtsignale, 2 Signale dreibegriffig, 1 Signal zweibegriffig
      6 Dauerdecoder für Lichtsignale, 2 Signale vierbegriffig
      7 Ampeldecoder

Die Programmierung

    Die Einstellung des Betriebsmodes und der Adresse erfolgt einfach durch Drücken der Programmiertaste und Senden eines Weichenbefehls. Der Inhalt des ersten empfangenen Befehls bestimmt dann Betriebsart und Adresse.
    1. Drücken des Programmiertasters für mind. 100ms, die LED beginnt zu leuchten. Dies zeigt an, das der Decoder zum Empfang eines Programmierbefehls bereit ist.
    2. Absenden eines Weichenbefehles. Der Decoder entnimmt seine Basisadresse aus diesem Befehl nach folgender Regel:

          Basisadresse = (gesendete Adresse - 1) / 4. (der Rest verfällt)

      Der Decoder ist dadurch folgende Adressen programmiert: Basisadresse * 4 + 1 bis Basisadresse * 4 + 4

      Der obige "Rest" wird zusammen mit der "Spule" (rot oder grün) verwendet, um die Betriebsart einzustellen:
        eingestellte Betriebsart
        0 2 4 6
               
        Weiche 1 Weiche 2 Weiche 3 Weiche 4
               
        1 3 5 7
    Beispiel: Senden des Weichenbefehls 18 rot stellt die Basisadresse 4 ein - der Decoder "hört" auf die Weichenadressen 17-20 und läuft im Mode 2.

Die Betriebsarten

    Generell gilt, das OpenDecoder keine Schaltpause zwischen einzelnen Befehlen braucht. Falls allerdings mehrere Magnetantriebe gleichzeitig geschaltet werden, so kann die Stromaufnahme der Ausgänge zu groß werden, so daß die Sicherung anspricht - Folge: die Magnetantriebe schalten nicht um. In diesem Fall ist eine Pause zwischen den Schalten der einzelnen Weichen einzuhalten.
  • Betriebsart 0, 1, 2, 3
    In diesen Betriebsarten werden Magnetspulen von herkömmlichen Doppelspulenantrieben für Weichen oder Signale geschaltet. Normalerweise sind diese Antriebe mit 3 Anschlüssen versehen, die wie folgt verdrahtet werden:

    In der Betriebsart 0 beträgt die Pulszeit 0,25s, in der Betriebsart 1 beträgt die Pulszeit 0,5s, in Betriebsart 2 beträgt die Pulszeit 1s und bei Betriebsart 3 beträgt die Pulszeit 2s.
    Sollen Motorweichen angeschlossen werden, so muß ein bistabiles Relais oder eine Transistorstufe am Ausgang nachgeschaltet werden, der Dauermode 5 ist hierfür nicht geeignet.
    Die Ausgänge (max. je 500mA) können auch mehrfach gleichzeitig geschaltet werden, jedoch darf der Gesamtstrom 1A nicht übersteigen. Daher sollte nach dem Schalten eine kleine Pause eingehalten werden, um die Stromlast zeitlich etwas zu verteilen.
    Der Decoder wertet nur die "Einschaltbefehle" aus, die Ausschaltbefehle werden ignoriert und durch die programmierte Impulsdauer ersetzt. Manche Zentrale wie z.B. die Intellibox (R) sendet auch gar keine Auschaltbefehle.
  • Betriebsart 4
    In dieser Betriebsart werden vier Lichtsignale als Dauerkontakt geschaltet.

    Sollte in den Betriebsarten 4-7 der Jumper gesteckt sein, dann wird der letzte geschaltete Zustand im EEPROM abgespeichert.
  • Betriebsart 5
    In dieser Betriebsart werden zwei Lichtsignale als 3-begriffiges Signale und eines als zweibegriffiges Signal geschaltet. Jeder Signalbegriff (Hp0, Hp1, Hp2) bzw. (Vr0, Vr1, Vr2) wird durch einen Dauerausgang dargestellt. Ein Begriff kann aus mehreren Leuchten bestehen, diesen werden parallel auf diesen Ausgang geschaltet. (Summe max. 500mA).

      Ausgangssignale [76543210]
      xxxxx001 xxxxx100 xx010xxx 01xxxxxx
      Signal1: Vr0 Signal1: Vr2 Signal2: Vr1 Signal3: Hp0
      1 2 3 4
      Signal1: Vr1 Signal2: Vr0 Signal2: Vr2 Signal3: Hp1
      xxxxx010 xx001xxx xx100xxx 10xxxxxx
    Die Ausgänge sind gemäß obiger Tabelle den Schaltbefehlen zugeordnet. Jeder Schaltbefehl schaltet genau einen Ausgang aktiv, wobei bei den dreiwertigen Signalen immer drei Ausgänge sich wechselseitig abschalten.

    Sollte eine einzelne LED in mehreren Signalbildern enthalten sein, so muß man beim Anschluß mittels Dioden eine "Oder"-Verknüpfung erzeugen.
    Beispiel:
      Beim DB Vorsignal gibt es zwei grüne und zwei gelbe Leuchten, die entsprechend nach Signalbegriff eingeschaltet werden:

      Die untere gelbe Leuchte ist bei Vr0 und Vr2 an, die obere grüne Leuchte ist bei Vr1 und Vr2 an. Also werden diese Leuchtdioden mit je einer Diode auf die entsprechenden Signalbegriffe verdrahtet, damit diese Leuchtdioden bei beiden Begriffen eingeschaltet sind. Die Dioden sind zur Entkopplung notwendig. (An dieser Stelle möchte ich auf die Signaldecoder Software hinweisen, die ohne Dioden und mit Überblendtechnik arbeitet.)


      So wird das Vorsignal angeschlossen.

    Ein gute Übersicht über die Signalbegriffe bietet: Christoph Schmitz, animierte Signale
  • Betriebsart 6
    In dieser Betriebsart werden zwei vierbegriffige Signale angesteuert, die Ansteuerung und gegenseitige Veriegelung entspricht der Betriebsart 5.
      Ausgangssignale [76543210]
      xxxx0001 xxxx0100 0001xxxx 0100xxxx
      Signal1: Hp0 Signal1: Hp2 Signal2: Hp0 Signal2: Hp2
      1 2 3 4
      Signal1: Hp1 Signal1: Sh1 Signal2: Hp1 Signal2: Sh1
      xxxx0010 xxxx1000 0010xxxx 1000xxxx
    Die Ausgänge sind gemäß obiger Tabelle den Schaltbefehlen zugeordnet. Jeder Schaltbefehl schaltet genau einen Ausgang aktiv, wobei sich hier immer vier Ausgänge wechselseitig abschalten.
  • Betriebsart 7
    In dieser Betriebsart können zwei Verkehrsampeln angesteuert werden. Beide Signale arbeiten unabhängig und können in folgende Betriebszustände geschaltet werden:
      Taste Wirkung
      1 Ampel 1 schaltet gelb, dann rot und bleibt rot.
      Der Stopmagnet wird in der Mitte der Gelbphase eingeschaltet.
      2 Ampel 1 schaltet rot+gelb, dann grün und bleibt grün.
      Der Stopmagnet wird etwas nach dem "grün" abgeschaltet.
      3 Ampel 1 schaltet ab (leuchtet nicht).
      Der Stopmagnet ist aus.
      4 Ampel 1 blinkt gelb.
      Der Stopmagnet ist aus; die Verkehrregelung übernimmt das Steuerprogramm.
      5 Ampel 2 schaltet gelb, dann rot und bleibt rot.
      Der Stopmagnet wird in der Mitte der Gelbphase eingeschaltet.
      6 Ampel 2 schaltet rot+gelb, dann grün und bleibt grün.
      Der Stopmagnet wird etwas nach dem "grün" abgeschaltet.
      7 Ampel 2 schaltet ab (leuchtet nicht).
      Der Stopmagnet ist aus.
      8 Ampel 2 blinkt gelb.
      Der Stopmagnet ist aus; die Verkehrregelung übernimmt das Steuerprogramm.
    Der Übergang von rot über rot-gelb nach grün und das anschließende Abschalten des Stopmagnets (und umgekehrt) geschieht durch einen einzigen Befehl. Ein steuerndes Computerprogramm muß also nur die Querstraße sperren und hier auf grün schalten.


    Anschluß der Ampel und des Stopmagneten

Download / Unterlagen:

    Die Software ist unter gnu public license freigegeben. Sollte jemand damit einen neuen Decoder bauen, würde ich mich freuen, wenn dieser auch hier veröffentlicht wird. Und Geld- bzw. Materialspenden sind auch herzlich willkommen ;-) - einfach per paypal an meine Mailadresse.

    Download Hexfile and Source Code (enthält sowohl 10MHz als auch 8MHz Version).

Links: