Problem mit DCF77 Empfänger, Signal passt nicht

OP (Firma: ----) #8089501
Lesenswert?

Hallo liebes Forum,

Ich verwende das DCF77-Modul CANADUINO® Atomic Clock AM Receiver Kit V4. Angeschlossen wurde die Versorgungsspannung 5V und Masse. Alle weiteren Pins außer OUT blieben unbeschalten.

Ich habe das Signal an OUT oszilloskopiert (siehe Bilder) und weiss gerade nicht was ich hier falsch mache.

MfG, Dirk

Angehängte Dateien:
#8089513
Lesenswert?

Sieht nach durch lokale Störer gestörtem Signal aus. Verbessere die Empfangssituation. Suche einen besseren Platz für die Antenne, bzw. das Assy. Störungen können durch den Messaufbau selbst entstehen. (Oberwellen von Röhrenhochspannungswandler und SNT des Oszilloskops.) Einfach überprüfen kannst Du die saubere Taktung auch durch die LEDs. Dazu brauchst Du nicht unbedingt ein Oszilloskop.

ciao
gustav

(Firma: 1984now) #8089520
Lesenswert?

Karl B. schrieb:

Sieht nach durch lokale Störer gestörtem Signal aus. Verbessere die Empfangssituation. Suche einen besseren Platz für die Antenne, bzw. das Assy.

Oder einfach zuerst mal: Warte noch eine Weile. Diese einfachen AM-Empfänger brauche oft längere Zeit, um ihre AGC korrekt einzupegeln.

Erst, wenn sich auch nach 'ner Minute oder so immer noch kein korrekter Sekundentakt ergibt, dann lohnt es, den von Karl B. vorgeschlagenen Ansatz weiter zu verfolgen.

OP (Firma: ----) #8089531
Lesenswert?

Ok, ja, ich meinte Kabelchen an den OUT Pin und den versorgungspins der Platine, nicht längere Kabelchen zur Antenne. Ja habe schon ein Weilchen gewartet.

Verwendet habe ich uC-seitig den DCF77 Code von Ulrich Radig, hier die Ausgabe auf dem UART:

DCF 77 Clock by Ulrich Radig

0-0-0 Time: 0:0:0 Sync: 0 Rx: 0
0-0-0 Time: 0:0:11 Sync: 0 Rx: 0
0-0-0 Time: 0:0:23 Sync: 0 Rx: 1
0-0-0 Time: 0:0:34 Sync: 0 Rx: 0
0-0-0 Time: 0:0:46 Sync: 0 Rx: 1
0-0-2000 Time: 0:0:0 Sync: 1 Rx: 1
0-0-2000 Time: 0:0:13 Sync: 0 Rx: 0

Hardware: ATmega328P mit 16MHz und einem 10k PullUp am OUT-Signal

Viele Grüsse, Dirk

Moderator (Firma: Titel) Persönliche Seite #8089532
Lesenswert?

Karl B. schrieb:

Oberwellen von Röhrenhochspannungswandler und SNT des Oszilloskops.

Welche Röhre? Das ist ein USB-Picoscope, das da seine Arbeit tut. Da ist nicht mal ein 230V-SNT drin.

Dirk U. schrieb:

das Signal an OUT oszilloskopiert (siehe Bilder)

Kann man der Messung trauen? Ich lese da einen Hi-Pegel von 0,5V ab. Du solltest übrigens die Tastkopfeinstellungen und die Zeitbasis des Oszis mit in den Screenshot aufnehmen.

Dirk U. schrieb:

muss da wohl mal paar längere Kabelchen an die Pins der Dekoder Platine anbringen

Da klemmt viel mehr. Da ist nicht ein einziger sinnvoller Sekundenimpuls zu sehen. Versorge das Ding mal aus Batterien. Der Versorgungbereich ist ja immerhin 2V-5,5V.

: Bearbeitet durch Moderator
(Firma: 1984now) #8089535
Lesenswert?

Lothar M. schrieb:

Kann man der Messung trauen? Ich lese da einen Hi-Pegel von 0,5V ab.

Jepp. Ist allerdings nur im schamhaft als Drittem applizierten Anhang überhaupt erkennbar. Das sieht mir doch sehr nach Trollerei aus.

Versorge das Ding mal aus Batterien. Der Versorgungbereich ist ja immerhin 2V-5,5V.

Das könnte auf jeden Fall hilfreich sein, um leitungsgebundene Störungen aus der Versorgung zu eleminieren.

#8089537
Lesenswert?

Hallo Dirk,

das ist kein Fehler von dir. Ich habe das DCF-77-Modul von Pollin, und mein Oszillogramm sieht eigentlich genauso aus. Da sind einfach durch die HF-Einwirkungen von Schaltnetzteilen und anderen Störquellen zu viele Peaks, welche den Langwellenempfänger stören.

Ich habe mir auch mal eine Funkuhr gebaut. Die Pulse werden durch eine LED angezeigt, und die flackern auch mal zwischen den Pulsen.

Ich werte die Pulse mit einem Atmega 16 aus, ist übertrieben, wollte da aber noch weitere Features damit steuern. Habe da auch eine Duo-LED, die mir sagt, ob das Funktelegramm störungsfrei empfangen wurde, oder nicht. Leuchtet sie grün dann wurde die letzte Minute fehlerfrei empfangen, bei rot gab es Störungen. Auf dem LC-Display werden die letzten 8 Bits angezeigt, die wandern kontinuierlich durch, und auch da sieht man Störungen, wenn ein Bit nicht sichtbar von vorne nach hinten durchgeschoben wird.

Bei idealem Empfang synchronisiert sich die Uhr jede Minute, da Energiesparen nicht nötig ist, die Uhr hängt am Netz.

