Pfad: Home => AVR-Übersicht => Anwendungen => DCF77
DCF77-Uhr

DCF77-Signalauswertung mit ATtiny24 und LCD-Ausgabe



Neue Version mit verbesserten Eigenschaften und vielen Extras gibt es hier.

Diese Anwendung eines AVR beschreibt die Signalauswertung des Zeitzeichensenders DCF77 (vulgo Atomuhr) mit einem kleinen AVR und die Ausgabe von Wochentag, Datum, Uhrzeit und Sommer-/Winter-Zeit auf einem zweizeiligen LCD-Display. Die Features:

0 Inhalt

1 Hardware

Schaltbild Die Schaltung ist denkbar einfach. Das LCD-Modul wird mit den beiden Ports PB0 und PB1, seine acht Datenleitungen vom Port A des Tiny angesteuert. Für die LCD-Helligkeitssteuerung gibt es noch ein kleines Potentiometer. Das DCF77-Empfangsmodul von Reichelt (Bestellnummer DCF77 MODUL, Preis z.Zt. &Euro;13,80) sitzt am INT0-Eingang des Prozessors, der hier auf Signale lauert. Die Stromversorgung erfolgt aus vier AAA-Akkus zu je 1,2 Volt nominell. Mehr braucht die Atomuhr nicht.

Auf der Platine ist auch noch ein ISP6-Wannenstecker verbaut, damit die Uhr in der Schaltung selbst programmiert werden kann.

Bei anderen Modulen ist Sollen statt Akkus Batterien verwendet werden, dann entweder nur drei Stück davon vorsehen oder ein bis zwei Kleinleistungsdioden 1N4148 in die Versorgungsleitung schalten.

Zum Seitenanfang

2 Aufbau

Hardware-Aufbau Die ganze Mimik wurde eine Plastikschachtel mit 16*8,2*2 cm Außenmaßen eingebaut. Darin wurde es etwas eng, so dass der LCD-Steckverbinder wegen seiner Höhe mit seitlichen Anschlüssen gewählt wurde und wegen der Platzverteilung die vier Akkus in zwei separaten Halterungen verteilt wurden.

Die anfänglich realisierte Befestigung der Halterungen mit M2,5-Schrauben wurde schnell wieder aufgegeben, da die Schrauben Kurzschlüsse zwischen den beiden Akkus in den Halterungen verursachen und wegen der Reduzierung der Beweglichkeit der Akkus in der Fassung einer schlüssigen Verbindung der Pluspole mit den Halterungspolen entgegenstehen. Die Lösung mit Kleber war aber anfänglich auch sehr wackelig, weil der Halterungskunststoff so gar nicht mit dem Lösemittel im Kleber konnte. Erst eine massive Aufrauhung der Halterungsunterseite brachte Stabilität in die Sache.

Als alles verbaut war und nach Programmierung des Tiny24 die LCD die Eröffnungsmeldung anzeigte, war die Enttäuschung riesengross, weil das DCF77-Modul von Reichelt so rein gar keine Signale von sich geben wollte. Das Projekt blieb deshalb erst mal ein Jahr lang unvollendet liegen. Nach dieser Karenzzeit wurde ein zweites Modul auf dem Basteltisch einem Test unterzogen. Auch dieses zeigte keinerlei Neigung, an seinem Ausgang irgendwelche Rechtecke zu produzieren. Vor lauter Frust habe ich dann beschlossen, Reichelt einen bösen Brief wegen des vertriebenen Murks zu schreiben. Und die Lampe am Basteltisch ausgeschaltet. Die Reaktion am - glücklicherweise - noch angeschlossenen und eingeschalteten Oszi kam prompt: schönste rechteckige DCF77-Signale in der vorgeschriebenen Dauer und Machart. Des Rätsels Lösung war also die Basteltischlampe. Untersuchungen mit einem Längstwellenempfänger zeigten, welche Durchschlagskraft an Störungen so eine Energiesparlampe vollbringen kann. Die Energiesparlampe produziert direkt neben dem Sendesignal von DCF77 bei etwa 80 kHz ein wahres Störfeuer und hat den nicht sehr selektiven DCF77-Empfänger in einem halben Meter Entfernung auf dem Basteltisch völlig zugestopft. Die Signalabsenkung bei DCF77 wurde von der Störquelle fast völlig wettgemacht. Diese Erkenntnis über Energiesparlampen im Längstwellenbereich dürfte der Startschuss zur Wiederaufnahme einiger früherer gescheiterter Versuche werden, für DCF77 einen eigenen, auf dem eigenen Mist gewachsenen Superhet-Empfänger zu entwickeln.

DCF77-Modul Damit waren aber immer noch nicht alle Probleme gelöst, denn das schon verbaute andere Modul gab auf dem Teststand auch bei abgeschalteter Basteltischlampe keine DCF77-Signale von sich. Der Fehler war nicht zu erkennen, weil der Hersteller der Module einen Alibikleber-Klecks auf die Antennenanschlüsse fabriziert hat. So war der abgerissene Antennendraht nicht erkennbar. Erst nach der Befreiung von dem Kleberklecks konnte das empfindliche und daher abgerissene Antennendrähtchen als Ursache identifiziert und wieder angelötet werden. Seither habe ich wieder zwei funktionierende Module und konnte dieses Projekt zu Ende entwickeln. Bei anderen, durchgängig billigeren Module als dem von Reichelt ist die Sensitivität der Antennenanschlussdrähte wesentlich besser gelöt.


Zum Seitenanfang

3 Software

Die Software ist natülich in Assembler geschrieben, sonst würde sie gar nicht in den Flashspeicher des AtTiny24 passen, der damit schon zu 75% gefüllt ist. Sie besteht aus zwei Teilen: Beide Dateien in das gleiche Verzeichnis ablegen und mit einem Assembler assemblieren, z.B. mit gavrasm, und den Hexcode in den Tiny überführen. Fuses des Tiny24 brauchen nicht geändert zu werden, wenn er im Herstellerzustand ist.

Der Quellcode ist ausführlich kommentiert und kann mit jedem Texteditor betrachtet werden. Es wird daher hier auf eine nähere Beschreibung der Funktionsweise verzichtet. Nur die entsprechenden Timingangaben sind in der folgenden Tabelle aufgelistet.
Timing beim DCF77-Receiver mit ATtiny24
BereichParameterGrößeResultatBedeutung
TaktRC-Oszillator8 MHz-Interner Oszillator
CLKPR81 MHzTaktfrequenz
TC0Vorteiler88 µs/TickTimertakt
CTC2502 ms/IntInterrupttakt
Register r250ms125250 ms/DurchlaufErster Teiler
Register r1s41 s/FlaggeZweiter Teiler
TC1Vorteiler1.0241,024 ms/TickTimertakt
DCF77-Low-Dauer Null100 ms97Zählerstand bei Null
DCF77-Low-Dauer Eins200 ms195Zählerstand bei Eins
DCF77-High-Dauer 59 nach Null1.900 ms1.855Zählerstand bei Pause nach Null
DCF77-High-Dauer 59 nach Eins1.800 ms1.757Zählerstand bei Pause nach Eins
Mindestdauer Datensignal50 ms48Mindest-Zählerstand bei Null/Eins
Mindestdauer Eins-Signal150 ms146Mindest-Zählerstand bei Eins
Mindestdauer Pausensignal1.500 ms1.464Mindest-Zählerstand bei Pause
Maximaldauer Pausensignal2.000 ms1.953Maximal-Zählerstand bei Pause


Zum Seitenanfang

©2015 by http://www.avr-asm-tutorial.net