Forum: Mikrocontroller und Digitale Elektronik RTC mit DCF-77


von A. Arndt (Gast)


Lesenswert?

Hallo,

gibt es eigentlich ein IC welches eine RTC intern hat mit der 
Möglichkeit der Syncronisation mit Conrad DCF-Modul (von CC) ?

Ein EEprom zur Speicherung wäre auch schön, und das alles als I2C 
Baustein ?

Viel Anforderung, ich weiss, aber wäre ein grosser Schritt für die 
AVR-Technik.

Und wenns dann noch als DIP oder DIL Bauform wäre, wäre es das absolut 
Größte.

Gruss
A. Arndt

www.Ar-Online.de

von Peter D. (peda)


Lesenswert?

Irgendwie sind wir da wohl völlig entgegengesetzter Meinung:

Der Hauptgrund, warum ich einen µC einsetze ist doch, möglichst viel in 
diesen zu integrieren und nicht möglichst viele zusätzliche Bausteine 
außen dranzupappen.

Und RTC, DCF-77 sind Aufgaben, die ein µC spielend leicht so nebenbei 
mit übernehmen kann. Deshalb nehme ich statt solcher externen Bausteine 
lieber ein paar Zeilen Code.

Und es scheinen viele so wie ich zu denken, deshalb gibt es einen wie 
von Dir beschriebenen Baustein erst garnicht.

Aber wenn Du sowas unbedingt haben willst, dann bastele Dir doch diesen 
Baustein z.B. mit einem ATtiny12 selber.


Peter

von A. Arndt (Gast)


Lesenswert?

Hallo,

vielen Dank für Deinen Beitrag, habe auch gehört, dass man die DCF-Uhr 
spielend im Hintergrund mitlaufen lassen kann aber:

Es gibt nur handgebastelte Routinen in ASM oder C, ich nutze FASTAVR, da 
ist es nicht so einfach, es sei denn man nimmt einen wilden Haufen von 
Quelltext, trotzdem weiss ich nicht, wie das im Hintergrund autark 
"mitlaufen" soll, ausser in einer Schleife.
Mit einer Hardwarelösung komme ich besserklar und belege keinen 
Speicherplatz.
Fertige Lösungen anderer sind sehr speziell zugeschnitten auf deren 
Anwendungen und schwer in eigenen Programme intergrierbar.
Es gibt anscheinend keine fertigen Universallösungen von irgendwelchen 
Firmen, in der es einfach 7 Variablen gibt, hh:mm:ss  DD.MM.YY Name of 
Day (NOD)


Die Hardwarelösung, denke ich, läuft wirklich autark, auch wenn der AVR 
mal abstürzt o.ä., ist es schnell wieder eingelesen.


Gruss
A. Arndt

von BernhardT (Gast)


Lesenswert?

RTC mit I2C-Bus gibt es z.B von Phillips (laufen auch noch wenn dem uC 
der Saft ausgeht und konnen teilweise sogar noch Ram bis runter auf 1V 
sichern).
Aber ne DCF77 syncro gibts da nicht. Der E-LAB Pascal compiler kann das. 
Du könntest dir also mit der Demo-Version und einem kleinem AVR recht 
einfach dein Spezial-Chip bauen (auch mit I2C). Es gibt gut 
dokumentierte Beispiele (deutsche Doks..). Must dir also wirklich nur 
noch die Schnittstelle dranbauen.Paskal ist dem Basik recht ähnlich.
Gruß Bernhard

von Peter D. (peda)


Lesenswert?

Ich kenne FASTAVR nicht, aber sollte man da wirklich keinen 
Timerinterrupt schreiben können ?

Das wäre ja echt ein großes Manko, wenn FASTAVR keinerlei Interrupts 
ermöglicht !

Falls doch:

Für die DCF-77-Dekodierung sind Pulszeiten von 100ms ... 2s zu erkennen, 
d.h. ein Timerinterrupt alle 10 ... 30ms wäre ideal.

10ms sind ja riesige 40000 Zyklen, da sollte man den Interrupt auch in 
Basic schreiben könnnen.

Der Timerinterrupt macht dann beides, RTC und DCF-77-Dekodierung.
Oder eben nur DCF-77-Dekodierung und ne externe I2C-RTC.


Peter

von A. Arndt (Gast)


Lesenswert?

Hallo,

mit FASTAVR können Timer gesetzt werden und es gibt auch einen 
Interrupteingang, beim 4433.

Das DCF-Modul muss hier auch angeschlossen werden, ich weis nur noch, 
wie man diese ganzen Flankengeschichte eingestellt und das Signal 
auswertet, habe mir auch diverse Seiten durchgelesen, aber das war alles 
zu speziell auf andere Objekte zugeschnitten.

Gruss
A. Arndt

von Peter D. (peda)


Lesenswert?

Nein, mit einem Interruptpin wird das alles ja viel zu kompliziert und 
Du fängst Dir nur nen Haufen Störungen ein.

Du willst doch nicht wissen, wann der Impuls kommt, sondern wie lang er 
ist.

Deshalb ist es viel einfacher, in einem Timerinterrupt z.B. alle 10ms 
ein Byte hochzuzählen, solange der Pin high ist. Ist dann dessen Wert 
zwischen 5..14, dann war es ein 0-Bit, zwischen 15..24, dann war es ein 
1-Bit und ansonsten eine Störung.

Dann noch mit einem 2.Byte die Zeit von einem zum nächsten 0-1-Übergang 
zählen und dann wieder vergleichen, ob der Wert 90..110 oder 190..210 
ist, d.h. 1s oder der Synchronimpuls von 2s.

Die restliche Auswertung kann dann auch in der Hauptschleife erfolgen, 
wenn diese mindestens alle 500ms durchlaufen wird.



Peter

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.