Forum: Mikrocontroller und Digitale Elektronik kein high pegel vom DCF empfänger


von Franz (Gast)


Lesenswert?

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
1
ISR (TIMER1_COMPA_vect)
2
{
3
    if ((PINB & (1<<DCF77_TCO_PIN))) uart_sendString("1");
4
    else uart_sendString("0");
5
}

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

von HildeK (Gast)


Lesenswert?

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?

von Jens G. (jensig)


Lesenswert?

Vielleicht braucht der einen PullUp-R an TCO?
ODer Du hast PB0 nicht sauber als Eingang initialisiert.

von pegel (Gast)


Lesenswert?

https://www.pollin.de/productdownloads/D810054B.PDF

Hast Du eine Verzögerung vom anlegen VCC bis PON auf GND eingebaut?

Der Satz unter Technische Daten auf Seite 2 ist auch interessant.

von Gerald K. (geku)


Lesenswert?

Wird vielleicht ein externer Pullup-Widerstand benötigt?

von c-hater (Gast)


Lesenswert?

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...

von c-hater (Gast)


Lesenswert?

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...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Matthias S. schrieb:

> Es gibt ein DCF Modul von Pollin, das einen Pullup benötigt

Nein.

von Wolfgang (Gast)


Lesenswert?

Über einen 100kΩ Pull-Up zu diskutieren, ist doch nun Kinderkram.
Ranhängen und gucken, ob der Pegel sich damit ändert ...

von Gerald K. (geku)


Lesenswert?

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).

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.