Der Aufbau ist auch nicht wirklich ideal. Die Ferritantenne bekommt sicher auch Schläge vom Prozessor, und den Leitungen zum LCD ab. Dann steht sie noch keine 80 cm von einem TV und zwei Monitoren samt PC entfernt und wird von einem Schaltnetzteil (Handylader) versorgt. Aber dennoch synchronisiert sie sich alle paar Minuten, ca 200 km vom DCF-77-Sender entfernt und quer zu ihm aufgestellt.

Nachts ist fast durchgehend guter Empfang.

Daher: Drehe mal die Antenne und beobachte das Oszillogramm. Meine Armbanduhr braucht auch manchmal 10 Minuten, bis sie sich Synchronisiert hat.

OP (Firma: ----) #8089548
Lesenswert?

Ja na gut, mein Labornetzteil (Schaltnetzteil) steht in 50 cm Entfernung, ich habe schon versucht die Antenne grob Richtung Frankfurt auszurichten, leider ist diese Richtung gerade die Richtung durch meinen Wohnblock :-/

Auch habe ich probiert die Antenne gegenüber des Steckbrettes etwas anzuheben, durch die kurzen Kabelchen konnte ich die Antenne aber nur 5cm höher stellen.

Mein doch eher billiger Radiowecker Mebus 41460 hat anscheinend nicht solche Probleme - steht aber halt im Schlafzimmer weiter weg von Störquellen.

Na gut, ich Danke erst einmal Allen und melde mich wieder wenn ich meinen Testaufbau verbessert habe.

Beste Grüße, Dirk

OP (Firma: ----) #8089553
Lesenswert?

Die Periodendauer wurde mit der Linealfunktion ausgemessen, wie auf den Screenshots zu sehen.

Verwendet wurde ein USB Oszilloskop, ja die Legende hätte ich noch mit screenshotten können, richtig, aber die Periodendauer wurden eben wie gesagt mit der Linealfunktion ausgemessen.

Die ungleiche Länge ist eindeutig zu erkennen, beim regulären DCF77 Signal müsste die ja immer 1 Sekunden betragen.

(Firma: 1984now) #8089556
Lesenswert?

H. H. schrieb:

Dirk U. schrieb:

ich habe schon versucht die Antenne grob Richtung Frankfurt auszurichten,

Die sollte quer zur Richtung stehen.

Genau. Der Witz ist hierbei: das Maximum ist nicht sehr ausgeprägt, +-45° vom Maximum spielen nur eine untergeordnete Rolle. Aber das Minimum ist doch sehr ausgeprägt. Also gerade rund um die 90° ist wirklich Ebbe.

Persönliche Seite #8089647
Lesenswert?

Das DCF-Modul braucht nur 3 Leitungen: GND, +5V und Signal.

Nimm 5 bis 10 Meter Kabel und halte VIEL Abstand von deiner Elektronik und dem DCF-Modul.

Dann darf da pro Sekunde nur ein Impuls sichtbar sein, entweder 100 ms lang ode 200 ms lang (+/- 30 ms), aber auf keinem Fall weitere Impulse dazwischen.

Das Ausgangssignal vom DCF-77-Empfänger von Conrad 2014 / Eingeätzt: BA 20084A0 Ausgangssignal in Ruhe = Low, Die empfangenen Taktzeitabstände sind 0.9964 ... 1.0032 s, Die Pausen bei der vollen Minute sind 1.9981 ... 1.9991 s Die Einschaltzeiten "Kurz", Nennwert 0.1s sind 0.083459 ... 0.091393 Die Einschaltzeiten "Kurz", Nennwert 0.2s sind 0.181608 ... 0.186976

Das ELV-Modul "hongma" gibt das Signal invertiert aus. http://www.elv.de/dcf-empfangsmodul-dcf-2.html

Das Pollin-Modul (2013)

PS Das passt .. das Modul sendet aber nur nach einem High/Low-Wechsel an Pon.

1
    ||            (Achtung Pon nicht offen lassen sonst kommt Mist an!
2
    ||             immer auf GND ziehen )
3
    \/
4

5
 --------
6
|      x | +5V
7
|      x | GND
8
|      x | Data
9
|      x | PON
10
|        |
11
|        |
12
| o o    |
13
----------

Heruntergeladen von http://www.pollin.de/shop/dt/NTQ5OTgxOTk-/Bauelemente_Bauteile/Bausaetze_Module/Module/DCF_Empfangsmodul_DCF1.html Das Modul sendet (im ) folgende r - Rohdaten-Werte Also: für 0 nicht 0.1 s, sondern 0.144001 s ... 0.148603 s für 1 nicht 0.2 s, sondern 0.188666 s ... 0.192470 s Das Pollin-Modul ist direkt anschließbar und HJHerberts Modul läuft auch mit 5 V, das DCF77-Signal ist nicht invertiert.

#8089678
Lesenswert?

Dirk U. schrieb:

Ich verwende das DCF77-Modul CANADUINO Atomic Clock AM Receiver Kit V4.

Gemäß eines anderen Threads ist das die Edelklasse, und, im Gegensatz zu anderen, ist das Empfänger-IC definiert.

Thomas S. schrieb:

das ist kein Fehler von dir. Ich habe das DCF-77-Modul von Pollin, und mein Oszillogramm sieht eigentlich genauso aus.

Quatsch, wenn hier keine sauberen Impulse kommen, liegt die Ursache in meinem Umfeld.

Hans-jürgen H. schrieb:

Das Modul sendet (im ) folgende - Rohdaten-Werte Also: für 0 nicht 0.1 s, sondern 0.144001 s ... 0.148603 s für 1 nicht 0.2 s, sondern 0.188666 s ... 0.192470 s

Das liegt außerhalb üblicher Spezifikationen, meines liefert 118 bzw 219ms - den zugehörig älteren Thread finde ich nicht wieder. Das ist aber garnicht der Punkt hier, die Sekunde wird durch die fallende Flanke markiert und wiederholt sich in exakt dieser Zeit. Das Gezappel in Dirks Grafiken deutet auf Störer in der Nähe hin, die kein Empfangsmodul der Welt wegzaubern kann.

