Forum: Mikrocontroller und Digitale Elektronik DCF77 (Pollin) an INT0


von Robin F. (deadhunter)


Angehängte Dateien:

Lesenswert?

Moin!

Ich habe ein DCF77 Modul bei Ebay ersteigert.
Datenblatt und Bestell-Nr. stimmen mit dem von Pollin überein, daher 
wird es das wohl sein.

Jetzt habe ich ein wenig rumexperimentiert und soweit das Modul ans 
laufen bekommen. Mit einem alten, analogen, Dezibel-Meter + Transistor 
am DATA-Pin empfängt es jede Sekunde einen Ausschlag ( Ein Metronom 
hätte ich dann schon einmal ;) ).

Das 59. Bit wird auch hörbar bzw. sichtbar ausgelassen. Daher gehe ich 
davon aus, dass der Empfang i.O. ist.

Jetzt stellt sich mir nur die Frage, wie ich das ganze an den AtMega8 
Int0 Pin anschliessen soll. (Die aktuelle Schaltung im Anhang)


Gruß Robin

von Georg G. (df2au)


Lesenswert?

Mittels Draht verbinden?

Am Eingang den Pullup einschalten. Falls das Modul nicht OC oder OD ist 
(bin zu faul, jetzt nachzulesen) war es das dann. Sonst musst du eine 
Pegelanpassung machen.

von c-hater (Gast)


Lesenswert?

Robin F. schrieb:

> Jetzt stellt sich mir nur die Frage, wie ich das ganze an den AtMega8
> Int0 Pin anschliessen soll.

Falls VCC der abgebildeten Schaltung gleich VCC des Atmel: Einfach 
drantüdern.

Wenn nicht, hättest du was dazu schreiben müssen, weil sonst keine 
sinnvolle Antwort möglich ist.

von Robin F. (deadhunter)


Lesenswert?

Oh, da habe ich vergessen den Text zu ändern.

VCC = 5V

Daher auch die LED um auf ca. 3V zu kommen. Hatte da auch schon an einen 
LP2950 gedacht.

von c-hater (Gast)


Lesenswert?

Robin F. schrieb:

> VCC = 5V
>
> Daher auch die LED um auf ca. 3V zu kommen.

Unnötig. Jedenfalls, wenn es sich wirklich um das Pollin-Modul oder ein 
baugleiches handelt. Das kann auch mit 5V laufen.

Falls nicht, kommt es darauf an...

Wenn das Modul wenigstens 3.3V abkann, dann kannst du den Ausgang 
ebenfalls direkt an den mit 5V betriebenen AVR tüdern. Auch wenn hier im 
Forum abweichende Meinungen bestehen: Zehntausende verkaufte AVR NetIO 
können nicht lügen. Da läuft der ENC28J60 auch nur mit 3.3V, ist direkt 
an die Pins des AVR getüdert und das funktioniert einwandfrei.

Wenn dein Modul allerdings wirklich nur 3V abkann, dann wird es wirklich 
zu eng. Dann mußt du für eine zuverlässige Funktion eine Pegelanpassung 
vornehmen. Einfach einen NPN-Transistor mit Basiswiderstand von ca. 100k 
an das Modul, Emitter an Masse und Kollektor an den Pin des AVR. Beim 
AVR den Pullup für den Pin einschalten (ersatzweise kannst du natürlich 
auch einen zusätzlichen Widerstand vom Kollektor nach VCC vorsehen, aber 
wozu, wenn der AVR schon einen eingebauten hat?).

Allerdings wird durch diese Anpaßstufe natürlich das Signal invertiert. 
Bescheuerte DCF77-Decoder müssen dann ggf. angepaßt werden, sinnvoll 
programmierten hingegen ist der Pegel wurscht, die interessieren sich 
sowieso nur für die Pegeländerungen...

von Robin F. (deadhunter)


Lesenswert?

Mit 5V habe ich es bereits probiert - Da kam allerdings kein Signal.

Ich werds mal mit dem Transistor probieren. Vielen Dank. Wenns nich 
klappt, melde ich mich nochmal ;)

Gruß

von c-hater (Gast)


Lesenswert?

Robin F. schrieb:

> Mit 5V habe ich es bereits probiert - Da kam allerdings kein Signal.

Das Modul ist zickig. Es kann durchaus Minuten dauern, bis nach dem 
PowerUp der erste Pegelwechsel hinten rauskommt. Das hat weniger mit der 
Betriebsspannung an sich zu tun, viel mehr mit den der Spannung 
überlagerten Störungen. Leider sind µC (auch der AVR) ganz schöne 
EMV-Säue.

Du hast also vielleicht einfach nur nicht lange genug gewartet bzw. 
nicht genug zur Entkopplung der Stromversorgung unternommen. Oder 
beides.

von Ingo (Gast)


Lesenswert?

Ich würde dem Signal keinen extra Interrupt geben, es reicht wenn man es 
in einem gewissen Zeitraster abtastet und auswertet.

von Amateur (Gast)


Lesenswert?

Wie willst Du denn die Nicht-Sekunde erkennen?
Oder reichen Dir schon 59 Ticks pro Minute?
Mir erscheint Dein Ansatz ist überarbeitungsbedürftig.

von Bernie (Gast)


Lesenswert?

... Ist doch ganz elegant mit der LED, um das Modul mit
3 V zu betreiben und mit C1 ist die Versorgung auch schon
etwas entstört.

Wenn das Nodul über eine längere Leitung an die µC-Platine
angeschlossen ist, sollte C1 eher dicht beim DCF-Modul
angeordnet sein.

Transistor ist gut: Pollin garantiert nur 5 µA Ausgangsstrom,
damit fällt am Pull-Up-Widerstand von ca. 10 kOhm nicht genug
Spannung ab. Der Vorschlag von "c-hater (Gast)" ist OK.
Ein mit 5 Volt betriebener AVR erkennt 2,2 Volt +/-0,5 Volt
sicher als "1", oder "0".

Ob du INT0, oder Polling an einem beliebigen Port benutzt,
ist schnurz-piep-egal, wenn du den INT0 (oder INT1) nicht für
andere Funktionen deines Projekts besser einsetzen könntest.

Egal, ob Polling, oder Interrupt: Mit Hife eines Timers
solltest du im Programm bestimmen, ob seit der letzten aktiven
Flanke etwa 0,95...1,05 oder 1,95...2,05 Sekunden (Minutenbeginn)
vergangen sind. - Ansonsten sind es Störpulse.

Für die Dekodierung braucht man sowieso einen Timer.
(lange / kurze Absenkung des Trägers = 0 / 1)

Die "aktive Flanke" = Sekundenbeginn ist auch per Software
gut zu erkennnen. Ansonsten musst du mit einem simplen Voltmeter
prüfen, ob meist Hi-Pegel vorliegt (Falling-Edge), oder die
Spannung am µC-Eingang nur jede Sekunde kurz auf Hi-Pegel geht
(Rising-Edge).

Viel Spaß dabei, DCF war auch mein erstes Projekt!

von Robin F. (deadhunter)


Lesenswert?

Amateur schrieb:
> Wie willst Du denn die Nicht-Sekunde erkennen?
> Oder reichen Dir schon 59 Ticks pro Minute?
> Mir erscheint Dein Ansatz ist überarbeitungsbedürftig.

Es geht um das Signal. Laut Wikipedia wird das 59. Bit ausgesetzt. 
Diesen aussetzer sieht man, wenn man eine LED anschliesst.

Mit den ~3V funktioniert das Modul auf anhieb. Das Signal ist direkt 
abgreifbar.


Ich werde dann die Tage mal weiter testen.
Danke für die vielen Antworten!

Gruß

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.