AVR - DCF77 Uhr

 

Nachdem mich der Webserver einige Zeit beschäftigt hat, hier mal wieder ein neues Projekt. Dieses mal ein DCF77 Empfänger (Conrad) an einen Atmel. DCF wird von der Physikalisch-Technischen Bundesanstalt (PTB) Braunschweig betreut, und sendet seit 1959 eine Normalfrequenz und seit 1973 zusätzlich Datum und Uhrzeit. Das DCF77 Signal kommt aus Mainflingen in der nähe von Frankfurt. Die Sendeleistung beträgt 50kW. Die Zeitinformationen, die diese Station sendet, sind hochgenau, die Abweichung beträgt ca. 1 Sekunde in 300.000 Jahren. Bei jeder Sekunde wird ein Bit übertragen. Dabei wird genau am Anfang einer Sekunde, der Träger (Langwelle 77,5 kHz) auf 25% Trägeramplitude abgesenkt entweder 100ms oder 200ms lang. Das bedeutet ein Trägerabsenkung von 100ms Pulsweite ist eine logische "0" und eine Trägerabsenkung von 200ms eine logische "1". In der 59 Sekunde erfolgt zur Syncronisation keine Trägerabsenkung also keine 0 oder 1. Der Anschluß des DCF77 Empfänger erfolgt an Interrupt0 mit einen 10KOhm Widerstand nach VCC (+5V).

 

 

 

Die Sekundenmarken 1 - 14 wurden bisher für Betriebsinformationen verwendet, die nicht für DCF77 - Nutzer bestimmt sind, neuerdings verwendet Meteotime diese Bits für Wetterdaten. Diese Daten sind verschlüsselt und nicht ohne weiteres zu verwenden. Die Sekundenmarken 15 bis 19 informieren über die verwendete Sendeantenne, die Zeitzone und kündigen Beginn und Ende der Sommerzeit sowie Schaltsekunde an. Von der 20. bis 58. Sekunde wird die Zeitinformation für die nächste Minute übertragen. 

 

    Bit                   Bedeutung
    0                      Minute beginnt immer mit 0
    1-14                (Wetterdaten von Meteotime verschlüsselt)
    15                    0=Normalantenne, 1=Reserveantenne
    16                    1=Am Ende dieser Stunde wird MEZ/MESZ umgestellt
    17                    0=MEZ, 1=MESZ
    18                    0=MESZ, 0=MEZ
    19                    1=Am Ende dieser Stunde wird eine Schaltsekunde eingefügt
    20                    Startbit ist immer "1"
    21-27              Minute
    28                    Parität der Minute
    29-34              Stunde
    35                    Parität der Stunde
    36-41              Monatstag
    42-44              Wochentag
    45-49              Monat
    50-57              Jahr
    58                    Parität Datum
    59                    Weder "0" noch "1" Sync

 

 

Hier ist noch der Source Code für einen Atmel Mega8/88/32, durch anpassen der Register (Interrupt) kann dieser auch für andere AVR´s benutzt werden.

Source Code Version1.6 für AVR - GCC (16.11.2009)

 

Was bedeutet nun DCF77? Also das "D" steht für Deutschland, "C" für den Langwellenbereich, "F" für die nähe Frankfurts und 77 für die Trägerfrequenz 77,5kHz.