Monko
13.07.2008, 18:25 |
Sekundentakt mit µC (Elektronik) |
Hallo
Ich möchte einen relativ genauen Sekundentakt mit einem µC programmieren. Es soll damit eine Uhr betrieben werden - also Abweichungen von ein paar Sekunden pro Jahr sind OK.
Weiß jemand ein Bsp. oder hat einen Tipp ?
Der Controller ist ein R8C/13 von Renesas, 16-Bit
Programmsprache: C
Bitte nicht auf das Elektor-Forum verweisen - da hab ich schon vor Monaten gefragt und bis heute keine Antwort erhalten
Auch kommt kein DCF77-Empfänger in Frage, da am Betriebsort kein Empfang.
Extern (mit weiteren Bauteilen) einen brauchbaren 1Hz-Takt aufzubauen wäre ja kein Problem, aber intern wäre mir eben lieber.
lg, Monko |
Theo
13.07.2008, 18:45
@ Monko
|
Sekundentakt mit µC |
Hallo
Eine solche Genauigkeit wirst du nur mit einem externen Funkempfänger umsetzen können. Wenn nicht DCF, dann eben ZDF oder GPS. Gibt genug Schaltungen im Internet.
Theo |
Harald Wilhelms

13.07.2008, 18:46
@ Monko
|
Sekundentakt mit µC |
» Hallo
»
» Ich möchte einen relativ genauen Sekundentakt mit einem µC programmieren.
» Es soll damit eine Uhr betrieben werden - also Abweichungen von ein paar
» Sekunden pro Jahr sind OK.
»
» Weiß jemand ein Bsp. oder hat einen Tipp ?
»
» Der Controller ist ein R8C/13 von Renesas, 16-Bit
» Programmsprache: C
»
» Bitte nicht auf das Elektor-Forum verweisen - da hab ich schon vor Monaten
» gefragt und bis heute keine Antwort erhalten
» Auch kommt kein DCF77-Empfänger in Frage, da am Betriebsort kein Empfang.
»
» Extern (mit weiteren Bauteilen) einen brauchbaren 1Hz-Takt aufzubauen wäre
» ja kein Problem, aber intern wäre mir eben lieber.
Mit typischen uC-Quarzen wirst Du eine solch grosse
Genauigkeit nicht hinkriegen. Da brauchst Du normaler-
weise schon einen Quarzofen. Wenn Du mit einigen
Sek pro Mon leben kannst, würde ich die ausgebaute
Elektronik eines Quarzweckers nehmen. So billig (oft
nur 1EUR) und genau bekommst Du das mit typischen
Frequenzteilerschaltungen nicht hin und Du hast die
Möglichkeit, die Elektronik vorher im eingebautem
Zustand auf Genauigkeit testen zu können.
Gruss
Harald |
Monko
13.07.2008, 19:10
@ Harald Wilhelms
|
Sekundentakt mit µC |
» Mit typischen uC-Quarzen wirst Du eine solch grosse
» Genauigkeit nicht hinkriegen. Da brauchst Du normaler-
» weise schon einen Quarzofen. Wenn Du mit einigen
» Sek pro Mon leben kannst, würde ich die ausgebaute
» Elektronik eines Quarzweckers nehmen. So billig (oft
» nur 1EUR) und genau bekommst Du das mit typischen
» Frequenzteilerschaltungen nicht hin und Du hast die
» Möglichkeit, die Elektronik vorher im eingebautem
» Zustand auf Genauigkeit testen zu können.
» Gruss
» Harald
Also mit C-Code wird das wohl nicht
Die Genauigkeit ist nicht sonderlich, sll eben eine Uhr werden. Mit meinen bisherigen Versuchen unter Verwendung von internen Timern bin ich kläglich gescheitert. Die Abweichung beträgt täglich mehrere Minuten - das ist beim besten Willen nicht zumutbar.
Deshalb suche ich nach (internen) Möglichkeiten eine "halbwegs" brauchbare Uhr zu bauen. Soll also "nur" die Uhrzeit wiedegeben, ohne dass man damit den Bus verpasst
lg, Monko |
Harald Wilhelms