Angehängte Dateien:
#8089691
Lesenswert?

Manfred P. schrieb:

Quatsch, wenn hier keine sauberen Impulse kommen, liegt die Ursache in meinem Umfeld.

Genau so habe ich es auch geschrieben.

Thomas S. schrieb:

das ist kein Fehler von dir. Ich habe das DCF-77-Modul von Pollin, und mein Oszillogramm sieht eigentlich genauso aus. Da sind einfach durch die HF-Einwirkungen von Schaltnetzteilen und anderen Störquellen zu viele Peaks, welche den Langwellenempfänger stören.

#8089695
Lesenswert?

Das Canaduino Modul gibts in zwei Versionen, für 60 kHz und dür 77,5 kHz.

Ist es auch die richtige, also für 77,5 kHz? Ein 60 kHz Modul würde hier nur Störungen empfangen.

Zum anderen entnehme ich der Anleitung, daß der Filterquarz für die jeweilige Empfangsfrequenz nur mitgeliefert würde und noch einzulöten sei. Ist das auch geschehen?

Wenn man den Pin 6 (LED) des Moduls mit GND verbindet, aktiviert man LEDs an verschiedenen Signalen, auch am Empfängrr-Ausgang.

Das würde ich mal machen und das Modul mit zwei Mignonzellen in Reihe versorgen und dann mal in der Wohnung herumsuchen, ob sich irgendwo eine sauber blinkende Ausgangs-LED zeigt.

Moderator (Firma: Titel) Persönliche Seite #8089741
Lesenswert?

Thorsten S. schrieb:

Das Canaduino Modul gibts in zwei Versionen, für 60 kHz und dür 77,5 kHz.

Nette Falle.

  • EAN 4260474030200 for 77.5kHz version
  • EAN 4260474030194 for 60kHz version

Zum anderen entnehme ich der Anleitung, daß der Filterquarz für die jeweilige Empfangsfrequenz nur mitgeliefert würde und noch einzulöten sei.

Zudem ist die jeweilige Antenne auf 60kHz oder 77kHz feingestimmt:

Dirk U. schrieb:

Mein doch eher billiger Radiowecker Mebus 41460 hat anscheinend nicht solche Probleme - steht aber halt im Schlafzimmer weiter weg von Störquellen.

Dem reicht es aus, wenn er mitten in der Nacht, wenn der EMV-Störpegel am niedrigsten ist, ein korrektes Telegramm empfängt und die Zeit syncronisieren kann. Den Rest des Tages läuft er dann mit seinem Quarz.

#8089882
Lesenswert?

Thorsten S. schrieb:

Das Canaduino Modul gibts in zwei Versionen, für 60 kHz und dür 77,5 kHz. Ist es auch die richtige, also für 77,5 kHz?

Gute Frage. Man sieht es dem Modul auch nicht an, es hat keinen entsprechenden Aufdruck. Man erkennt es aber am Quarz, der hat eine Prägung.

https://www.mikrocontroller.net/attachment/703810/Quarz.jpg

Zum anderen entnehme ich der Anleitung, daß der Filterquarz für die jeweilige Empfangsfrequenz nur mitgeliefert würde und noch einzulöten sei. Ist das auch geschehen?

Ich vermute mal ja.

Wenn man den Pin 6 (LED) des Moduls mit GND verbindet, aktiviert man LEDs an verschiedenen Signalen, auch am Empfängrr-Ausgang. Das würde ich mal machen und das Modul mit zwei Mignonzellen in Reihe versorgen und dann mal in der Wohnung herumsuchen, ob sich irgendwo eine sauber blinkende Ausgangs-LED zeigt.

Das ist ebenfalls ein sehr guter Tipp. Man erkennt an der LED sogar einigermaßen gut wenn das Signal gestört ist. Wenn es störungsfrei kommt kann man sogar "H" und "L" unterscheiden. Man erkennt natürlich auch die 59te Sekunden, da bleibt die LED aus.

Angehängte Dateien:
: Bearbeitet durch User
#8089894
Lesenswert?

Dirk U. schrieb:

Ich verwende das DCF77-Modul CANADUINO® Atomic Clock AM Receiver Kit V4. Angeschlossen wurde die Versorgungsspannung 5V und Masse. Alle weiteren Pins außer OUT blieben unbeschalten. Ich habe das Signal an OUT oszilloskopiert (siehe Bilder) und weiss gerade nicht was ich hier falsch mache.

Hallo Dirk,

dir wurde ja schon einiges geschrieben. Am interessantesten ist der Kommentar von Thorsten S.

Beitrag "Re: Problem mit DCF77 Empfänger, Signal passt nicht"

Vor einigen Monaten habe ich mir auch einige der Module gekauft. Aufgrund deines Threads habe ich nun ein Modul in Betrieb genommen und am Picoskope getestet. Für meinen Test habe ich den Anschluss LED, wie von Thorsten S. kommentiert, auf GND gelegt. Das Modul brauchte ca. 1 Minute, dann fing die LED OUT an zu blinken. Den Rest zeigen meine Screenshots. Ich konnte einwandfrei H und L delektieren, ebenso die 59te Sekunden. Das Modul liefert am Ausgang 4,9V. Pullup bzw. Pulldown Widerständen sind nicht erforderlich. Die Ausgängen werden von einem 74HC14 bedient, der treibt 20mA in jede Richtung.

Der Screenshot "Atomic-V4-59s" zeigt die 58te und 59te Sekunde, wobei in der 59ten keine Absenkung erfolgt.

Ich versorge die Schaltung mit 5V aus einem Korad Netzteil. Der Test fand im Hobbykeller statt.

