Hallo, also ich will mir eine Digitaluhr bauen, deren Uhrzeit ich über ein DCF-Modul bestimmen möchte. Die Uhr funktioniert ohne das Modul schon, aber nun möchte ich mir eine Leiterplatte fertigen, da ich bisher nur alles auf dem Steckbrett aufgebaut hatte. Mir ist allerdings nach der Fertigstellung des Layouts der Gedanke gekommen, wie ich das DCF-Signal ohne Benutzung der UART-Schnittstelle auswerten soll, da ich hierfür nicht extra eine RS232-Buchse oder einen FTDI-Chip+USB mit auf die Leiterplatte nehmen wollte. Sollte man denn unbedingt die UART-Schnittstelle für die Auswertung des Signals (mit einem ATmega8) nutzen oder kann man sie auch ungenutzt lassen? Ich weiß nämlich nicht wie schwer oder leicht sich das DCF-Signal händeln lässt!
Hier kannst du was über DCF77 Nachlesen: http://pic-projekte.de/wordpress/?p=572 Ich würde das DCF ohne UART auswerten. Um Ehrlich zu sein, wüsste ich gar nicht, wie es mit UART gehen würde...
Naja, ein bisschen hängt das ganze davon ab, was für ein "DCF-Modul" da verwendet wird; es gibt ja auch welche mit "Eigenintelligenz", die die Uhrzeit fertig decodiert als seriellen Datenstrom liefern. Andere Module sind wenig mehr als ein 77.5-kHz-Empfänger, der das DCF-Nutzsignal mit geeignetem Pegel für einen µC-Portpin liefert.
Also als Modul möchte ich folgendes Modell von Reichelt verwenden: http://www.reichelt.de/DCF77-MODUL/3//index.html?ACTION=3&GROUPID=3636&ARTICLE=57772&SHOW=1&OFFSET=16&
Das ist nur ein nackter Empfänger. Dessen Ausgangssignal musst Du an einen Eingangspin anschließen, dessen Pegel Du ausreichend oft mit Deinem Programm abfragen musst. Eine UART oder ähnliches ist da nicht hilfreich.
Max H. schrieb: > Ich würde das DCF ohne UART auswerten. Um Ehrlich zu sein, wüsste ich > gar nicht, wie es mit UART gehen würde... Das ist simpel: Passende Baudrate einstellen und auf Empfang gehen. Wie genau, dafür gibt es verschiedenen Möglichkeiten. Z.B. für Low-aktive Pulse: (1Startbit+8Datenbit) / 150ms = 60Bit/s. Schon liefert die USART 59 mal in der Minute einen Interrupt und aus dem Zustand des FramingError-Bits läßt sich ablesen, ob es ein 200ms-Puls war (dann ist FE gesetzt) oder ein 100ms-Puls (dann ist FE nicht gesetzt). Alternativ kann man sich auch (ggf. zusätzlich) das empfangene Bitmuster anschauen. Bei einem langen Puls sollte eine Null empfangen werden, bei einem kurzen Puls hingegen sollten zwei bis vier der niedrigwertigsten Bits gesetzt sein, also 3,7 oder 15 empfangen werden.
c-hater schrieb: > Das ist simpel:[...] Ich verstehe, danke. Meiner Meinung nach bringt das keinen wirklichen Vorteil gegenüber der Auswertung mit Interrupt oder Input Capture.
Max H. schrieb: > c-hater schrieb: >> Das ist simpel:[...] > Ich verstehe, danke. > Meiner Meinung nach bringt das keinen wirklichen Vorteil gegenüber der > Auswertung mit Interrupt oder Input Capture. Davon einmal abgesehen, dass ich deine Meinung nicht teile, habe ich eine Frage: Was ist der Unterschied zwischen "bring keinen Vorteil" und "bringt keinen wirklichen Vorteil"?
Max H. schrieb: > Meiner Meinung nach bringt das keinen wirklichen Vorteil gegenüber der > Auswertung mit Interrupt oder Input Capture. Tut es natürlich nicht. Der Vorteil ist einfach nur, daß es den wertvollen 16Bit-Timer samt IPC-Mechanismus für Sachen freisetzt, die man nicht mal eben mit einer UART oder auch durch primitives Polling abbügeln kann...
Rufus Τ. Firefly schrieb: > Das ist nur ein nackter Empfänger. Dessen Ausgangssignal musst Du an > einen Eingangspin anschließen, dessen Pegel Du ausreichend oft mit > Deinem Programm abfragen musst. Warum soll man das Signal nicht z.B. mit der SPI-Hardware in den µC rein tackern?
Bemeser schrieb: > dass ich deine Meinung nicht teile Was ist deiner Meinung nach der Vorteil? Wenn der UART besetzt ist, ist die Lösung mit Input Capture oder Interrupt scher besser geeignet. Mike schrieb: > Warum soll man das Signal nicht z.B. mit der SPI-Hardware in den µC rein > tackern? Wie würdest du es mit dem SPI lösen?
Max H. schrieb: > Wie würdest du es mit dem SPI lösen? Die ist in diesem Zusammenhang eher nur als eine Art zusätzlicher Timer zu gebrauchen, wenn alle regulären Timer und auch alle USARTs mit wichtigeren Sachen beschäftigt sind und auch keine Sekundärnutzung der Timer möglich ist, weil keiner davon frei durchläuft oder alle mit sehr hoher Überlaufrate arbeiten. Aber auch diese Nutzung kann unter den genannten Bedingungen eben ein brauchbarer Ausweg sein.
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.