DCF77 Funkuhr

p01_geraet_an.jpg
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.

 

p02_display.jpg
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).

 

p02_testaufbau.jpg
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)

Kommentare:

Thomas am 29.08.2013 - 14:11
Hallo,

habe gerade meinen Nachbau hiervon fertig: Die Atmega8-Variante - lief auf Anhieb. Wegen des externen Quarzozillators muss mann alle 4 CKSEL Fusebits setzen und sonst alles auf Default lassen. Das Assemblerprogramm ist wirklich sehr gut kommentiert. Als Display habe ich ein TC1602E-01 von Pollin verbaut und hierfür auch eine Platine mit Eagle erstellt.

Gruß
Thomas

Cabal am 26.04.2012 - 19:37
Hallo Jürgen,
Wenn ich das noch richtig in Erinnerung habe, spielt für die Uhr nur CKSEL eine Rolle. Wie das in Ponyprog aussieht weiss ich nicht kenne nur das AVR Studio.
Gruß Cabal

Jürgen Adler am 26.04.2012 - 19:17
hallo,
beschäftige mich gerade mit dem Nachbau der Uhr.Welche Fuses müssen bei Ponyprog abgehakt werden?
mfg Jürgen

Jürgen am 11.02.2011 - 17:03
Hallo Cabal,ich habe heute das DCF-Modul an die Uhr angeschlossen und alles läuft bestens.
Gruß
Jürgen

Cabal am 10.02.2011 - 21:21
Es gibt keine 1.04 es gibt nur eine 1.02 und eine 2.0. Die sind aber funktional identisch und unterscheiden sich nur durch den Controller für den sie gebaut sind.

Gruß Cabal

Jürgen am 10.02.2011 - 15:52
Danke Cabal für deine schnelle Anwort.Wo kann ich die Firmware v.104 downloaden ?
Gruß
Jürgen

Cabal am 10.02.2011 - 15:22
Ja das ist normal das Programm wartet an der Stelle auf das Signal das den Beginn der Minute markiert. Wenn kein DCF Modul dranhängt wartet er an der Stelle natürlich ewig.
Gruß Cabal

Jürgen am 10.02.2011 - 14:21
Hallo,ich habe die Uhr mit dem AT90S4433 nachgebaut.Leider habe ich noch kein DCF-Modul.Nach dem einschalten zeigt das Display "Bitte warten" Firmware:V1.02.Ist das ok.so ?
Viele Grüße
Jürgen

ratalert am 05.03.2009 - 13:43
Hi,

tolles Projekt kann man das ganze auch beispielsweise mit einem ATMEGA16 realisieren?

Hast du dazu eine Platine geätzt / ätzen lassen oder ist alles auf Lochraster aufgebaut?

Grüße,
ratalert

Swod am 04.11.2007 - 11:33
Hallo Christian,

der Quellcode steht nur als .asm zur Vefügung. An dem Projekt wird bis auf weiteres nicht weitergearbeitet. Sollte es eine Portierung in C geben, wird der Quellcode dann ebenfalls zum Download bereitgestellt.

Gruß Swod

christian am 03.11.2007 - 02:36
hallo!
ich bin gerade dabei die uhr nachzubauen und es läuft auch soweit ganz gut. allerdings werd ich aus dem prog. nicht ganz schlau. ist zwar schön wenns am ende funktioniert aber ich würds doch gerne verstehen. deshalb ist meine frage ob es von dem prog. ein c-file giebt. ich wäre sehr dankbar wenn ihr/ sie diese mir zur verfügung geben könnten/t.
mfg christain

Marcel am 28.11.2005 - 23:22
Super Software und Hilfe von Cabal.
Eine Weckfunktion wäre schön. 3 Tasten sind ja vorbereitet.
Alarm, Stunde / Minute stellen.

 Kommentieren Sie diesen Artikel 
Ihr Name:
Ihre E-Mail-Adresse:
   optional
Ihr Kommentar:
 
This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)