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