Deine Messungen sind leider Alle unplausibel. Du misst z.B. 161,4ms. Das ist auf DCF77 bezogen kein H und kein L. Wenn die Messung korrekt wäre müsstest Du 1000ms messen.

https://www.mikrocontroller.net/attachment/703717/2._Periode.png

Was auch nicht stimmt ist die Spannung von 0,5V, das wurde ja schon geschrieben. Tastkopf falsch eingestellt?

Zeige doch mal deinen Aufbau.

Angehängte Dateien:
: Bearbeitet durch User
OP (Firma: ----) #8090083
Lesenswert?

Hallo,

Ja Danke für den Input allerseits,

  • Die Quartz Variante der Boards habe ich kontrolliert, sie stimmt, ist allerdings wirklich schwer mit bloßem Auge zu erkennen.

  • Testaufbau war auf einem Tisch, Arduino u. DCF77-Board in einem Steckbrett, verbunden mit Kabelchen, die Antenne ca. 5cm erhöht. Versorgt wurde das ganze mit einem Labornetzteil Typ Manson NSP2050.

  • Gemessen wurde mit einem USB Oszilloskop, ja der Tastkopf war in der SW nicht auf 1:10 eingestellt.

Ich vermute die Störungen waren zu groß und die Abstrahlung des Netzteiles und die Ausrichtung und Position der Antenne waren nicht gut.

Meinen Radiowecker stellte ich testweise auch auf die Position meines Steckbrettes und er konnte sich nach 5 Minuten noch nicht synchronisieren. Danach stellte ich den Wecker auf eine ca. 50cm hohe Pappkiste und schaltete das Netzteil aus und er konnte sich nach ca. 3 Minuten synchronisieren.

Meine naive Hoffnung war dass die Logik auf dem Board einen Eingangsfilter hat der anderen Frequenzen wegfiltert. Habe keine große Ahnung von Radiotechnik und diese Annahme war wohl schlichtweg falsch.

Ich werde bei Gelegenheit die Messungen mit besser platzierter Antenne und einer Speisung mit Batterien widerholen und dann mal zeigen was dabei rauskommt.

Ersteinmal vielen Dank für die Tips & bis Bald!

: Bearbeitet durch User
#8090090
Lesenswert?

Dirk U. schrieb:

Meine naive Hoffnung war dass die Logik auf dem Board einen Eingangsfilter hat der anderen Frequenzen wegfiltert.

Auch ein schmalbandiges Eingangsfilter nützt nichts, wenn die Empfangsfrequenz selbst zu sehr gestört ist.
Je nach Standort kann es sein, dass das DCF77-Signal nachts besser ankommt. "Antenne nach Frankfurt ausgerichtet" heißt, Antennenstab quer zur Richtung ;-)

#8090119
Lesenswert?

Rainer W. schrieb:

Auch ein schmalbandiges Eingangsfilter nützt nichts, wenn die Empfangsfrequenz selbst zu sehr gestört ist.

Für Empfangstest benutzte ich einen Direktumsetzer, später einen Superhetempfänger mit BFO. So kann man das Signal der Zeitzeichensender hörbar machen.
Im ersten Audiobeispiel ist das Signal durch ein Schaltnetzteil in der Nähe der Antenne gestört.
Im zweiten Beispiel ist der DCF77 Empgang (und im Hintergrund noch HBG 75 kHz damals) sauberer und decodierfähig.

So kann ich ganz leicht mit dem batteriebetriebenen DCF77-Empfänger in der Wohnung herumgehen, und schnell den besten Standort ausfindig machen.

ciao
gustav

P.S.: Bei MSF60 hört man im Sommer die Kracher von Gewittern deutlich über dem gewünschten Signalpegel, die dann die eigentliche Ursache für schlechte Decodierbarkeit sind. Nicht nur SNTs.

Angehängte Dateien:
#8090305
Lesenswert?

Wolle G. schrieb:

kurze Frage: Was passiert, wenn eine Störung angezeigt wird? Zeigt die Uhr bei rot leuchtender LED die falsche Zeit an oder was wird angezeigt?

Nein, die läuft dann über die Taktfrequenz des Prozessors weiter. Die LED habe ich nur verbaut, weil noch Ports frei waren, und es für mich interessannt war, wie zuverlässig das Signal decodiert wird, also nur eine Spielerei.

Wenn die rot leuchtet, zeigt die Uhr auch in der vierten Zeile des LCD "Warten auf DCF-77" an, bei grün einen kleinen symbolischen Funkturm.

Beitrag #8090559 wurde vom Autor gelöscht.
#8090567
Lesenswert?

Thomas S. schrieb:

Nein, die läuft dann über die Taktfrequenz des Prozessors weiter.

Wenn die rot leuchtet, zeigt die Uhr auch in der vierten Zeile des LCD "Warten auf DCF-77"

Interessehalber:
a) Nach welchen Kriterien wird ermittelt, ob die rote LED leuchten soll, also wie wird festgestellt, ob das aktuelle Telegramm falsch oder richtig ist? bzw.:
b) Läuft die Uhr in erster Linie mit der Taktfrequenz und wird, wenn das empfangene Telegramm als richtig eingestuft wird, die "Prozessorzeit" überschrieben?

: Bearbeitet durch User
#8090577
Lesenswert?

Schau Dir die kursierenden, uralten ASM-Programme einmal im Detail an. Dann wirst Du feststellen, dass eine Unstimmigkeit bei der Parityauswertung ein "Flag" setzt. Das Error-Flag wird in der Main-Routine ausgewertet. Hier das Reagister r19 auf Null getestet.

