Hallo,
ich habe noch etwas Probleme ein DCF77-Modul (müsste von Pollin sein,
lag aber schon eine Weile in der Bastelkiste... Aufschrift unten:
WHP0027V03) zum Laufen zu bekommen.
Um es mit 3.3V und 5V einsetzen zu können und belastbare Logikpegel
herauszubekommen habe ich mir eine kleine Adapterplatine gebaut:
Grundsätzlich läuft das ganze... ich bekomme sauber 59 Pulse pro Minute, und High+Low eines Pulses ist zuverlässig 979..981 Zähler lang (~1000ms-Debugausgabe-Quarzgenauigkeit)
48
49
Dummerweise dauern die Absenkungen nicht 100ms für 0 und 200ms für 1 sondern relativ chaotisch zwischen 190ms und 335ms (Auswertung siehe Attachment). Das ändert sich auch nach Stunden nicht.
50
51
Wenn ich mir in dem Graph das tiefste "Tal" bei 270 als Unterscheidungspunkt zwischen 0 und 1 nehme, bekomme ich keine sinnvollen Werte - einige Bits scheinen zwar durchgehend 1 zu bleiben, aber die Datumsangaben im hinteren Teil ändern sich von Minute zu Minute.
Hat jemand eine Idee was da schief laufen könnte?
P.S. wohne nur wenige KM vom Mainflingen entfernt, ist das Signal
vielleicht zu stark?
danke,
Andreas
Andreas K. schrieb:> ich habe noch etwas Probleme ein DCF77-Modul (müsste von Pollin sein,
Wenn es das (oder eins von denen) ist, ergibt die Schaltung definitiv
keinen Sinn. Was zum Teufel hast du dir dabei eigentlich gedacht?
Deine Schaltung passt nicht zu dem Pollin Modul. Wenn es nicht weit vom
Mikrocontroller entfernt ist und dieser mit 3,3 bis 4V versorgt wird,
kannst du seinen Ausgang direkt an den Mikrocontroller anschließen.
Ansonsten würde mit einem CMOS Level-Shifter arbeiten.
Andreas K. schrieb:> Um es mit 3.3V und 5V einsetzen zu können und belastbare Logikpegel> herauszubekommen habe ich mir eine kleine Adapterplatine gebaut:
Hast du mal einfach nur eine Spannungsversorgung genommen und das Modul
damit betrieben (den Arduino dazu mal ganz weit weggestellt, braucht man
dafür nicht)?
Wie sieht das Oszillogramm am Sekunden-Ausgang (o.ä.) aus?
> Grundsätzlich läuft das ganze... ich bekomme sauber 59 Pulse pro Minute,
Das ("sauber" 59 Pulse) erkennt man in deinem "oszillographierten
Bildchen" nicht wirklich...
:-((
EDIT: Bei dem Schaltbild bekommt man Augenkrebs.
Hast du vielleicht auch ein Stück Papier und einen Schreiber zur Hand?
Dann würde das Jeder entziffern können. ;-)
EDIT2:Kannst du "Minusbewerter" dich auch schriftlich äußern und damit
einen konstruktiven Beitrag leisten?
Andreas K. schrieb:> pinMode(DCF77_GND,OUTPUT);digitalWrite(DCF77_GND,LOW);> pinMode(DCF77_VCC,OUTPUT);digitalWrite(DCF77_VCC,HIGH);
Warum das?
Andreas K. schrieb:> pinMode(DCF77_DATA,INPUT);digitalWrite(DCF77_DATA,LOW);
Wo kommt der Highpegel her? ;)
c-hater schrieb:>> ich habe noch etwas Probleme ein DCF77-Modul (müsste von Pollin sein,> Wenn es das (oder eins von denen) ist, ergibt die Schaltung definitiv> keinen Sinn. Was zum Teufel hast du dir dabei eigentlich gedacht?
Warum nicht?
Gedanke: 5V Versorgungsspannung mit Spannungsregler auf 3.3V bringen
(Modul verträgt keine 5V), und den schwachen Ausgangsimpuls über
Transistor schalten um damit eine blinkende LED+einen belastbaren
Ausgang zu haben.
>Deine Schaltung passt nicht zu dem Pollin Modul.
Inwiefern? Ich habe im Schaltbild die Position der Modulanschlüsse aus
Gründen der Lesbarkeit verschoben, physikalische Reihenfolge ist GND,
TCO,PON, VCC.
>Wenn es nicht weit vom>Mikrocontroller entfernt ist und dieser mit 3,3 bis 4V versorgt wird,>kannst du seinen Ausgang direkt an den Mikrocontroller anschließen.
Soll Ardunio-Kompatibel sein, also 5V.
>Ansonsten würde mit einem CMOS Level-Shifter arbeiten.
Für ein Bit in einer Richtung reicht ein Transistor nicht?
>Hast du mal einfach nur eine Spannungsversorgung genommen und das Modul>damit betrieben (den Arduino dazu mal ganz weit weggestellt, braucht man>dafür nicht)?>Wie sieht das Oszillogramm am Sekunden-Ausgang (o.ä.) aus?
Habe kein gescheites Oszilloskop. Ich probiere es demnächst mal mit
meinem DSO138.
>Das ("sauber" 59 Pulse) erkennt man in deinem "oszillographierten>Bildchen" nicht wirklich...
Sorry, habe ich vielleicht zu unklar ausgedrückt. Das ist kein
Oszillogramm. Das ist eine statistische Kurve der Pulsdauern. Die Pulse
werden wie gesagt vom Arduino sauber erkannt, es ist genau 1 Puls pro
Sekunde, kein Bouncen oder ähnliches.
Eine Minuten von den Zeiten sieht z.B. so aus:
[HighZeit+LowZeit=SummeZeit]
[1664+296=1960][731+249=980][732+247=979][736+243=979][681+299=980][719+
261=980][715+263=978][715+265=980][715+265=980][669+310=979][671+309=980
][744+235=979][767+212=979][692+287=979][752+228=980][769+210=979][772+2
08=980][755+224=979][688+293=981][756+222=978][758+222=980][683+296=979]
[676+303=979][666+315=981][677+303=980][735+243=978][753+227=980][681+29
8=979][708+271=979][750+230=980][713+267=980][752+227=979][753+227=980][
681+298=979][669+310=979][721+259=980][773+205=978][735+245=980][751+229
=980][686+293=979][763+216=979][733+247=980][726+254=980][757+223=980][6
89+290=979][683+296=979][723+257=980][762+217=979][683+296=979][737+242=
979][757+223=980][767+212=979][740+240=980][750+229=979][722+257=979][75
6+224=980][670+310=980][756+223=979][756+223=979]
>EDIT: Bei dem Schaltbild bekommt man Augenkrebs.>Hast du vielleicht auch ein Stück Papier und einen Schreiber zur Hand?>Dann würde das Jeder entziffern können. ;-)
Tuts auch Paint?
Jens M. schrieb:> Andreas K. schrieb:>> pinMode(DCF77_GND,OUTPUT);digitalWrite(DCF77_GND,LOW);>> pinMode(DCF77_VCC,OUTPUT);digitalWrite(DCF77_VCC,HIGH);>> Warum das?
Das Modul steckt in der IO-Leiste vom Arduino, GND und VCC werden über
IO-Pins bereitgestellt.
> Andreas K. schrieb:>> pinMode(DCF77_DATA,INPUT);digitalWrite(DCF77_DATA,LOW);>> Wo kommt der Highpegel her? ;)
Der Pin steht auf INPUT. Der Ausgang wird auf LOW geschrieben um den
internen Pullup auszuschalten.
Andreas K. schrieb:>>>EDIT: Bei dem Schaltbild bekommt man Augenkrebs.>>Hast du vielleicht auch ein Stück Papier und einen Schreiber zur Hand?>>Dann würde das Jeder entziffern können. ;-)>> Tuts auch Paint?
genauso schlimm, aber was solls.
schalte zu der LED die auf die Dataleitung geht einen 2k2 Widerstand
parallel damit damit der Highpegel zuverlässig erreicht wird, so wird
das nix. Dann sollte das mit dem Timing auch passen.
MiWi schrieb:>> Tuts auch Paint?>> genauso schlimm, aber was solls.
..immerhin ein klein wenig besser... ;-)
___
In deiner Schaltung schwirrt die Data-Leitung irgendwo herum, bloß einen
definierten Puls kriegst du da nicht raus.
Sieh dir mal diese Schaltung an: http://www.grother.de/dcf-modul-01.html
Ob LD-Regler oder Zenerdiode ist prinzipiell egal. Ich würde die
Diodenlösung wählen. Wer weiß (je nach Aufbau), ob der Regler nicht auch
Schweinereien - z.B. Schwingen- macht. ^^
Die diversen Module brauchen überwiegend (lt. Gurgel) KEINEN
Pullup-Widerstand; unter Umständen evtl. sogar kontraproduktiv.
Ich habe vor einem guten Jahr auch mit einem Pollin-Modul herumgespielt.
Das Modul ist am Ausgang nur mit 1-2µA (habe nicht genau im Kopf)
belastbar. Welche Verstärkung hat der Transistor den du verwendest? Es
müsste aber auch ohne Transistor funktionieren, Ausgang vom Modul direkt
an Eingang, ohne Pullup. 3V werden als High von µC zuverlässig erkannt.
Übrigens, bei mir läuft so mit Direktkopplung auch über einem ~1.5m
langem PC-Mauskabel.
Andreas K. schrieb:> Der Pin steht auf INPUT. Der Ausgang wird auf LOW geschrieben um den> internen Pullup auszuschalten.
Ja genau.
Wo kommt der Highpegel her? ;)
Und der Basiswiderstand für den Verstärkertransistor fehlt. Die Endstufe
des Moduls kurzzuschließen könnte sich auf den AGC oder Komparator
auswirken.
Kein Wunder, daß viele Deine Schaltpläne bäh finden.
Für Schaltpläne haben sich allgemein folgende Regeln durchgesetzt:
- VCC oben
- Signalfluß von links nach rechts (in Leserichtung).
- GND unten
Den Transistor kannst Du weglassen und über den Komparatoreingang mit
1,1V vergleichen.
Den Kondensator auch und in Software entprellen (Mehrfachabtastung).
Michael M. schrieb:> Sieh dir mal diese Schaltung an:....
Noch mal ein wenig deutlicher: Bau' die Schaltung genau SO auf.
Deine (nach deinem Malplan) kann nie und nimmer funktionieren: Der
Collector liegt auf GND, der Emitter hat irgendein positives Potential
(Invers-Betrieb??)
Wir sprechen von einem NPN-Transistor. ^^ Da sollte doch der C der
positivste Punkt sein...
Ozvald K. schrieb:> Das Modul ist am Ausgang nur mit 1-2µA (habe nicht genau im Kopf)> belastbar.
Na, ein paar mehr dürften es schon sein, sonst wären da nicht
Pullup-Emfehlungen in der Größenordnung ca. 30k.
Peter D. schrieb:> Den Kondensator auch und in Software entprellen (Mehrfachabtastung).
Sind die Eingänge eines Arduino und Consorten soo zappelig, so dass man
sie mit "Baldrian" füttern muss?
Ich habe zwar noch nie solche Module in der Hand gehabt und weiß daher
nicht, welche Qualität der Ausgang liefert. Dass er prellt, kann ich mir
nicht wirklich vorstellen...
Michael M. schrieb:> Ich habe zwar noch nie solche Module in der Hand gehabt und weiß daher> nicht, welche Qualität der Ausgang liefert. Dass er prellt, kann ich mir> nicht wirklich vorstellen...
Langwelle läßt sich sehr einfach stören (Gewitter, Staubsauger, Monitor
usw.).
Michael M. schrieb:> Ozvald K. schrieb:>> Das Modul ist am Ausgang nur mit 1-2µA (habe nicht genau im Kopf)>> belastbar.> Na, ein paar mehr dürften es schon sein, sonst wären da nicht> Pullup-Emfehlungen in der Größenordnung ca. 30k.
Ich weiß nur, dass das Pollin Modul DCF1 mit internem Pullup des AVR
µC-s nicht mehr funktioniert hat.
Peter D. schrieb:> Langwelle läßt sich sehr einfach stören (Gewitter, Staubsauger, Monitor> usw.).
Meine Erfahrung ist, dass wenn das Signal derartig gestört ist, hilft
auch kein Entprellen mehr. Das Modul prellt nicht wie ein Taster.
Ich würde auch davon absehen, die GND Leitung über einen I/O Pin zu
schalten. GND muss immer GND sein, sonst schießt du dir früher oder
später ins eigene Knie.
Hi,
Zitat:
Folgende Infos sind unbedingt nötig, um es zum laufen zu bekommen:
- Man benötigt noch einen 10uF Elko.(nicht sicher, aber jetzt
funktioniert es endlich, weshalb ich ihn nicht wieder abmache)
- Man benötigt einen Comparator, zumindest softwareseitig, bei mir wurde
Umin=2,58V, Umax=2,80V ausgegeben. Mein Adruino konnte das nicht als
"digitalRead" verarbeiten, mit der Bib "analogComp" gings.
-Der Signal-Pin (TCO) ist mit dem Signalabnehmer und einem
10K-Widerstand zu verbinden, dessen anderes Ende mit GND verbunden wird.
Als ein PULL-DOWN(!!!!) Widerstand und nicht wie im Datenblatt direkt an
den MCU. Bei mir hat ein Pullup nicht funktioniert.
-Für besseren Empfang die Antenne "tangential" zu Frankfurt ausrichten.
/Zitat
Quelle:
https://www.pollin.de/p/dcf-77-empfangsmodul-dcf1-810054
Und am PON-Pin mal herumspielen.
Einige sagen, dauern auf Low. Andere das Gegenteil. Wieder andere sagen,
nach Einschalten wieder abklemmen. Ist sozusagen ein Starter.
Deswegen "herumspielen".
ciao
gustav
Karl B. schrieb:> Man benötigt einen Comparator, zumindest softwareseitig
Nicht ganz richtig, diese Module liefern saubere digitale Signale.
Was du brauchst, ist irgendwie eine Pegelanpassung auf die 5V des
Mikrocontrollers. Das kann man auf vielfältige Weise machen, z.B. mit
dem Komparator, aber auch mit einem Transistor oder einem Logikgatter.
> Signalabnehmer
Was ist ein "Signalabnehmer"?
> Als ein PULL-DOWN(!!!!) Widerstand und nicht wie im> Datenblatt direkt an den MCU
Ein Schaltplan wäre sicher verständlicher.
Stefan ⛄ F. schrieb:> Ein Schaltplan wäre sicher verständlicher.
Hi,
ist das, was man im Netz als Kundenrezension und Info findet, ist nicht
von mir.
Karl B. schrieb:> Zitat:
....
/Zitat
War auch deutlich als Zitat gekennzeichnet.
Disclaimer: Zu Risiken und Nebenwirkungen fragen Sie...
Hätte eventuell weiterhelfen können.
ciao
gustav
@ Andreas
War die Lösung für dein Problem nun zu kompliziert oder zu einfach?
Hast du deine Schaltung auf den notwendigen Stand der Dinge gebracht?
Har sich der gewünschte Erfolg eingestellt?
Michael M. schrieb:> @ Andreas>> War die Lösung für dein Problem nun zu kompliziert oder zu einfach?> Hast du deine Schaltung auf den notwendigen Stand der Dinge gebracht?> Har sich der gewünschte Erfolg eingestellt?
Ich habe die DATA-LED mal gebrückt (statt 2k2 parallel), so dass der
Datenausgang direkt über 470 Ohm auf Plus gezogen wird.
Unterschied im Timing: Keiner. Ich würde eigentlich auch erwarten dass
eine (rote) LED gegen Plus die nicht geschaltete Leitung schnell genug
auf logisch high zieht bei 5V Betriebsspannung.
Dann habe ich das Modul mal an einen Analog-Eingang des Arduinos gehängt
um mir einen Eindruck vom Signalverlauf machen zu können (siehe Bilder).
Sieht für mich von den Flanken eigentlich relativ gut aus, nur die
Absenkungen haben halt nicht die richtige Länge (In der Detailansicht:
430 Pixel Gesamtsekunde vs 96 Pixel Absenkung = 223ms).
Die restlichen Vorschläge probiere ich über Ostern mal aus...
Andreas K. schrieb:> Ich würde eigentlich auch erwarten dass> eine (rote) LED gegen Plus die nicht geschaltete Leitung schnell genug> auf logisch high zieht bei 5V Betriebsspannung.
5V - 2V = 3V, und 3V ist nicht für jeden Mikrocontroller "high" genu,
wenn er mit 5V versorgt wird.
Was mir an deinen Bilder gar nicht gefällt ist der unregelmäßige HIGH
Pegel. Der müsste eigentlich glatt wie ein Babypopo sein, denn DCF
Module benötigen eine sehr glatte stabile Spannungsversorgung.
Versorge das Ding zur Gegenprobe mal mit eigenen Batterien.
Andreas K. schrieb:> Ich habe die DATA-LED mal gebrückt (statt 2k2 parallel), so dass der> Datenausgang direkt über 470 Ohm auf Plus gezogen wird.
Nochmal: Bau deine Schaltung wie im gezeigten Beispiel auf!!!
So wird das nix, denn deine aufgemalte Schaltung ist einfach, wie oben
schon beschrieben totaler Murks. Ein Fall für die Tonne...
Andreas K. schrieb:> Unterschied im Timing: Keiner.
Wss für ein Wunder. Woher auch sollte der jetzt kommen?
Vielen lieben Dank an alle die geantwortet haben. Ich konnte das Problem
schrittweise lösen:
1) Das reine DCF-Modul an den Analog-Eingängen eines Arduino-Due (3.3V)
hat ordentliche Signale erzeugt. Mit aktiviertem internen Pullup an TCO
eher schlechtere als ohne -> Modul OK, Pullup unnötig.
2) Ich habe auf meiner Adapter-Platine den 47k Pullup von TCO nach VCC
entfernt und ihn stattdessen als Basiswiderstand vor den Transistor
geschaltet (siehe aktualisierter Plan).
3) Ich habe den Transistor noch mal nachgemessen, ich hatte im
Schaltplan den Pfeil auf der falschen Seite eingezeichnet. Korrigiert.
Damit läuft meine totaler-Murks-Schaltung jetzt eigentlich recht
zufriedenstellend.
Andreas K. schrieb:> Damit läuft meine totaler-Murks-Schaltung jetzt eigentlich recht> zufriedenstellend.
Das Schaltbild sieht zwar immer noch grausam aus, aber Schwamm drüber...
Wie sehen die Timing-Ergebnisse jetzt aus?
Michael M. schrieb:>> Wie sehen die Timing-Ergebnisse jetzt aus?
Gut. Während ca einer Stunde alle Absenkungen zwischen 90..110 oder
190..210 ms, keine erkennbaren Bitfehler.
Beispiel-Minute:
[878+102=980][776+203=979][778+202=980][877+102=979][878+102=980][777+20
3=980][874+103=977][777+204=981][877+102=979][778+203=981][776+201=977][
876+104=980][877+102=979][776+204=980][878+102=980][878+102=980][877+102
=979][776+204=980][876+102=978][876+104=980][779+202=981][878+101=979][7
77+202=979][777+203=980][877+102=979][876+104=980][875+103=978][878+103=
981][877+102=979][776+204=980][877+103=980][778+201=979][877+102=979][77
7+203=980][876+103=979][778+202=980][874+105=979][875+104=979][878+103=9
81][876+103=979][778+202=980][876+103=979][776+203=979][875+104=979][776
+204=980][877+102=979][877+104=981][776+203=979][875+104=979][877+103=98
0][877+102=979][875+104=979][875+105=980][877+103=980][875+104=979][776+
204=980][876+103=979][877+103=980]
Die Spannung High-Pegel kräuseln sich ziemlich (vermute den
Spannungsregler), aber das stört nicht bei der Auswertung.
Interessant das du nur etwa 800 erreichst.
Voller Pegel sollte 1023 sein, nicht viel weniger. 1000 vielleicht.
Das untere Ende ist wegen der Sättigungsspannung ok.
Überleg nochmal genau, wo der Eingang sein High herbekommt ;)
Das Rätsel hast du immer noch nicht gelöst...
Es liegt nicht am Spannungsregler :-)
Nach Jens Hinweis habe ich noch mal die LED kurzgeschlossen damit es
einen "sauberen" Pullup gibt.
Der Zeitpunkt ist im Plot gut zu sehen...
Andreas K. schrieb:> Der Zeitpunkt ist im Plot gut zu sehen...
Wetten das du den Pegel "mit LED" sogar verschieben kannst, wenn du die
LED beleuchtest? Am besten mit was rotem, Laser oder so, oder ein
IR-Strahler.
Mach einfach einen echten Pullup parallel zur LED mit Widerstand, dann
sollte das auch so mit Licht aussehen.
Oder: nutze die Software, um DI auf DO zu kopieren, dann siehst du was
der Prozessor sieht.
Andreas K. schrieb:> Es liegt nicht am Spannungsregler :-)
Über die Brücke geh' ich nicht. Aber ohne Oszi wird das schwer
herauszufinden sein.
> Nach Jens Hinweis habe ich noch mal die LED kurzgeschlossen damit es> einen "sauberen" Pullup gibt.
Uiih, noch mehr Last !
1. Braucht die LED wirklich soviel Stromfluss, so dass du 470R da in
Serie hast? Ich würde den mal auf min. 680R erhöhen.
2. Wieviel mA kann der Controller-Ausgang schadlos max. liefern?
3. Brauchst du die Betriebsanzeige-LED? Du siehst doch schon am Blinken,
dass das Ding läuft.