Forum: Mikrocontroller und Digitale Elektronik Hardware-Uhr geht ungenau ARM7


von Martin M. (martin1)


Lesenswert?

Hallo Leute!

Ich teste gerade die Hardware-Uhr des LPC2138.
Ich verwende einen externen 32KHZ-Quarz.

Die Uhr habe ich korrekt initialisiert.

Jede Sekunde wird ein IRQ ausgelöst und die Uhrzeit über die serielle 
Schnittstelle ausgegeben.

Die Uhr läuft jetzt 6 Stunden und geht jetzt 2 Sekunden hinten.

An der Hardware-Uhr kann es ja wohl kaum liegen, also muss es am Quarz 
liegen.
Gibt es beim Quarz tatsächlich solche Qualitätsunterschiede?

Ich glaube auch nicht, dass es an der Initialisierung liegt. - Ich habe 
darauf geachtet, dass tatsächlich der externe Quarz verwendet wird, wenn 
ich ihn nämlich aus dem Sockel ziehe funktioniert die Uhr nicht. Und pro 
Sekunde wird ein IRQ erzeugt.

Welche Erfahrungen habt ihr mit der Uhr gemacht?

Danke für eure Hilfestellungen und Antworten.
Tschüss
Martin

von Hopser (Gast)


Lesenswert?

> Gibt es beim Quarz tatsächlich solche Qualitätsunterschiede?

Ja. Uhrenquarze sind mitunter extrem ungenau und ohne Abgleich kaum zu 
verwenden.

Selbst normale Quarze bringen einige Sekunden Abweichung auf 24h.

von A.K. (Gast)


Lesenswert?

Atmels SAM7 verwendet deshalb vorsichtshalber einen R/C Oszillator für 
die Echtzeituhr. ;-)

von gerhard (Gast)


Lesenswert?

hallo martin,
die genauigkeit deiner "uhr" hängt im wesentlichen von der genauigkeit 
des quarzes (grundgenaugkeit, temp. gang, alterung, das findest du 
normalerweise alles im datenblatt des quarzes) und von der externen 
kondensator-beschaltung ab.

gruss
gerhard

von Martin M. (martin1)


Lesenswert?

Hallo Leute.

Vielen Dank für die Info.
Was ist dann eigentlich in einer totalen Billiguhr drinnen?
Die gehen doch auch halbwegs genau.

Ich habe mir jetzt einmal das Datenblatt angesehen.
+-20ppm

Zudem wurde von mir die Schwingungsabweichung pro Tag berechnet.
Wenn ich mich nicht verrechnet habe komme ich auf 56623,104 Schwingungen 
pro Tag. Dort ist aber noch keine Temperatur oder Alterung mitdrinnen.
56623,104/32768=1,728Sekunden/Tag
Das ist viel.

Vielleicht finde ich einen besseren Quarz oder hat noch jemand andere 
Vorschläge?
Wäre es mit dem 12MHZ Quarz, der noch dranhängt genauer?

Tschüss
Martin

von Thorsten (Gast)


Lesenswert?

Man kann die Ungenauigkeit des Quarzes ja auch einfach per Software 
korrigieren. Wirf einfach mal ein Blick in die Codesammlung, Peter 
Dannegger hat das eigentlich optimal gezeigt.

von Benedikt K. (benedikt)


Lesenswert?

Ersetz mal die Kondensatoren am Quarz durch einen Trimmkondensator. 
Damit habe ich eine einfache uC Uhr auf besser 1Minute/Jahr abgeglichen 
(diese Minute kommt hauptsächlich durch die Temperatur, im Sommer läuft 
die Uhr schneller oder langsamer (weiß ich jetzt nicht auswendig) als im 
Winter.)

von A.K. (Gast)


Lesenswert?

Erstens gibt es Quarze für Seriel- und welche für Parallelresonanz. Der 
falsche Typ sorgt für eine gewisse Abweichung. Der Unterschied ist nicht 
gross, bei Prozessorquarzen meist egal, aber bei Uhren spielt das eine 
Rolle.

Zweitens spielt die Lastkapazität eine Rolle. Falsche Kapazität falsche 
Frequenz. Und nicht zuletzt deshalb macht man für Uhren statt einer 
Festkapazität einen Trimmer an den Oszillator, um den Quarz entsprechend 
einzustellen.

von Peter D. (peda)


Lesenswert?

Martin Martin wrote:

> Was ist dann eigentlich in einer totalen Billiguhr drinnen?
> Die gehen doch auch halbwegs genau.

Die werden alle abgeglichen mit nem hochgenauen Frequenzmesser.

Dazu ist entweder ein Trimmer drin oder ein paar Brücken, die 
durchgetrennt werden, quasi als DIP-Schalter.


Peter

von Browncoat (Gast)


Lesenswert?

Wie wäre denn eine Echtzeituhr alá Dallas oder Dergleichen? Die sind 
doch auf jedem älteren Mainboard zu finden. Könnte man damit was 
anstellen? Vorteilhaft ist dabei, daß die Uhr autonom läuft und nur mal 
vom MC abgefragt zu werden braucht. Das kostet dann kaum Speicher, und 
auch weniger Zeit/Code.

MfG BC

von Martin M. (martin1)


Lesenswert?

Hallo Leute!

Das mit dem Dallas-Chip ist eine gute Idee.
..
Ich dachte immer, dass man die Kondensatoren nur zum Anschwingen 
benötigt und der Quarz dann eigenständig schwingt. Da habe ich mich wohl 
geirrt.

Soll man statt beiden Kondensatoren zwei Trimmkondensatoren nehmen oder 
reicht ein Trimmkondensator und ein Kondensator mit einem festen Wert?

Danke Leute
Tschüss.

von A.K. (Gast)


Lesenswert?

Wenn der Controller die meiste Zeit mit normalem Strom arbeitet und nur 
bei Stromausfall auf Batterie, kann man alternativ den RTC-Takt im 
Normalfall aus dem Prozessortakt ableiten. Dessen Teiler lässt sich per 
Software beliebig genau einstellen. Dann läuft die Uhr nur bei 
Stromausfall auf dem 32KHz-Quarz.

von Martin M. (martin1)


Lesenswert?

Das ist eine gute Idee.

Aber man muss ja dann, bevor der Strom ausfällt, dies erkennen und 
rechtzeitig auf den externen Quarz umschalten.
Ich werde mich da mal schlau machen und das Ganze etwas testen.
Der DS1994 würde mich auch sehr reizen.

Tschüss
Martin

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.