Es läuft der Timer Interrupt weiter. Es wird die zuletzt als gültig anerkannte Zeitinformation einfach weiter hochgezählt und ausgegeben. Bei dem von mir verwendeten Programm erfolgt das über ein "Job-Flag". Ich nenne das "Gangreserveumschaltung". Zur Erkennung, dass umgeschaltet wurde, hatte ich das so programmiert, dass die Sekunden nicht hochgezählt werden. Ist der DCF77-Empfang wieder einwandfrei, wird das Job-Flag resettet und die Uhr wird wieder synchronisiert, Sekunden werden wieder ausgegeben.

ciao
gustav

Angehängte Dateien:
: Bearbeitet durch User
#8090663
Lesenswert?

Wolle G. schrieb:

Interessehalber: a) Nach welchen Kriterien wird ermittelt, ob die rote LED leuchten soll, also wie wird festgestellt, ob das aktuelle Telegramm falsch oder richtig ist? bzw.: b) Läuft die Uhr in erster Linie mit der Taktfrequenz und wird, wenn das empfangene Telegramm als richtig eingestuft wird, die "Prozessorzeit" überschrieben?

Die Uhr wird erstmal von dem DCF-Protokoll eingestellt, manuell geht das nicht.

Wenndas Protokoll erkannt wurde, wird die Zeit angezeigt. Da diese Uhr permanent den DCF-Empfänger eingeschaltet hat, wird sie bei optimalem Empfang jede Minute neu synchronisiert. Ist das Signal unplausibel, dann läuft die Uhr autark mit dem Taktsignal des Atmega 16, ich habe den mit einem 8 MHz-Quarz versehen, es ginge auch ohne Quarz, dann ist die Abweichung der Uhrzeit aber noch ungenauer, als mit dem selben.

Ist aber so kein Problem, da die Uhr am Netz hängt (eigentlich ein Mobiltelefonladegerät, ein Schaltnetzteil, das 5 V ausgibt).

Ich habe glaube ich auch einen Schaltplan, aber auf einem Rechner, der gerade nicht mehr startet. Das Platinenlayout ist auch auf dem Rechner. Leider habe ich auf meinem neuen Rechner kein DVD-Laufwerk, kann daher die Software Sprint-Layout nicht installieren, um einen Screenshot der Platine zu machen, sollte aber kein Problem sein.

Im Prinzip musst du nur einen Atmega nehmen, ein LCD an beliebige Ports anschliessen, und einen DCF-Empfänger anschliessen. Ich habe da noch einen Port zur Ausgabe des Signals auf eine LED gelegt, um die Sekundensignale zu sehen. DCF senkt ja seine Sendeleistung im Sekundentakt für 100 ms, 200 ms oder 1000 ms. Diese Senkungen werden eben mit der LED angezeigt. Wenn die LED dauernd leuchtet, dann ist der Sender ausser Betrieb, wenn sie zwischenduch flackert, dann stört irgendwas den Empfang.

Die Software ist in Bascom geschrieben. die konnte man damals frei runterladen, dabei sind aber die Programme auf 4 kB begrenzt. Ich habe die Vollversion auf einem alten XP-Klapprechner.

Ob deiner Nachfrage, Wolle G. habe ich mal versucht, Bascom wieder auf meinen neuen Rechner runterzuladen, aber da bedarf es wohl einer Sperma- oder Blutprobe, um da reinzukommen, und die kostenlose Software bis 4 kByte runterzuladen.

Sollest du die Software haben, dann gehe mal in die Hilfe. Es gibt da ein Programm in Assembler, das du in Bascom einbinden kannst, und da werden auch diverse Bits in der Ausgabe erklärt. da habe ich auch die Entscheidung zwischen grün und rot gefunden.

Bascom ist wohl scheinbar out, aber ich habe damals Basic gelernt, und finde das intuitiver als C oder C++.

#8090686
Lesenswert?

Thomas S. schrieb:

Ist das Signal unplausibel, dann läuft die Uhr autark mit dem Taktsignal

Danke für den umfangreichen Beitrag.
Mir ging es aber im Wesentlichen nur um die vor dir angewandte Methode, die das Aussortieren ungültiger Zeitdiagramme betreibt, um Falschanzeigen zu vermeiden. Meine vor ca. 15 bis 20 Jahren gebaute DCF77-Uhr, die im Wesentlichen nur mit CMOS Schaltkreisen gebaut wurde, läuft und läuft … , ohne dass bisher eine Falschanzeige zu sehen war.
Bei meiner Methode werden 2 aufeinander folgende Zeittelegramme geprüft, ob sie sich um 1 Minute unterscheiden. Wenn dies nicht der Fall ist, wird die Uhrenanzeige von einem Taktgeber um 1 Minute erhöht. Wenn ja, wird die empfangene Zeit übernommen. Hoffentlich habe ich mich verständlich genug ausgedrückt

: Bearbeitet durch User
#8090709
Lesenswert?

Thomas S. schrieb:

Ich habe da noch einen Port zur Ausgabe des Signals auf eine LED gelegt, um die Sekundensignale zu sehen. DCF senkt ja seine Sendeleistung im Sekundentakt für 100 ms, 200 ms oder 1000 ms. Diese Senkungen werden eben mit der LED angezeigt.

Wieso Port? Meine DCF-LED ist reine Hardware, ebenso wie der zuschaltbare Signalton - beide direkt am Ausgang des Empfangsmoduls. Wenn Daten als fehlerhaft bewertet werden, wird das im Display gezeigt.

Wolle G. schrieb:

Mir ging es aber im Wesentlichen nur um die vor dir angewandte Methode, die das Aussortieren ungültiger Zeitdiagramme betreibt, um Falschanzeigen zu vermeiden.

Es gibt mehrere Dinge, die man zwecks höherer Zuverlässigkeit kombinieren kann.

Hier gibt es ein Projekt Beitrag "DCF77 - Kuckucksuhr" , wo er in dem zugehörigen YT-Video seine Fehlererkennungsmechanismen beschreibt: https://www.youtube.com/watch?v=oywM7ytlZ7o

