das Thema Zuverlässigkeit DCF77 ist immer noch eine Diskussion wert
Grundsätzlich: Es gibt keine DCF77 Uhr. Es ist ein Langwellenzeitzeichensender .
Das DCF- Signalist gedacht um ein Zeitmesser mit genauen Werten Voreinzustellen und nicht als eine Echtzeituhr zu betrachten.
Nun kommen meine praktischen Neuzeiterfahrungen auch noch dazu die natürlich sehr einfach erklärt sind.
Es geht los:
Von der Qualität her konnte ich nur ein Antennenmodul als unbrauchbar erkennen(da war ein billig Quarz verbaut. Getestet die von Reichelt, Pollin und Conrad. Die haben alle den gleichenEmpfängerchip drauf der sehr empfindlich ist. Diese Module sollen ja ein sehr geringen Leistungsverbrauch haben. Somit muss sehr großen Wert auf Betriebsspannung gelegt wertenstabile 3 Volt waren beiallen Modulen optimal. Obwohl einige mit andere Spannungen im Zulassungsbereich funktionierten. Alle benötigen aber eine stabile Betriebsspannung. Eine sehr, sehr kurze Schwankung startet den internen PLL. Solange er nun wiederversucht die optimale Trägerfrequenz einzuregeln ist erst mal Schluss mit Demodulation und wenn es dumm kommt rastet derEmpfänger völlig falsch ein.
Somit ist erst mal das allerwichtigste. Dafür zu sorgeneinSchwangung von > +- 50mV und Ripple von 10mVeff zu vermeiden.
Nun kommt noch die sehr schwache Ausgangsbelastung ins Spiel. Oft wird vermutetder Pegel reicht nicht und wird zum Teil mitaufwendigen Schaltungen angehoben und dabei erreichen diese genau das Gegenteil weil deren Einganswiderstand zu gering ist. Also so wenig wie möglich den Ausgang belasten. Er liefert ja auch den PLL die „Regelgröße“. Somit haben meine Praxistestauch als Übeltäter den Einganswiederstand der verschiedenen AVR/Ports festgestellt. Kennen wir ja „bei mir geht es warum bei dir nicht“. Hier geht es umµA< 2 da kann schon der interne Pull Up ungewollt eine zu große Last sein wie auch ein einfaches Messgerät.Also um erst mal al dies auszuschließen benutze ich die sehr einfache aber zuverlässige Schaltung.Schaltung.jpg
Die LED am Ausgang ist bestimmt hilfreicher wie ein teures Messgerät. Blinkt sie stabil in Sekundentakt( na ja pro Minute ist eine Pause sichtbar) kann man erwarten das modulierte Signale ankommen die Sekundenflanke wird erkannt. Wenn nicht Antennenmodul ortsverändern. Alles andere macht erst mal keinen Sinn.
Oft wird vermutet Empfang ist zu schwach ist abermit ordentlicher Anwendung und Ausrichtung der Antennenicht mal in 1000 km Entfernung von Mainflingen der Fall. Die int. Reglung sorgt dafür das Schwankungen der Feldstärke ausgeglichen werden. Natürlich gib es Ausnahmenwerden als Funkloch bezeichnet und können auch nur sehr kurzlebig sein.
AberStörungen sind anders zu betrachten. Ob es Störungen sind sieht man am besten miteinem kleinen Bascomcode der in der Terminalanzeige, zeigt ob demodulierte Informationen auch richtig dekodiert werden. Nebenbei bemerkt da kann man auch die Wetterdaten erkennen.
Die Reglung die ich mit PLL bezeichne hat eine lange Einschwingzeit >10 s. Somit ist es begründet warum nach dem Einschalten die Signal LED wirres oder nichtsanzeigt
Trägerfrequenz muss doch erst mal ein vergleich mit der Referenzfrequenz durchführen und sich das Ergebnis für Signalfreigabe merken. Wird in dieser Zeit Antenne verändert benötigt es wieder diese Zeit. Also bissel Geduld beim ausrichten.
Im Dauerbetrieb ist es nicht so schlimm da Signalfreigabe erteilt wurde, es sei denn die Signalfrequenz driftet, dann wird in sehr kurzer Zeit nachgeregelt. Diese kleine Demudolierungspause ist unkritisch zu Berücksichten ist ein Pegelwechsel kann bis zu 360msdauern.Aber wenn wie Oben beschrieben nur eine kleine Betriebsspannungsschwankung kommt ist es ein Verhalten wie Neueinschalten. Alles muss erst wieder in Tritt kommen bevor decodiert werden sollte.
Es wird nur jede Minute einTelegramm gesendet Und dazwischen ist Pause. Ein festen Abtastzeitpunkts kann es Logischerweise nicht geben also sollten immer 2 Minuten eingeplant werden. Ein guter Decoder wie es die DCF77 Lib istnimmt sich die Startzeit bevor er die Daten an eine Uhr weiter gibt.
Alles anzeigen
Edit log Ausschnitt
demodu 00000000
time date
DCF: 00:00:00 00.00.00
Clock: 00:00:00 00.00.00
demodu 00000000
time date
DCF: 00:00:01 00.00.00
Clock: 00:00:00 00.00.00
demodu 10000000
time date
DCF: 00:00:01 00.00.00
Clock: 00:00:00 00.00.00
demodu 00110101
time date
DCF: 13:53:58 17.01.19
Clock: 00:04:30 00.00.00
demodu 00110101
time date
DCF: 13:53:58 17.01.19
Clock: 00:04:30 00.00.00
demodu 00110101
time date
DCF: 13:53:58 17.01.19
Clock: 00:04:31 00.00.00
Uhrzeit erfolgreich synchronisiert! 13:53:00 17.01.19
S7 1
S6 1
Uhrzeit synchronisiert! 13:53:01 17.01.19
Hoffe mich verständlich ausgedrückt zu haben und somit häufiggestellte Fragenbeantwortet werden.
Warum gibt es denn so ein PweronAnschluss und warum zeigt derFunkweckerder nebenan steht die richtige Zeit an.
Liegt wieder mal ans Anspruchsverhalten. Diese Antennenmodule sind nicht für Kommunikation mit AVR entwickelt wurden. Ein Funkwecker kann und benötig nicht ständigeine neue Clocksyn. Warum auch . Man musst doch nicht jeden Früh Sekundengenau aus dem Bett springen
Wenn ein interner genauer Clock reichtist doch ein Abgleich nur bei Zeitumstellung wenn überhaupt. nötigt
Powschalter ist für Energiesparmodus gedacht (Batteriebetrieb) na ja man kann schon 1µW einsparen. Macht aber nur Sinnwenndie Information nur sehr selten aktualisiert werden müssen. Also last den Schalter auf null stehen.
Es kommt doch sehr selten vor das alle möglichen Signalfehlergenau zum Zeitpunkteiner Syn auftreten oder?
Da Sender nur jede Minute ein neu generiertes Telegramm sendet, hab iches noch nie verstanden warum, mit sehr großen Softwareaufwand versucht wirddieses als Echtzeit zu präsentieren oder halt den Flankenwechsel als sehr genauen Zeittakt anzupreisen. eine Signal-Rauschabstands der entsprechenden Sekundenmarken ist fast unmöglich.
Eine sehr aufwändiger Software kann natürlich digitale Fehler kompensieren, ist aber meist nicht nötig.
Mit freundlichen Grüßen
Grundsätzlich: Es gibt keine DCF77 Uhr. Es ist ein Langwellenzeitzeichensender .
Das DCF- Signalist gedacht um ein Zeitmesser mit genauen Werten Voreinzustellen und nicht als eine Echtzeituhr zu betrachten.
Nun kommen meine praktischen Neuzeiterfahrungen auch noch dazu die natürlich sehr einfach erklärt sind.
Es geht los:
Von der Qualität her konnte ich nur ein Antennenmodul als unbrauchbar erkennen(da war ein billig Quarz verbaut. Getestet die von Reichelt, Pollin und Conrad. Die haben alle den gleichenEmpfängerchip drauf der sehr empfindlich ist. Diese Module sollen ja ein sehr geringen Leistungsverbrauch haben. Somit muss sehr großen Wert auf Betriebsspannung gelegt wertenstabile 3 Volt waren beiallen Modulen optimal. Obwohl einige mit andere Spannungen im Zulassungsbereich funktionierten. Alle benötigen aber eine stabile Betriebsspannung. Eine sehr, sehr kurze Schwankung startet den internen PLL. Solange er nun wiederversucht die optimale Trägerfrequenz einzuregeln ist erst mal Schluss mit Demodulation und wenn es dumm kommt rastet derEmpfänger völlig falsch ein.
Somit ist erst mal das allerwichtigste. Dafür zu sorgeneinSchwangung von > +- 50mV und Ripple von 10mVeff zu vermeiden.
Nun kommt noch die sehr schwache Ausgangsbelastung ins Spiel. Oft wird vermutetder Pegel reicht nicht und wird zum Teil mitaufwendigen Schaltungen angehoben und dabei erreichen diese genau das Gegenteil weil deren Einganswiderstand zu gering ist. Also so wenig wie möglich den Ausgang belasten. Er liefert ja auch den PLL die „Regelgröße“. Somit haben meine Praxistestauch als Übeltäter den Einganswiederstand der verschiedenen AVR/Ports festgestellt. Kennen wir ja „bei mir geht es warum bei dir nicht“. Hier geht es umµA< 2 da kann schon der interne Pull Up ungewollt eine zu große Last sein wie auch ein einfaches Messgerät.Also um erst mal al dies auszuschließen benutze ich die sehr einfache aber zuverlässige Schaltung.Schaltung.jpg
Die LED am Ausgang ist bestimmt hilfreicher wie ein teures Messgerät. Blinkt sie stabil in Sekundentakt( na ja pro Minute ist eine Pause sichtbar) kann man erwarten das modulierte Signale ankommen die Sekundenflanke wird erkannt. Wenn nicht Antennenmodul ortsverändern. Alles andere macht erst mal keinen Sinn.
Oft wird vermutet Empfang ist zu schwach ist abermit ordentlicher Anwendung und Ausrichtung der Antennenicht mal in 1000 km Entfernung von Mainflingen der Fall. Die int. Reglung sorgt dafür das Schwankungen der Feldstärke ausgeglichen werden. Natürlich gib es Ausnahmenwerden als Funkloch bezeichnet und können auch nur sehr kurzlebig sein.
AberStörungen sind anders zu betrachten. Ob es Störungen sind sieht man am besten miteinem kleinen Bascomcode der in der Terminalanzeige, zeigt ob demodulierte Informationen auch richtig dekodiert werden. Nebenbei bemerkt da kann man auch die Wetterdaten erkennen.
Die Reglung die ich mit PLL bezeichne hat eine lange Einschwingzeit >10 s. Somit ist es begründet warum nach dem Einschalten die Signal LED wirres oder nichtsanzeigt
Trägerfrequenz muss doch erst mal ein vergleich mit der Referenzfrequenz durchführen und sich das Ergebnis für Signalfreigabe merken. Wird in dieser Zeit Antenne verändert benötigt es wieder diese Zeit. Also bissel Geduld beim ausrichten.
Im Dauerbetrieb ist es nicht so schlimm da Signalfreigabe erteilt wurde, es sei denn die Signalfrequenz driftet, dann wird in sehr kurzer Zeit nachgeregelt. Diese kleine Demudolierungspause ist unkritisch zu Berücksichten ist ein Pegelwechsel kann bis zu 360msdauern.Aber wenn wie Oben beschrieben nur eine kleine Betriebsspannungsschwankung kommt ist es ein Verhalten wie Neueinschalten. Alles muss erst wieder in Tritt kommen bevor decodiert werden sollte.
Es wird nur jede Minute einTelegramm gesendet Und dazwischen ist Pause. Ein festen Abtastzeitpunkts kann es Logischerweise nicht geben also sollten immer 2 Minuten eingeplant werden. Ein guter Decoder wie es die DCF77 Lib istnimmt sich die Startzeit bevor er die Daten an eine Uhr weiter gibt.
Quellcode
- '************************************
- '* Spielerei *
- '* (c) Fred 2018 *
- '************************************
- $regfile = "m644pdef.dat"
- $crystal = 16000000
- $baud = 19200 'wird nur benötigt für Printausgabe
- $hwstack = 80
- $swstack = 60
- $framesize = 60
- ' ist sehr vorteilhaft wenn mal in ein paar Jahren ausgelesen wird
- ' weis man wann erstelt und kennt den Bas Name
- Print "erstellt am : " ; Version(1)
- Print "Version Code : " ; Version(3)
- Wait 1
- '************************ LCD **************************************************
- Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.3 , Rs = Porta.2
- Config Lcd = 16 * 2
- Initlcd
- Cls
- Cursor Off
- 'DCF77 auf PinB.0 einstellen
- Config Dcf77 = Pinb.0 , Timer = 1 , Debug = 1 , Check = 1 , Inverted = 1 , ' Gosub = Sectic
- 'Declare Function Dcf_timezone() As Byte
- 'Datumsformat festlegen
- Config Date = Dmy , Separator = .
- 'Interrupts müssen aktiviert werden
- Enable Interrupts
- '++++++ Starteistellungen ++++++
- ' ........
- ' Dcf_status.7 = 1 'nicht auf DCF77 OK warten
- '+++++++++++++++++++++++++++++++++++
- ' Auf die Synchronisierung der Uhrzeit mit dem DCF77 Zeitsignal warten
- While Dcf_status.7 = 0
- ' solange die Zeit nicht stimmt
- Locate 1 , 1
- Lcd " DCF77 Dec ist "
- Locate 2 , 1
- Lcd Time(dcf_sec) ; " S6= " ; Dcf_status.6
- Print "demodu " ; Bin(dcf_bits)
- Print " " ; "time " ; " " ; "date "
- Print "DCF: " ; ; " " ; Time(dcf_sec) ; " " ; Date(dcf_day)
- Print "Clock:" ; ; " " ; Time$ ; " " ; Date$
- Waitms 100 'nur für Test
- Wend
- Cls
- Print "Uhrzeit erfolgreich synchronisiert! " ; Time$ ; " " ; Date$
- Print "S7 " ; Dcf_status.7
- Print "S6 " ; Dcf_status.6
- '*** nach Neustart immer etwas Zeit geben *****
- Wait 1
- '>>>> Hauptschleife <<<<
- Do
- Print "Uhrzeit synchronisiert! " ; Time$ ; " " ; Date$
- Locate 1 , 1
- Lcd "Zeit : " ; Time$
- Locate 2 , 1
- Lcd "Datum: " ; Date$
- '+++ Hier wird eine neue Synchronisierung ++
- '++ nach Wunschtermin gestartet z.B. ++
- If Time$ = "16:00:00" Then
- Dcf_status.6 = 1
- Print "S6 " ; Dcf_status.6
- 'Dcf_status.7 = 1
- Print "S7 " ; Dcf_status.7
- Wait 1
- Dcf_status.6 = 0
- Print " Syn. okay "
- End If
- Waitms 250
- '#### oder mit Datum ####
- '(
- If Date$ = "25.09.18" And Time$ = "23:55:00" Then
- Dcf_status.6 = 1
- Dcf_status.7 = 1
- Wait 1
- Dcf_status.6 = 0
- End If
- ')
- 'hier mach dein Ding weiter
- Loop
demodu 00000000
time date
DCF: 00:00:00 00.00.00
Clock: 00:00:00 00.00.00
demodu 00000000
time date
DCF: 00:00:01 00.00.00
Clock: 00:00:00 00.00.00
demodu 10000000
time date
DCF: 00:00:01 00.00.00
Clock: 00:00:00 00.00.00
demodu 00110101
time date
DCF: 13:53:58 17.01.19
Clock: 00:04:30 00.00.00
demodu 00110101
time date
DCF: 13:53:58 17.01.19
Clock: 00:04:30 00.00.00
demodu 00110101
time date
DCF: 13:53:58 17.01.19
Clock: 00:04:31 00.00.00
Uhrzeit erfolgreich synchronisiert! 13:53:00 17.01.19
S7 1
S6 1
Uhrzeit synchronisiert! 13:53:01 17.01.19
Hoffe mich verständlich ausgedrückt zu haben und somit häufiggestellte Fragenbeantwortet werden.
Warum gibt es denn so ein PweronAnschluss und warum zeigt derFunkweckerder nebenan steht die richtige Zeit an.
Liegt wieder mal ans Anspruchsverhalten. Diese Antennenmodule sind nicht für Kommunikation mit AVR entwickelt wurden. Ein Funkwecker kann und benötig nicht ständigeine neue Clocksyn. Warum auch . Man musst doch nicht jeden Früh Sekundengenau aus dem Bett springen
Wenn ein interner genauer Clock reichtist doch ein Abgleich nur bei Zeitumstellung wenn überhaupt. nötigt
Powschalter ist für Energiesparmodus gedacht (Batteriebetrieb) na ja man kann schon 1µW einsparen. Macht aber nur Sinnwenndie Information nur sehr selten aktualisiert werden müssen. Also last den Schalter auf null stehen.
Es kommt doch sehr selten vor das alle möglichen Signalfehlergenau zum Zeitpunkteiner Syn auftreten oder?
Da Sender nur jede Minute ein neu generiertes Telegramm sendet, hab iches noch nie verstanden warum, mit sehr großen Softwareaufwand versucht wirddieses als Echtzeit zu präsentieren oder halt den Flankenwechsel als sehr genauen Zeittakt anzupreisen. eine Signal-Rauschabstands der entsprechenden Sekundenmarken ist fast unmöglich.
Eine sehr aufwändiger Software kann natürlich digitale Fehler kompensieren, ist aber meist nicht nötig.
Mit freundlichen Grüßen