13.07.2008, 19:57
@ Monko
|
Sekundentakt mit µC |
» » Mit typischen uC-Quarzen wirst Du eine solch grosse
» » Genauigkeit nicht hinkriegen. Da brauchst Du normaler-
» » weise schon einen Quarzofen. Wenn Du mit einigen
» » Sek pro Mon leben kannst, würde ich die ausgebaute
» » Elektronik eines Quarzweckers nehmen. So billig (oft
» » nur 1EUR) und genau bekommst Du das mit typischen
» » Frequenzteilerschaltungen nicht hin und Du hast die
» » Möglichkeit, die Elektronik vorher im eingebautem
» » Zustand auf Genauigkeit testen zu können.
» » Gruss
» » Harald
» Die Genauigkeit ist nicht sonderlich, sll eben eine Uhr werden. Mit meinen
» bisherigen Versuchen unter Verwendung von internen Timern bin ich kläglich
» gescheitert. Die Abweichung beträgt täglich mehrere Minuten - das ist beim
» besten Willen nicht zumutbar.
Nun, mehrere Minuten muss nicht sein; mehrere Sekunden
pro Tag wäre vermutlich erreichbar. Ich weiss nun nicht,
wie man Deinen speziellen uP programmiert. Typisch hat
man einen oder mehrere interne Zähler mit einstellbaren
Taktverhältnis, die direkt von der Clock betrieben werden
und einen Interrupt auslösen können. Dieser Interrupt
lässt dann über ein Unterprogramm den eigentlichen
Sekundenzähler um einen "Tick" weiterzählen. Wenn Du dann
eine konstante Abweichung pro Tag hast, must Du das
Tastverhältnis des Vorteilers so anpassen, bis die Uhr
stimmt.
Gruss
Harald |
x y
13.07.2008, 20:04
@ Harald Wilhelms
|
Sekundentakt mit µC |
» Mit typischen uC-Quarzen wirst Du eine solch grosse
» Genauigkeit nicht hinkriegen. Da brauchst Du normaler-
» weise schon einen Quarzofen. Wenn Du mit einigen
» Sek pro Mon leben kannst, würde ich die ausgebaute
» Elektronik eines Quarzweckers nehmen. So billig (oft
» nur 1EUR) und genau bekommst Du das mit typischen
» Frequenzteilerschaltungen nicht hin und Du hast die
» Möglichkeit, die Elektronik vorher im eingebautem
» Zustand auf Genauigkeit testen zu können.
TCXO wäre noch eine Variante, kann man aus alten Handys oder DECT Telefonen ausschlachten. |
Theo
13.07.2008, 20:11
@ Harald Wilhelms
|
Hier eine Beschreibung: |
Hallo
http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC
Trotzdem bin ich davon überzeugt, dass eine Genauigkeit von "mehreren Sekunden im Jahr" so nicht zu erzielen ist.
Theo |
hws

59425 Unna, 14.07.2008, 08:49
@ Monko
|
zwei Sachen beeinflussen die Genauigkeit .. |
» Ich möchte einen relativ genauen Sekundentakt mit einem µC programmieren.
Einmal die Genauigkeit des "Taktgebers". Ein Quarz hat eine Genaigkeit von ca. 10*10e-6. Also alle 100.000 Sekunden kann er eine Sekunde daneben liegen.
Genauer ist nur DCF oder GPS, wenn man deren Takt nimmt.
Das zweite ist die interne Verarbeitung.
Eine Zeitschleife wie "FOR I=1 TO 107654: NEXT I" taugt natürlich nix zur Erzeugung eines Sekundenimpulses.
Da nimmt man einen Porzesserinternen Timer, bedient den über Interrupt und hat eine Genauigkeit wie der Quarz.
Den Renesas kenn ich nicht, kann dir leider nix über Timer und Interrupts sagen. Aber das ist eigentlich bei allen µC's halbwegs gleich.
» Es soll damit eine Uhr betrieben werden - also Abweichungen von ein paar
» Sekunden pro Jahr sind OK.
Rechne mal die Genauigkeit aus. Ein Jahr hat wieviel Sekunden? Und dann 10 Sekunden Abweichung?
Eine eigene Atomuhr wirst du sicher nicht bauen wollen.
» Extern (mit weiteren Bauteilen) einen brauchbaren 1Hz-Takt aufzubauen wäre
» ja kein Problem, aber intern wäre mir eben lieber.
Auch da wirst du die Genauigkeit nicht hinbekommen. +-30 Sekunden pro MONAT werden wohl drin sein.
hws |
TTT
14.07.2008, 19:40
@ hws
|
zwei Sachen beeinflussen die Genauigkeit .. |
» » Ich möchte einen relativ genauen Sekundentakt mit einem µC
» programmieren.
»
» Einmal die Genauigkeit des "Taktgebers". Ein Quarz hat eine Genaigkeit von
» ca. 10*10e-6. Also alle 100.000 Sekunden kann er eine Sekunde daneben
» liegen.
» Genauer ist nur DCF oder GPS, wenn man deren Takt nimmt.
»
» Das zweite ist die interne Verarbeitung.
» Eine Zeitschleife wie "FOR I=1 TO 107654: NEXT I" taugt natürlich nix zur
» Erzeugung eines Sekundenimpulses.
» Da nimmt man einen Porzesserinternen Timer, bedient den über Interrupt und
» hat eine Genauigkeit wie der Quarz.
»
» Den Renesas kenn ich nicht, kann dir leider nix über Timer und Interrupts
» sagen. Aber das ist eigentlich bei allen µC's halbwegs gleich.
»
»
» » Es soll damit eine Uhr betrieben werden - also Abweichungen von ein
» paar
» » Sekunden pro Jahr sind OK.
»
» Rechne mal die Genauigkeit aus. Ein Jahr hat wieviel Sekunden? Und dann 10
» Sekunden Abweichung?
» Eine eigene Atomuhr wirst du sicher nicht bauen wollen.
»
» » Extern (mit weiteren Bauteilen) einen brauchbaren 1Hz-Takt aufzubauen
» wäre
» » ja kein Problem, aber intern wäre mir eben lieber.
»
»
» Auch da wirst du die Genauigkeit nicht hinbekommen. +-30 Sekunden pro
» MONAT werden wohl drin sein.
»
» hws
Eine Genauigkeit von +/- 30s im Jahr ist tatsächlich möglich!
Ich habe mir damals eine einfache Schaltung mit
dem CMOS IC 4060 und Quarz (32768KHz) realisiert.
Die Abweichung des Sekundentakts betrug lediglich 2,5s/Monat. Darauf war ich nicht gefasst und staune immer wieder von neuem was möglich sein kann.
Eine Erklärung hierfür habe ich bis heute nicht gefunden.
Inzwischen nach ca. 2 Jahren hat sich die Abweichung vergrößert.
Gruß  |
geralds