OP (Firma: ----) #8090726
Lesenswert?

Ein Österreicher der da auch für einen PIC mal ein DCF77 Programm geschrieben hat verwendete folgende Mechanismen zur Fehlererkennung:

  • Auswertung der 3 Paritätsbits
  • Check Minute_alt zu Minute_neu
  • Sommerzeit Winterzeit können nicht beide gesetzt sein
  • Zeit zwischen zwei erkannten Sequenzen muss 1 Minute betragen

... und noch ein zwei andere Merkmale

Ich glaube damit ist man relativ sicher. Ich hatte mal eine Funkuhr die mir 26:54 Uhr angezeigt hat :-) Da wurde offensichtlich keine Plausibilitätsprüfung vorgenommen.

#8090744
Lesenswert?

Manfred P. schrieb:

Wieso Port? Meine DCF-LED ist reine Hardware, ebenso wie der zuschaltbare Signalton - beide direkt am Ausgang des Empfangsmoduls. Wenn Daten als fehlerhaft bewertet werden, wird das im Display gezeigt.

Der Ausgang des DCF-77-Moduls von Pollin ist so gut wie gar nicht belastbar. Er kann keine LED direkt betreiben, daher habe ich das Modul direkt an einen Port des Prozessors gehängt und betreibe mit einem anderen die LED. Der Atmega 16 hat ja genügend davon.

An dem Port hängt auch noch ein kleines Reed-Relais, mit dem ich das Signal auf weitere Uhren verteilen kann. Das war ein Versuch, und geht auch über eine längere Leitung recht gut.Allerdings dauert die Synchronisation an der Tochteruhr deutlich länger, da der Entprellkondensator des Reedrelais die Signallänge verfälscht.

#8090745
Lesenswert?

Thomas S. schrieb:

Manfred P. schrieb:

Wieso Port? Meine DCF-LED ist reine Hardware, ebenso wie der zuschaltbare Signalton - beide direkt am Ausgang des Empfangsmoduls. Wenn Daten als fehlerhaft bewertet werden, wird das im Display gezeigt.

(..) An dem Port hängt auch noch ein kleines Reed-Relais, mit dem ich das Signal auf weitere Uhren verteilen kann.

Weshalb nimmst du Relais?

#8090757
Lesenswert?

Dirk U. schrieb:

Meine naive Hoffnung war dass die Logik auf dem Board einen Eingangsfilter hat der anderen Frequenzen wegfiltert. Habe keine große Ahnung von Radiotechnik und diese Annahme war wohl schlichtweg falsch.

Hat er ja prinzipiell. Die abgestimmte Ferritantenne ist schon nicht sehr breitbandig und im Geradeausempfänger dient der Filterquarz zur schmalbandigen Filterung.

Andere Frequenzen kann der gut wegfiltern, aber gegen breitbandige Störer, wie Schaltnetzteile, die hinreichende Energie auf exakt 77,5 kHz liefern, ist kein Kraut gewachsen.

Man kann ja den Empfänger auch nicht beliebig schmalbandig machen, da ja die Sekundenmarken noch empfangen werden müssen. 20 Hz - 10 Hz Bandbreite ist dager die untere Grenze, bei der schon eine Impulsdauer-Verzerrung der amplitudenmodulierten Information eintritt.

#8090794
Lesenswert?

Thorsten S. schrieb:

Andere Frequenzen kann der gut wegfiltern, aber gegen breitbandige Störer, wie Schaltnetzteile, die hinreichende Energie auf exakt 77,5 kHz liefern, ist kein Kraut gewachsen.

Die Annahme, dass Schaltnetzteile nur auf einer Frequenz konstant eine HF-Aussendung produzieren, ist so nicht richtig. Für diesen Zweck könnte man ja von der Regulierungsbehörde Frequenzen freigeben, wie zum Beispiel solche im 27 MHz-Band. Alle SNTs dürften dann nur auf einem eng begrenzten Frequenzbereich arbeiten.

Zum Beispiel produziert die Lastausregelung bei SNTs wechselnde Frequenzbeanspruchung über einen mehr oder weniger definierten, meist größeren Bereich, die nicht mit einem einfach auf Resonanzfrequenz abgestimmten Sperrfilter herauszufiltern wäre. Daraus folgt eine größere Frequenzbeanspruchung, sprich zeitweilig größere beanspruchte Bandbreite.

Dabei kann der Bereich um die 77,5 kHz sporadisch in Mitleidenschaft gezogen werden. Der DCF77-Empfänger benötigt aber einen einwandfreien Empfang über eine "größeren" Zeitraum. Da reicht ein kurzer Sweep eines SNT schon aus, um die Decodierung des Slow-Codes zu verhindern.

Der PTB sind diese Probleme nur zu gut bekannt. Nicht umsonst wurde eine relative Sendeleistungserhöhung durch tiefere Trägerabsenkungspegel vor Jahren schon etabliert. Damit kam man den Wünschen der Kunden nach verbessertem Störabstand nach.

Nicht selten sind die "Störungen" hausgemacht. Genau wie beim TO hier. Beitrag "Re: Problem mit DCF77 Empfänger, Signal passt nicht"

Einige Hersteller von DCF77 gestützten Systmen empfehlen andere Netzteile. Siehe Bild.

ciao gustav

P.S.: Bildquelle: https://www.acoustic-design-magazin.de/2024/12/22/schaltnetzteil-entstoeren-rundmachers-weihnachtsgeschenk/

Thomas S. schrieb:

Im Prinzip musst du nur einen Atmega nehmen

Hatte mir die Freiheit herausgenommen, das Programm von Scott-Falk Huehn auf den ATtiny 2313 bzw. 4313 umzuschreiben.
https://s-huehn.de/elektronik/wohnuhr/wohnuhr.htm

