Hallo,
ich habe ein Atmega328P (mit 3,3V) und ein DCF-Empfangsmodul von Pollin.
Den DCF Empfänger habe ich wie folgt verbunden
VCC -> 3,3 V (maximum)
GND -> GND
TCO -> PB0 (Eingang)
PON -> PD7 (Ausgang auf LOW -> DCF-modul aktiv)
zwischen VCC und GND habe ich noch einen 10 uF Elko (Sollte man laut
Datenblatt machen)
Im Timer-Interrupt (20ms) überprüfe ich den Eingang und möchte dann das
Signal ermitteln.
Momentan habe ich nur eine uart-ausgabe über den Pegel von PB0
Der Timer läuft richtig. Das hatte ich vorher mit einer LED-getestet.
Aber ich bekomme über uart immer nur die 0 ausgegeben.
PD7 (PON) ist auch auf low (mit Multimeter gemessen)
zwischen GND und PB0 (TCO) messe ich mit dem Multimeter Konstant 0,1V.
Leider habe ich kein Oszilloskop um das Signal zu sehen.
Woran könnte es liegen, dass es nie auf high gezogen wird?
Hatte den Selben Empfänager auch mal an einem Arduino (selber platz) und
dort hat es funktioniert. Also das der DCF empfänger defekt ist, würde
ich damit ausschließen.
Habe es auch mal 5 minuten laufen lassen, allerdings war der pegel nie
high
Verrate einfach noch ein wenig mehr.
- Welcher DCF-Empfänger?
- welchen Wert hat DCF77_TCO_PIN
- PullUp am DCF-Ausgang vorhanden (evtl. muss der recht hochohmig sein)
- warum nicht das gesamte kleine Testprogramm im Anhang?
Franz schrieb:> zwischen GND und PB0 (TCO) messe ich mit dem Multimeter Konstant 0,1V.
Dann ist definitiv was kaputt. Da kommt normalerweise entweder das
Signal oder konstant High (wenn kein Signal decodiert werden kann).
Du hast also das Teil geschrottet und/oder einen Kurzschluß TCO nach
GND. Oder beides, weil so ein Kurschluss praktisch sofort den Empfänger
schrottet, genauer: dessen Ausgangstreiber.
> Hatte den Selben Empfänager auch mal an einem Arduino (selber platz) und> dort hat es funktioniert.
Zu diesem Zeitpunkt war er wohl noch heile...
Gerald K. schrieb:> Wird vielleicht ein externer Pullup-Widerstand benötigt?
Nein. Das Pollin-Modul hat eine PushPull-Ausgangsstufe. Braucht also
keinen Pullup.
Da die Ausgangsstufe nur sehr wenig Strom liefern kann, kann ein PullUp
sie sogar dauerhaft beschädigen. Schon die internen Pullups der AVR8 mit
ihren ca. 50kOhm reichen u.U. dafür...
Es gibt ein DCF Modul von Pollin, das einen Pullup benötigt, dabei aber
nur sehr wenig Strom am Ausgang liefern kann. Man kann entweder mit
einem Sourcefollower buffern oder wenigstens eine sehr hochohmigen
Pullup verwenden.
Wimre sind es nur ein paar dutzend µA, die das Modul liefert, man sollte
einen Pullup in Höhe von 100k oder höher in Betracht ziehen.
Franz schrieb:> zwischen GND und PB0 (TCO) messe ich mit dem Multimeter Konstant 0,1V.
Ist das Multimeter vielleicht zu träge um den kurzen Impuls (100 bzw.
200ms einmal pro Sekunde) anzeigen zu können?
Wird der Ausgang HIGH, wenn man die Ferritspule kurz schließt ?
• TCO=GND wenn die Trägeramplitude das Maximum erreicht.
• TCO=VDD wenn die Trägeramplitude absinkt (moduliert wird).
Die DCF Module von Pollin, die hier in den letzten Jahren diskutiert
wurden, haben eine Push-Pull Ausgang, der aber nur sehr wenig Strom
liefert.
Man kann ihn direkt an einen AVR Eingang anschließen, wenn dieser mit
3,3V betrieben wird. Und zwar ohne irgendwelche Widerstände, auch ohne
internen Pullup im AVR.
Wenn der AVR mit 5V betrieben wird, braucht man einen Pegelwandler mit
hochohmigen Eingang (also ein CMOS IC) oder einen NPN Transistor mit
Pull-Up Widerstand am Kollektor (und natürlich mit einem Widerstand an
der Basis, typischerweise 47kΩ).
Diese Module brauchen allerdings eine sehr saubere Versorgungsspannung,
um zu funktionieren. Direkt an den gleichen 3,3V, wo auch der µC dran
hängt, ich keine so gute Idee. Da sollte man mindestens einen R/C Filter
zwischen packen. Besser ist ein eigener Spannungsregler, gerne einfach
aus Widerstand und Zenerdiode oder LED sowie einem Elko zum Glätten
Diese Module mögen auch keine Nähe zu anderen elektrischen Geräten, also
mach da mal ruhig 2 Meter Kabel dran. Weil aber der Ausgang nur sehr
schwach ist und jedes Kabel wie eine Antenne Radiowellen empfängt, must
du dann unbedingt den Ausgang direkt am Modul verstärken, bevor das DCF
Signal ins Kabel geleitet wird.
Stefan ⛄ F. schrieb:> Wenn der AVR mit 5V betrieben wird, braucht man einen Pegelwandler mit> hochohmigen Eingang
Nein, braucht man nicht, jedenfalls nicht unbedingt. Man kann auch
problemlos den in fast jedem AVR8 mindestens einmal vorhandenen
Analogkomparator verwenden, man muss ggf. bloß bei der Auswertung darauf
Rücksicht nehmen, dass sich in der bauteleilesparendsten
Schaltungsvariante (also ohne irgendwelche zusätzlichen Bauelemente)
eine invertierte Logik ergibt.
Wolfgang schrieb:> Über einen 100kΩ Pull-Up zu diskutieren, ist doch nun Kinderkram.> Ranhängen und gucken, ob der Pegel sich damit ändert ...
ein BC547 in der Emitterschaltung am C ein pullup und Pegelinvertierung
zum Auswerten reicht!
Mein Timerintervall ist 10ms damit kann man auch gleich die
Tastenentprellung erledigen. Man muss nur die Flankenwechsel der DCF77
zählen, 50-150ms 1/0 oder 150-250ms 0/1, sowie 800-1200ms neue Minute.
Oszi kann helfen, bei mir sind zuviel Störungen,und ein abgesetzter
DCF77 Empfänger 5-10m vom µC mit sauberer VCC Filterung half.
c-hater schrieb:> Nein, braucht man nicht, jedenfalls nicht unbedingt. Man kann auch> problemlos den in fast jedem AVR8 mindestens einmal vorhandenen> Analogkomparator verwenden
Ja stimmt, den hatte ich vergessen.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang