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
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.
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.
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.
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...
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ß
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.
Ich würde dem Signal keinen extra Interrupt geben, es reicht wenn man es in einem gewissen Zeitraster abtastet und auswertet.
Wie willst Du denn die Nicht-Sekunde erkennen? Oder reichen Dir schon 59 Ticks pro Minute? Mir erscheint Dein Ansatz ist überarbeitungsbedürftig.
... 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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.