Hier einfach eine Ausgabe von r19 auf einen Port programmieren. Evtl. noch mit "com" aus High Low machen. Dann ist die Statusled nur im Fehlerfalle "on". Die im Rhythmus von DCF77 selbst blinkende LED kann zwar auch auf Fehler hinweisen, ich dachte, die Frage bezog sich dezidiert auf eine Störungsanzeige LED, die entweder dauernd "on" oder "off" ist. Gibt Uhren, die geben im Display an, wieviel Zeit die Uhr ohne Synchronisation gelaufen ist. Also ein extra SRAM-Register einrichten nur für Hochzählen der Zeit, wenn r19 nicht Null.

Angehängte Dateien:
: Bearbeitet durch User
#8090845
Lesenswert?

Dirk U. schrieb:

Zeit zwischen zwei erkannten Sequenzen muss 1 Minute betragenreichte

Allein diese Art der Auswertung reichte bei mir aus, um nun schon jahrelang Fehlanzeigen zu vermeiden.

Thorsten S. schrieb:

Andere Frequenzen kann der gut wegfiltern, aber gegen breitbandige Störer, wie Schaltnetzteile, die Energie auf exakt 77,5 kHz liefern, ist kein Kraut gewachsen

Um derartige Störungen zu ignorieren, kann man sich einen Ort im Raum suchen, an dem nahezu störungsfreier Empfang möglich ist. Um die Uhr am Wunschort aufstellen zu können, kann man die Ferritantenne über ein passendes langes Kabel anschließen. (bei mir ca. 1,5m)

(Firma: 1984now) #8090866
Lesenswert?

Thomas S. schrieb:

Der Ausgang des DCF-77-Moduls von Pollin ist so gut wie gar nicht belastbar. Er kann keine LED direkt betreiben

Das ist vollkommen korrekt. Steht ja auch so im Beipack-Zettel.

daher habe ich das Modul direkt an einen Port des Prozessors gehängt und betreibe mit einem anderen die LED.

Nunja, andere würden einfach einen LL-MOSFET nehmen. Aber OK, es geht natürlich auch so.

#8090905
Lesenswert?

Thomas S. schrieb:

Wieso Port? Meine DCF-LED ist reine Hardware, ebenso wie der zuschaltbare Signalton - beide direkt am Ausgang des Empfangsmoduls. Wenn Daten als fehlerhaft bewertet werden, wird das im Display gezeigt.

Der Ausgang des DCF-77-Moduls von Pollin ist so gut wie gar nicht belastbar. Er kann keine LED direkt betreiben,

Das ist bekannt, weshalb man einen Treiber an das Modul setzt, gerne CMOS 40xx.

Ob S. schrieb:

daher habe ich das Modul direkt an einen Port des Prozessors gehängt und betreibe mit einem anderen die LED.

Nunja, andere würden einfach einen LL-MOSFET nehmen.

Für FET ist die Luft recht dünn, wenn man nur 3 Volt fährt.

Das muss jetzt nicht der drölfunschwanzichste Thread werden, gibt es schon:

Beitrag "Re: Handhabung Pollin-DCF77-Modul?"

#8091145
Lesenswert?

Thomas S. schrieb:

DCF senkt ja seine Sendeleistung im Sekundentakt für 100 ms, 200 ms oder 1000 ms.

Fiel mir nur zufällig noch auf. Eine Trägerabsenkung um 1000 ms ist nicht vorgesehen.

Es ist das Charakteristikum von DCF77, dass die 59. Sekundenmarke schlichtweg fehlt. Und es gibt entsprechende Überlegungen, wie man das programmtechnisch dann umsetzt, um einen Minutenanfang zu erkennen.

ciao
gustav

#8091584
Lesenswert?

SCNR: Habe nochmal aus der Bastelkiste ein DCF77-Empfangsmodul herausgekramt. Tatsächlich steht im Beipackzettel, dass die Pinbelegung noch nachgereicht werden müsste. Hier habe ich die LED zwischen Ausgang und GND über den Innenwiderstand des Drehspulmessgeräts geschaltet (100µA-Bereich). Dabei werden die Austastungen (für die meisten damals kursierenden ASM-Programme "richtig") von H nach L gezeigt. Müsste so direkt einen AVR µC Eingangsport bedienen können.

Was mir noch auffiel:

Ob S. schrieb:

Oder einfach zuerst mal: Warte noch eine Weile. Diese einfachen AM-Empfänger brauche oft längere Zeit, um ihre AGC korrekt einzupegeln.

Nun ja, bei dem im Video gezeigten Aufbau dauerte es keine 10 Sekunden.

Weiterhin viel Spaß!

ciao
gustav

P.S.: Weil ich nicht mehr weiß, wo ich Antenne und Empfangsmodul gekauft hatte, das Bildchen mit den Etiketten. Evtl. findet man die genaue Bezugsquelle nachträglich noch. Habe ich mir geschenkt.

Angehängte Dateien:
#8091602
Lesenswert?

Manfred P. schrieb:

Thomas S. schrieb: (..)

Nunja, andere würden einfach einen LL-MOSFET nehmen.

Für FET ist die Luft recht dünn, wenn man nur 3 Volt fährt.

LL-Mosfets für Ugs <3,3V gibt es genug, nur halt nicht in THT. IRLML2502 wäre geeignet.

Das muss jetzt nicht der drölfunschwanzichste Thread werden, gibt es schon: Beitrag "Re: Handhabung Pollin-DCF77-Modul?"

