![]() |
GenuhR
[Firmware]![]() |
Der eingesetzte Controller ist
vom Typ 80C32, die ROM-lose CMOS-Variante des legendären 8052 (Bild). Der
Controller verfügt über 256 Byte internen RAMs und kann je
nach Ausbaustufe bis zu 64KB externen Programmspeichers adressieren.
![]() Stücke der Firmware, die den Schaltplan betreffen, werden jedoch kurz angesprochen. Dazu gehört als ersten einmal IC1 eine Resetlogik mit integriertem Watchdog. Der Watchdog-Timer muss ständig mittels Impulsen auf der /STB-Leitung zurückgesetzt werden. Bleibt ein Impuls auf /STB länger als 1,2 Sekunden (ca.) aus, führt IC1 einen Reset aus (RST- und /RST-Leitung). Damit sorgt IC1 dafür, dass sich der Controller stets in einem kontrollierten Zustand befindet. Dann ist da noch IC5, die Echtzeituhr. Sie wird durch die DCF-Uhr gestellt und sorgt dafür, dass bei Wegbleiben der Betriebsspannung die Uhrzeit weiterläuft (Gangreserve). Mit an Board des Echtzeituhr-Chips sind noch eine Reihe frei verfügbarer Speicherbytes, die von der Firmware zur Speicherung persistenter Daten wie z.B. die Weckzeiten eingesetzt werden. Wie lange die Gangreserve reicht, hängt von der Stromzufuhr an Pin 3 (VBAT) ab. Häufig wird der Uhrenchip mit einer 3V Lithiumzelle für mehrere Jahre am Leben gehalten. Das ist für die GenuhR jedoch nicht notwendig, da nach Wiederkehr der Betriebsspannung und bei korrektem Funkempfang Datum und Zeit nach spätestens zwei kompletten Minuten wieder verfügbar sind. Der hier eingesetzte Gold-Cap-Kondensator reicht immerhin dafür, mehrere "stromlose" Tage überbrücken zu können. Die Kommunikation mit dem Controller findet mittels I²C-Bus statt. Dieser von Phillips in den 80ern entwickelte universelle Datenbus ist gut durchdacht und findet sich quasi heute in jedem Gerät der Konsumelektronik wieder. Viele Chips stellen ihre Funktionalität über diesen Bus zur Verfügung. So auch der externe Thermosensor der GenuhR. Da es sich bei dem Name "I²C" um ein eingetragenes Warenzeichen handelt, wird der Bus bei anderen Herstellern auch unter der Bezeichnung "Two-Wire-Bus" geführt. Der 80C32 hat keine spezielle Hardwareunterstützung für I²C. Da die Hardwareanforderungen an die Buspegel aber extrem einfach sind (Pull-Ups R8 und R9), ist das Busprotokoll komplett in Software realisiert (Bit-Banging). Der 80C32 übenimmt dabei die Rolle des "Singel-Masters". Tiefergehende Informationen zum Thema I²C gibt es überall auf dem Netz. Ebenfalls sehr ergiebige Informationen finden sich auf dem Netz zum Thema Funkzeit. Der Hintergrund: Die offizielle deutsche Zeit wird von der Physikalisch-Technische Bundesanstalt in Braunschweig mit ihren Atomuhren festgelegt. Diese Zeitinformation wird dann über einen Langwellensender in der Nähe von Frankfurt a.M. (Rufzeichen DCF77) ausgestahlt. Überall im Empfangsgebiet, das sich auf bis zu 1500km im Umkreis des Senders erstreckt, können passende DCF77-Empfänger die übertragene Zeitinformation entgegen nehmen. Ein solcher Empfänger ist das hier eingesetzt DCF-Modul vom Typ BN 641138. Die Funkzeit beinhaltet neben der Zeit, auch den Wochentag und das Datum. Alle Informatonen werden innerhalb einer kompletten Minute mit einem Bit pro Sekunde übertragen. ![]() Dabei lässt das Kodierschema der Funkzeit die 59. Sekunde ausfallen (weder '0' noch '1'). Dieses ternäre Signal dient als Synchronisationsmarke, die den Beginn einer neuen Minute kennzeichnet. Danach wird in jeder Sekunden ein Bit der Funkzeitinformation übertragen. Die Daten sind nach folgendem Schema kodiert: ![]() |
|