SX-Modell-Uhrzeit

Frank Keil, ein versierter H0-Modellbahner, hat mich vor einiger Zeit gefragt,
ob ich auch Uhrzeit-Module programmiert habe.

Zum damaligen Zeitpunkt hatte ich noch nicht, ein Grund mehr, es zu versuchen.
Nach SX1-Standard wird die Uhrzeit, in Stunden und Minuten im Kanal 111
geführt, mit Bit 7 (128) zur Unterscheidung der Uhrzeitwerte.

Weil auch Modellbahn-Freaks nur begrenzte Geduld und Zeit aufbringen, sollte
die Modellbahn-Hauptuhr mit einstellbarer Geschwindigkeit laufen und einen
wählbaren Tageszeit-Abschnitt wiederholen. Damit sind die Parameter für das
Hauptuhrmodul festgelegt:

1.    Startzeit in Stunden und Minuten
2.    Überlaufstunde
3.    Dauer einer "Modellbahn-Minute" in Sekunden Normalzeit.

Das Einstellprogramm sieht deshalb so aus:









      Zeitfaktor 20




    Speichern im EEPROM







Die benötigte Hardware ist minimal. Ein Tiny2313 auf dem Servo-Platinchen eignet
sich ganz gut, weil auch die Programmiertaste und die beiden Betriebs-LED
vorhanden sind.

Der Kanal 111 wird in neueren Zentralen mehrfach genutzt. Auf der Datenleitung, von der
Zentrale ist im Lo-Nibble die aktuelle Busnummer, im Hi-Nibble die Nummer des
aktuellen Grunrahmens des SX-Bus (00 bis 15) geführt.

Die Datenleitung zur Zentrale kann von einem Modellzeit-Hauptuhrenmodul beschrieben
werden. Die Uhrzeit wird aber nicht in der Zentrale gespeichert. Deshalb ist es notwendig,
die Stunden und Minuten abwechselnd in jedem SX-Zyklus auf den Bus zu schreiben.

Module, die die Modellzeit auslesen wollen, müssen deshalb als Datensignal die
Schreibleitung zur Zentrale verwenden und mit dem Lesen solange warten, bis die
Hauptuhr geschrieben hat. Ich warte ca. 18 Mikrosekunden.

Weil die Schreibleitung gelesen wird sind die "schlechteren" Pegel zu beachten.
Log. Hi ist nicht mehr nominal 5V, sondern wegen dem Spannungsteiler zwischen den
beiden Datenleitungen (470R - 100R) nur noch 4,2 V bzw 0,9 V für Lo. Ergo ist es sinnvoll
einen Komparator mit 2,5 V Schwelle zu verwenden, um dem AVR systemgerechte
Signale zuzuleiten.

Das SX-Uhrzeit-Anzeigemodul

erfüllt den Zweck einer Nebenuhr am SX-Bus und zeigt nur die aktuelle Modellzeit an.
An großen Modulanlagen mit mehreren Betriebsstellen kann das auch nützlich sein.

Als Anzeige habe ich das EA DOGM081E-A von Electronic Assembly mit dem LED-Backlight
EA LED55x31-A (amberfarben und preiswert) vorgesehen.
Diese Komponenten habe ich schon mehrfach verwendet, weil sie nur 5V als Betriebsspannung
brauchen und direkt mit einem 8-Bit Port des AVR-Mikro angesteuert werden können.

Die Initialisierung und der Betrieb ist im 4-Bit parallel-Mode etwas "tricky". Die Beschreibung
des intern verwendeten Controllers ST7036 enthält aber Flussdiagramme und Beispielcode
für 8051 Prozessoren an denen ich mich orientiert habe. Hilfreich sind auch die Software-
Module von Ulrich Radig zum Verständnis.
Bisher habe ich die EA-Anzeigen an Mega644 Mikros betrieben. Für die Uhrzeitanzeige ist
aber der Mega8 ausreichend. Als ich die Tücken des STK500-Sockel für den Mega8
erkannt hatte, war ich einigen Frust wieder los. Der vollständige Port B steht nämlich nicht an dem
10-plg. Pfostenstecker zur Verfügung. PB6 und PB7 sind auf den Stecker von Port E geführt
und haben dort die Bezeichnung XTAL1 und XTAL2. Das ist nicht ganz falsch, weil diese
Pins die Anschlusspunkte für den optionalen Quarz sind. Nur wenn der Mega8 mit seinem
internen Oscillator betrieben wird, sind alle 8 Bit des Port B zu verwenden, zwei davon auf
Port E Stecker.


Warum die EA-Anzeige reichlich langsam ist, konnte ich noch nicht herausfinden. In der Endlos-
schleife ist das die einzige Funktion, die Geschwindigkeit spielt keine Rolle. Kanal 111 wird
in jedem SX-Zyklus gelesen, die Stunden und Minuten im Interrupt aktualisiert.

Bleibt noch einen Hinweis zu geben, der die mechanische Empfindlichkeit der "Chip on Glass"
Technologie betrifft. Stecken die Pins erstmal in der 20-plg.Buchsenleiste, hat man seine
"liebe Mühe" sie wieder herauszubekommen ohne die Anzeige zu zerstören.

Die Hardware besteht nur aus wenigen Bauteilen und ist auf einer Lochrasterplatine gut zu
machen. Ein "schönes" Gehäuse ist sowieso Geschmackssache. Ich habe keines !



Das Einstellprogramm  und die Projektdateien maile ich auf Anfrage.

Jonathan Bohmer, im März 2009, akt. im März 2011