"drölfunschwanzichste"..sicher dass das richtig geschrieben ist? Klingt ja ein wenig schmuddelig;-(

Na ja, das du solltest den Usern schon selbst überlassen.

Thomas S. schrieb:

Der Ausgang des DCF-77-Moduls von Pollin ist so gut wie gar nicht belastbar. Er kann keine LED direkt betreiben,

Gestern mal gemessen, das Pollin Modul bricht bei 33K Last (ca. 100uA) um 130mV ein. VCC ist 3,2V.

: Bearbeitet durch User
(Firma: DC3AX) #8091796
Lesenswert?

Karl B. schrieb:

Thomas S. schrieb:

DCF senkt ja seine Sendeleistung im Sekundentakt für 100 ms, 200 ms oder 1000 ms.

Fiel mir nur zufällig noch auf. Eine Trägerabsenkung um 1000 ms ist nicht vorgesehen. Es ist das Charakteristikum von DCF77, dass die 59. Sekundenmarke schlichtweg fehlt. Und es gibt entsprechende Überlegungen, wie man das programmtechnisch dann umsetzt, um einen Minutenanfang zu erkennen. ciao gustav

Das ist tatsächlich DIE Frage, die man sich stellt, wenn man so ganz unbedarft und ohne vorher anderer Leute Code gelesen zu haben, mit einer eigenen Lösung anfängt.

Ich habe damals einen Systemweiten Sekunden-Timer gestartet, der ein paar Millisekunden nach geht. Der wurde nachgeführt. Für eine Anzeige ist das völlig ausreichend und selbst für einen Taktgeber ist es unerheblich, ob die regelmäßigen Pulse alle um einen gemeinsamen Zeitraum verschoben sind. Mit dem Bloßen Auge kann man auch nicht erkennen, dass da eine Verzögerung ist. Mit dem Puls kann man aber jederzeit fehlende Sekunden-Marken überbrücken.

Es gibt aber auch Selbstbauten, die zeigen :59, setzen 1 Sekunde aus und springen dann auf :01. Hab ich auch schon gesehen.

Der nachgeführte Timer hat zudem wenige ms vor dem zu erwartenden Puls erst die Erkennung des Pulses eingeschaltet, so wurden alle Spikes zwischen den Sekunden ausgeschlossen.

(Firma: DC3AX) #8091844
Lesenswert?

Ich sollte "nachgehen" vielleicht verdeutlichen.

Er geht nicht langsamer, sondern er triggert immer versetzt. Ich weiß nicht mehr, was sich als gut funktionierend herausgestellt hat, aber im Grunde gibt es einen Interrupt, der schaltet ab 980ms den Interrupt frei, der auf den GPIO der DCF Uhr reagiert. Um 1010ms gibt es einen Interrupt, der schaltet die Sekunden optisch weiter. Gleichzeitig startet er das Einlesen von 8 GPIO Zuständen zur Erkennung einer Sekundenmarke und 100ms später werden noch mal 8 GPIO Zustände gemittelt um eine 1 zu erkennen.

Der GPIO Interrupt nutzte damals Assembler und Assembler-Befehle-Takte zählen, damit man den Interrupt Timer korrigieren konnte. Am Ende hat er sein eigenes Enable Flag noch gelöscht.

Das ganze hat sehr gut funktioniert, die Uhr selber habe ich irgendwann bei einem Umzug noch gesehen, aber den AVR Code habe ich vermutlich nicht mehr.

#8091856
Lesenswert?

Hallo und schön, dass die Programmierseite wieder in den Vordergrund rückt. OK. Die mir bekannten TTL-Varianten hatten zur Erkennung des Minutenbeginns, bzw. zur Erkennung, dass eine Marke ausgelassen wird, extra einen NE555-Timer eingebaut.

Beim vorgestellten MSF60-Decoder belasse ich es bei der unschönen, nicht korrekten Sekundenanzeige, wobei tatsächlich erst eine halbe Sekunde nach Minutenbeginn, eben durch Auswertung der dafür im Code vorgesehenen 500ms-Austastung die Synchronistation hergestellt wird. Die Sekundenanzeige zeigt dann sofort 01. Kann noch optisch etwas aufgehübscht werden.

Nun zurück zu der programmtechnischen Lösung der Erkennung des Minutenbeginns bei DCF77 nach Auslassen der 59. Sekundenmarke:

Es wird in dem besagten populären AVR-ASM-Programm mit Flags als den zugewiesenen Zuständen zugewiesene Bits und unter Zuhilfenahme des Speicherbits im Statusregister mit entsprechenden Sprungbefehlen gearbeitet. (Das Carrybit spielt auch eine essenzielle Rolle.)

Dabei wird im Flag-Register nicht nur der aktuelle logische Zustand am Port, der die Impulse empfängt, gespeichert, sondern in einem zugewiesenen Registerbit unter anderem auch der Zustand einen Timer-Interrupt davor.
Bei einem Portzustand-Abfragezyklus von 1/100 Sekunde ruft man den Zustand der Flags ab und verzweigt in entsprechende Unterprogramme.
In einem speziellen Sprungbefehl ist das Argument zum Beispiel mit 150 gesetzt. Hier wird stets der Zustand des Ports zum Zeitpunkt eine ISR vorher abgefragt. Ist es 150 mal hintereinander "High", dann sind 1,5 Sekunden vergangen. Dabei wird dann das entsprechende Flagbit ins Speicherbit des Statusregister kopiert, damit der entsprechende Sprungbefehl aktiviert werden kann. Beim Durchlaufen der Interruptroutine werden die Flags entsprechend gesetzt. In der Main-Routine dann ausgelesen, Ausgaberoutinen abgerufen und bestimmte Flags wieder gelöscht. Zum Beispiel: .def flags = r11 ; Verschiedene Flags
; Bit 0: akueller DCF77-Zustand - high oder low
; Bit 1: vorheriger DCF77-Zustand
; Bit 2: Uhr wurde mind. einmal synchronisiert
; Bit 3: Start neue Minute;TimerISR set,main reset
; Bit 4: Datum gueltig
; Bit 5: nicht belegt
; Bit 6: nicht belegt
; Bit 7: nicht belegt

ciao
gustav

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren