Hallo zusammen,
nachdem auch immer wieder Fragen zur Programmierung des erweiterten Funktionsmappings des Piko SmartDecoder 4.1 kommen, möchte ich hier meine Erkenntnisse weitergeben. Ich hoffe es ist am Ende für alle, die es interessiert nachvollziehbar.
Im Gegensatz zum XP 5.1 sind beim 4.1 eigentlich alle Informationen in der Anleitung des jeweiligen Sounddecoders, auch wenn es vielleicht nicht immer so leicht nachvollziehbar ist.
Die nachfolgenden Erkenntnisse beruhen auf verschiedenen Piko Soundprojekten, z.B. Nummer 56458 für die BR143, 56422 für die E18 und 56423 für die BR151.
Auch hier kann man wie beim XP 5.1 die SmartProgrammer App auch ohne den Smartprogrammer nutzen. In der App kann man die Projektdatei seiner Lok aus der Piko Datenbank laden und dann offline (ohne Programmer) bereits Änderungen an den Funktionen durchführen. Da in der App auch die sich ändernden CV's angezeigt werden, kann man es sich so sparen, die Werte der einzelnen CV's selbst auszurechnen
Parallel zu der App lese / programmiere ich die CV's mittels ESU Lokprogrammer um die Darstellung in der Projektdatei nachzuvollziehen.
Damit das erweiterte Funktionsmapping verwendet wird, muss
CV96: 1
gesetzt werden. Bei den meisten Projekten mit Sound ist das erweiterte Funktionsmapping ab Werk aktiviert.
Um entsprechende Änderungen in dem Speicherbereich des erweiterten Funktionsmappings (Bank 1) durchführen zu können, müssen zunächst 2 CV's nacheinander geschrieben werden:
CV31: 8
CV32: 0
Danach können im Bereich CV257 bis CV 512 die entsprechenden Funktionen programmiert werden.
Beim 4.1 gibt es pro Programmzeile immer 16 zugehörige CV's. Diese sind für die Werkseinstellung auch in der Anleitung dargestellt, meist auf den letzten Seiten im Abschnitt „CV – Tabelle zur Programmierung der Banken 1 -4“.
Um die Programmierung nachzuvollziehen, ist auch etwas Erfahrung mit Binärcodes erforderlich.
Jede CV besteht aus 8 Bits, die den Wert entsprechend der Potenzreihe von 2 haben, wenn das entsprechende Bit mit "1" aktiviert ist:
Bit 0: Wert = 1
Bit 1: Wert = 2
Bit 2: Wert = 4
Bit 3: Wert = 8
Bit 4: Wert = 16
Bit 5: Wert = 32
Bit 6: Wert = 64
Bit 7: Wert = 128
Mit allen Bits zusammen kann man dann Werte zwischen 0 und 255 darstellen, je nachdem welches Bit aktiviert ist.
Beim 4.1 werden alle CV's als Schalter für verschiedene Einstellungen verwendet.
16 CV’s je Zeile mit folgenden Einstellungen:
1.-6. CV: Bedingungen für „EIN“, z.B. Funktionstasten
7.-12. CV: Bedingung für „AUS“, z.B. Funktionstasten
13.-16. CV: Definition der Ausgänge, die geschaltet werden
Die erste Zeile hat z.B. die CV’s von 257 bis 272, jede weitere Funktionszeile dann die jeweils nächsten 16 CV’s bis zu 512. Wenn die CV’s bis 512 nicht reichen, gibt es auch noch eine Bank 2 (CV31: 8, CV32: 1). Dort sind aber ab Werk selten Funktionen hinterlegt.
Zu den einzelnen CV’s je Zeile:
Die einzelnen Eigenschaften werden jeweils durch setzen des Wertes "1" aktiviert. Mehrere Bits können beliebig kombiniert werden (solange das sinnvoll erscheint)
Bedingungen für EIN:
1.CV: z.B. 257
Bit 0: F1 (Funktionstaste F1)
Bit 1: F2
Bit 2: F3
Bit 3: F4
Bit 4: F0
Bit 5: n.b.
Bit 6: Fahrt (Lok fährt)
Bit 7: Vorwärts (Richtung ist vorwärts)
2.CV: z.B. 258
Bit 0: F5
Bit 1: F6
Bit 2: F7
Bit 3: F8
Bit 4: F9
Bit 5: F10
Bit 6: F11
Bit 7: F12
3.CV: (z.B. 259) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F13 bis F20
4.CV: (z.B. 260) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F21 bis F28
5.CV: (z.B. 261) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F29 bis F36
6.CV: (z.B. 262) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F37 bis F44
Das Bit für die zu aktivierenden Funktionstasten / Bedingungen für „EIN“ wird jeweils auf „1“ gesetzt, nicht verwendete Funktionen haben den Wert „0“.
Wenn z.B. bei Richtung „vorwärts“ die Funktionstaste F3 verwendet werden soll, muss bei der ersten CV des 16er Blocks das Bit 2 und das Bit 7 auf „1“ gesetzt werden, was den Binärwert von 4+128=132 als Wert der CV ergibt.
Bedingungen für AUS:
Zusätzlich können noch Bedingungen definiert werden, die „AUS“ sein müssen, damit der entsprechende Ausgang geschaltet wird. Am Ende müssen sowohl die „EIN“ als auch die „AUS“ Bedingungen erfüllt sein, damit der entsprechende Ausgang geschaltet wird.
Die Aufteilung der Bedingungen für „AUS“ ist analog zu "EIN", d.h. die 1. CV für EIN ist von der Belegung identisch zur 7. CV für die Bedingung bei AUS:
7.CV: z.B. 263
Bit 0: F1
Bit 1: F2
Bit 2: F3
Bit 3: F4
Bit 4: F0
Bit 5: n.b.
Bit 6: Fahrt
Bit 7: Vorwärts
Wenn eine Funktion z.B. beim Rückwärtsfahren aktiviert werden soll, muss bei Bedingung aus Bit 7 „vorwärts“ gesetzt werden, was heißt: Ist erfüllt, falls nicht vorwärts.
Ansonsten sind die „AUS“ Bedingungen die folgenden:
8.CV: (z.B. 264) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F5 bis F12
9.CV: (z.B. 265) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F13 bis F20
10.CV: (z.B. 266) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F21 bis F28
11.CV: (z.B. 267) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F29 bis F36
12.CV: (z.B. 268) - Bit 0 bis Bit 7 entsprechen den Funktionstasten F37 bis F44
Definition der Ausgänge (13.-16. CV)
Die in der Zeile (1. bis 12. CV) gesetzten Bedingungen aktiveren die Ausgänge / Funktionen, die in der 13. bis 16. CV definiert sind wie folgt:
13. CV: (z.B. 269)
Bit 0: A1 (Ausgang A1 = AUX1)
Bit 1: A2
Bit 2: A3
Bit 3: A4
Bit 4: A5
Bit 5: A6
Bit 6: A7
Bit 7: A8
14. CV: (z.B. 270)
Bit 0: A0v (Ausgang Licht A0 vorne)
Bit 1: A0h (Ausgang Licht A0 hinten)
Bit 2: S-CLK (Ausgang SUSI CLK)
Bit 3: S-Data (Ausgang SUSI Data)
Bit 4: ABV (Bremsverzögerung 1 aus)
Bit 5: ABV2 (Bremsverzögerung 2 ein)
Bit 6: ABV3 (Bremsverzögerung 3 ein)
Bit 7: RG (Rangiergang)
15. CV: (z.B. 271) – 2. Dimmung der jeweiligen Ausgänge aktiv
Bit 0: A0 2. Dimmung
Bit 1: A1 2. Dimmung
Bit 2: A2 2. Dimmung
Bit 3: A3 2. Dimmung
Bit 4: A4 2. Dimmung
Bit 5: A5 2. Dimmung
Bit 6: A6 2. Dimmung
Bit 7: A7 2. Dimmung
16. CV: (z.B. 272)
Bit 0: Cross (Cross-Bit für PWM-modulierte Ausgänge)
Bit 1: S-F22 (Funktion F22 der SUSI-Schnittstelle)
Bit 2: S-F23
Bit 3: S-F24
Bit 4: S-F25
Bit 5: S-F26
Bit 6: S-F27
Bit 7: S-F28
Alle nicht verwendeten Bits haben den Wert "0", so dass in der Regel bei einem 16er Block auch einige CV’s den Wert „0“ haben.
Am Beispiel der ersten Zeile (CV 257 bis CV 272) mal ein Beispiel: Die Funktionstaste F2 soll bei Vorwärtsfahrt den Ausgang A2 (AUX2) schalten, solange die Funktion F6 (z.B. Rangiergang) nicht aktiviert ist. Folgende CV’s müssen dann ungleich „0“ sein:
CV257 (Bedingung EIN): 2+128=130 für F2 (Bit 1) + vorwärts (Bit 7)
CV264 (Bedingung AUS): 2 (F6 = Bit 1)
CV269 (Ausgänge): 2 (Ausgang A2 / AUX2 = Bit 1)
Wenn man mit dem Programmieren der erweiterten Funktionen fertig ist, sollte man die Zeiger wieder zurücksetzen, d.h.:
CV31: 0
CV32: 0
Ich hoffe, ihr könnt mit der Beschreibung etwas anfangen, ansonsten könnt ihr bei Fragen auch gerne hier schreiben.
Viele Grüße
Michael