DCF77 Funkuhr
- Abb. 1 - Die Uhr im Endstadium
Dieses Projekt ist das Erste, welches ich mit einem AVR komplett selbst realisiert habe.
Es war in erster Hinsicht dazu gedacht den Controller zu verstehen und mich ernsthaft mit
Assembler auseinanderzusetzen. Zugegeben die Idee ist nicht ganz neu aber mich hat die Arbeit
an diesem Projekt ein ganzes Stück voran gebracht. Zur Zeit ist die Entwicklung der Software
abgeschlossen das heisst, dass die aktuelle Version (1.04) die erforderlichen Funktionen gewährleistet.
Die Uhr ist soweit störfest, dass sie Bitfehler im Zeitzeichen erkennen kann und ausserdem auch ohne DCF
Signal sehr genau weiterläuft.
Auf Bild 1 ist die fertige Uhr zu sehen. Das Gehäuse besteht aus zwei Plexiglasscheiben, eine vor und eine
hinter der Platine. Seitlich ist die Platine somit voll zugänglich und man hat zugriff auf die Taster, dem
Poti zur Kontrasteinstellung und den ISP Anschluss.
- Abb. 2 - So wird die Zeit angezeigt
Bild 2 zeigt die Uhr in Funktion. Die Anzeige ist ziemlich selbsterklärend.
Zur Funktion: Nach dem Anlegen der Betriebsspannung erscheint zuerst die Meldung "Bitte warten" und die Version der Software
im Display. Wenn das fehlende Signal zur 59. Sekunde empfangen wurde, läuft die Uhr los mit 00:00.00 und zählt die Sekunden hoch.
Die obere gelbe LED blinkt dabei im Rhythmus des Zeitzeichens somit ist eine einfache Empfangskontrolle möglich. Dieser Zustand
bleibt solange erhalten bis 2 aufeinander gültige Uhrzeiten empfangen wurden (d.h. der Wert der aktuell empfangenen Minute ist um
eins grösser als der der vorherigen Minute).
- Abb. 3 - Der Testaufbau
Danach geht die Uhr in den Status synchron die gelbe LED bleibt aus und die obere Grüne leuchtet auf. Immer zur vollen Stunde
setzt sich die Uhr selbst auf den Status unsynchron zurück und stellt sich neu. Auf diese einfache Weise wird eine Datumsänderung
und der Wechsel zwischen MEZ <-> MESZ erkannt.
Bild 3 zeigt die Entwicklungsumgebung bestehend aus Display, AVR Controller Board, dem Zeitzeichenempfänger und einer kleinen
Zusatzplatine, die verschiedene Betriebszustände anzeigt. Herzstück ist wiedermal der AT90S4433. Sicherlich etwas zu gross für
diese Applikation. Allerdings soll die Software noch um ein paar nette Spielereien erweitern werden. Zum Beispiel:
- manuelles stellen der Uhr
- verschiedene Anzeigemodi
- auswahl anderer Zeitzonen
- bessere Sommer/Winterzeit Umstellung
Dateien zum Projekt:
Der Schaltplan zur Uhr (.gif 25kB)
Ein kleines Testprogramm. Es gibt das Zeitzeichen binär auf dem UART aus (.zip 6kB)
Das Rahmenprogramm einer frei laufenden Uhr (.zip 9kB)
Quellen der fertigen Software (.zip 32kB)
Firmware der Uhr für den atMega8 (.zip 32kB)
Foto der Funkuhr nachgebaut von Mario Tautenhahn (.jpg 105kB)