Wien, AT, 15.07.2008, 09:01
@ Monko
|
Sekundentakt mit µC |
» » Mit typischen uC-Quarzen wirst Du eine solch grosse
» » Genauigkeit nicht hinkriegen. Da brauchst Du normaler-
» » weise schon einen Quarzofen. Wenn Du mit einigen
» » Sek pro Mon leben kannst, würde ich die ausgebaute
» » Elektronik eines Quarzweckers nehmen. So billig (oft
» » nur 1EUR) und genau bekommst Du das mit typischen
» » Frequenzteilerschaltungen nicht hin und Du hast die
» » Möglichkeit, die Elektronik vorher im eingebautem
» » Zustand auf Genauigkeit testen zu können.
» » Gruss
» » Harald
»
»
» Also mit C-Code wird das wohl nicht
»
» Die Genauigkeit ist nicht sonderlich, sll eben eine Uhr werden. Mit meinen
» bisherigen Versuchen unter Verwendung von internen Timern bin ich kläglich
» gescheitert. Die Abweichung beträgt täglich mehrere Minuten - das ist beim
» besten Willen nicht zumutbar.
» Deshalb suche ich nach (internen) Möglichkeiten eine "halbwegs" brauchbare
» Uhr zu bauen. Soll also "nur" die Uhrzeit wiedegeben, ohne dass man damit
» den Bus verpasst
»
»
» lg, Monko
---
Hallo Monko,
Elektor hat mit diesem Käfer ein ganzes Projekt:
http://www.elektor.de/extra/r8c---die-elektor-r8c-mikrocontroller-startseite.83229.lynkx
Da wirst sicher fündig. Dazu gibt es diverse Links und Bücher.
Empfehle auf alle Fälle in Assembler zu programmieren.
Hardware mässig solltest den Käfer so takten, dass ein ganzes geteiltes für 1 Sek. herauskommt.
Vergleiche dabei aber die Befehlszykluszeiten, damit nicht unnötig viele NOP's eingepflanzt werden müssen.
Für die Uhr gibt es eine fertige Routine mit Bauvorschlag. Grab dich mal bitte durch.
Gruss
Gerald -- ...und täglich grüßt der PC:
"Drück' ENTER! Feigling!" |
hws

59425 Unna, 15.07.2008, 12:32
@ TTT
|
zwei Sachen beeinflussen die Genauigkeit .. |
» Eine Genauigkeit von +/- 30s im Jahr ist tatsächlich möglich!
Man KANN Glück haben. Speziell, wenn es keine grossen Temperaturschwankungen gibt.
hws |
herrma

16.07.2008, 15:43
@ Monko
|
DS32KHZ |
Hallo,
ich habe mir vor Monaten zwei Samples des DS32KHZ schicken lassen. Angegebene Genauigkeit besser als 1 min/Jahr (0°C bis +70°C.
Ein Testaufbau läuft seit ca. 3 Monaten und eine Abweichung zur Funkzeit ist bisher nicht feststellbar.
Gruß
Herrma |