Forum

Einloggen | Registrieren | RSS  

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(R)

E-Mail

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(R)

E-Mail

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(R)

E-Mail

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ß :-P

geralds(R)

Homepage E-Mail

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! :wink: Feigling!"

hws(R)

E-Mail

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(R)

Homepage E-Mail

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