Forum: Mikrocontroller und Digitale Elektronik Nochmal die genaue Sekunde


von mydani (Gast)


Lesenswert?

Hi,

ich sitz hier grad am ATTINY2313 mit nem 16MHz-Quarz und versuche eine
Sekunde abzutimen. Softwareteiler 256, OCR1A 0xF423.

Nach ca. einem Tag kann ich eine Abweichung von meiner Uhr am PC von
ca. 2 Sekunden feststellen. Bedeutet 2 * 356s Abweichung im Jahr.

Möglichkeiten dies zu Verbessern ist

a) eine Langzeitmessung, wobei das für jeden Quarz sein muss und ich
soviel Zeit einfach nich hab :)
b) ein Funkmodul zur Synchronisation - aber 15€ hab ich auch nich

Gibts ne Möglichkeit so einen Abgleich schneller zu machen?

Oder günstige ICs die für einen genauen Takt taugen?
(von Maxim? von Philips? (PCF8583)

Danke für Tips!


Gruß,
Dani

von Alex (Gast)


Lesenswert?

Das Problem liegt nicht im IC sondern in der Taktquelle.

Ich würde den Abgleich mit ner Funkuhr und nicht mit dem PC machen,
zumindest meine PC-Uhr läuft auf Dauer auch weg.

von Spess53 .. (hardygroeger)


Lesenswert?

Hi

Deine Abweichung hängt mit den Quarztoleranzen zusammen. Wenn du es
genauer haben willst, brauchst du einen temperatustabilisierten
Quarzoszillator und die entsprechenden Messmittel um das Teil
einzustellen.

MfG HG

von A.K. (Gast)


Lesenswert?

Ein normaler Rechnerquarz hat eine Grundgenauigkeit von ca 30ppm, plus
nochmal 30ppm über die Temperatur. Und das auch nur in optimaler
Schaltung.

2 Minuten im Jahr sind ungefähr 4ppm.

von A.K. (Gast)


Lesenswert?

Sorry, falsch gelesen, sind ja ~12 Minuten. Passt aber immer noch, mit
ca 20ppm. Erheblich genauere temperaturstabilierte Oszillatoren (TCXO)
sind freilich weit teuerer als DCF77.

Ganz ohne Geld wird das also nichts.

Wenn's dir um die Zeit für den Abgleich geht, kannst du ja auf die
DCF77 Trägerfrequenz abgleichen statt auf die Uhr an der Wand, das geht
schneller. Aber du musst natürlich dann noch die Temperaturkurve vom
Quarz in die Kalibirierung mit einbauen sonst bringt das nix.

von Jadeclaw D. (jadeclaw)


Lesenswert?

@mydani: Mehrere Möglichkeiten gibt es:
1.) ATmega8 verwenden. dort kannst du einen Uhrenquarz anhängen
(32.768kHz) und diesen für einen der Timer verwenden. Der Controller
selbst läuft mit dem internen Oszillator.
2.) CD4060 mit einem Uhrenquarz(32.768kHz) dran, ist sehr
frequenzstabil und locker auf weniger als 1 Sekunde Abweichung am Tag
zu bringen. Das Ganze gibt zwei Pulse pro Sekunde heraus. Braucht auch
sehr wenig Strom. Läuft bei mir durch Vergleich mit einem Radiosender
auf 1 Sekunde pro Woche genau. Man muss auch nur einen extrem
sorgfältig abgleichen, alle weiteren muss man mur noch auf
Schwebungsnull einstellen.

Gruss
Jadeclaw.

von Paul Baumann (Gast)


Lesenswert?

@Mydani
Der Wert vom Timerregister stimmt nicht ganz. Du mußt 62500 eintragen
 (Hex = F424).
Ich habe hier auch eine Uhr mit Attiny2313 und 4 Mhz. Die geht in einem
Vierteljahr 3 Sekunden vor.

MfG Paul

von Peter D. (peda)


Lesenswert?

@Jadeclaw.

"1.) ATmega8 verwenden. dort kannst du einen Uhrenquarz anhängen
(32.768kHz) und diesen für einen der Timer verwenden."


Das bringt genau Nullkommanix.

Es geht doch um den Abgleich und da ist es wurscht, ob ich nen 8MHz
oder nen 32kHz Quarz abgleichen muß.

Ganz im Gegenteil, MHz-Quarze sind stabiler (weniger
temperaturabhängig) als kHz-Quarze.


Peter

von mydani (Gast)


Lesenswert?

Hi nochmal,
hab gerade nochmal die Datenblätter durchgestöbert:

PCF8583:
* +/-5 minutes per year
* 1,75€ (Reichelt)

DS32kHz
* Accurate to ±4 Minutes/Year (-40°C to +85°C)
* Accurate to ±1 Minute/Year (0°C to +40°C)
* $3,75 (noch kein Händler gefunden)

DS3231:
* Accuracy ±2ppm from 0°C to +40°C
* Accuracy ±3.5ppm from -40°C to +85°C
* $2,25 (noch kein Händler)

zum CD4060 hab ich leider nix gefunden.


Ich glaub ich bleib bei den <2€ für den tiny2313 und korrigiere die
paar Minuten an Silvester von Hand. ;)


@Paul:
Quote (wiki):"Beachten muß man nur noch, dass das Nullsetzen des
Timers erst einen Zyklus nach dem Comparematch erfolgt. D.h. der
Comparewert ist der gewünschte Teilerfaktor - 1."


Gruß,
Dani

von Peter D. (peda)


Lesenswert?

@Dani,

Also ich kann im PCF8583 Datenblatt keinerlei Genauigkeitsangaben
finden.

Wäre ja auch total witzlos, da man nen Quarz extern dranpappen muß und
der bestimmt ja die Genauigkeit.


Peter

von Andreas G. (ag1brg)


Lesenswert?

Hallo
ich würde empfehlen, den Quarz über einen Trimm-C abzugleichen.
Man muss sich nur einen Frequenzzähler besorgen und die Schaltung
einmal kalibrieren..

Grundsätzlich entsteht der Fehler ja immer im Quarz.. der Zähler im
ATtiny wird sich nicht verschlucken..

MFG
Andreas

von Paul Baumann (Gast)


Lesenswert?

GUCK` OCH NUR! :-))


Beispiel von Paul Baumann


$crystal = 4000000                         'Quarz: 4 MHz


Dim Ftoggle As Bit                    Schnaggelt bei jedem Interrupt



On Timer1 Ontimer1
'Interrupt-Routine für Timer1Overflow
Config Timer1 = Timer , Prescale = 256     'Takt: Quarz/256=15625Hz
Enable Timer1                  'Timer1-Overflow-Interrupt einschalten
Enable                                'Interrupts global zulassen
Timer1 =                               'Abstand=65536-49912=15625

Hier HAUPTPROGRAMM eintragen


Ontimer1:                            'Interrupt-Routine
  Timer1 = 49912                     'Timer 1 voreinstellen
  Ftoggle = Not Ftoggle              'Toggle-Bit invertieren
  'Portb.7 = Ftoggle                 'Leuchtidiot als Anzeige
                                     'für die Sekundenled
Return                               'und zurück vom Interrupt
' **** END OF PROGRAM

von Paul Baumann (Gast)


Lesenswert?

Ach so; der Witz ist, den Vorteiler während des Interupts wieder neu zu
laden um damit die inzwischen verlorene Zeit wieder auszugleichen.
Der Interrupt selber ist ja auch nicht zeitlos.

Gruß an alle UHROLOGEN :-))

Paul

von Profi (Gast)


Lesenswert?

Warum muss das immer wieder gesagt werden???
1. Man braucht keinen C, um abzugleichen!
Man kann genausogut den TimerReloadWert verändern.

2. Einen TXCO kann man sich sparen, indem man selbst die Temperatur
misst und den TimerReloadWert aus einer dazugehörigen (selbst zu
bestimmenden) Tabelle entnimmt.

3. Ein Prescaler von 256 ist bei dieser Methode eher hinderlich.
Lieber kleineren Prescaler und dafür den Timer mehr zählen lassen.

4. Warum sollte ein MHz-Quarz genauer als ein kHz-Quarz sein?
1 ppm bleibt 1 ppm (31,5 Sekunden pro Jahr), unabhängig von Frequenz
und Teiler.

5. Wenigstens kam kein Hinweis auf einen Quarzofen. Solche
beschleunigen nur die Alterung des Quarzes, also Schnee von gestern.

6. Mit einem AutoReload des Timers braucht man die InterruptLatenz
nicht korrigieren.

von peter dannegger (Gast)


Lesenswert?

@Profi

"4. Warum sollte ein MHz-Quarz genauer als ein kHz-Quarz sein?"

Das nächste mal einfach nur richtig lesen, von der Grundgenauigkeit her
habe ich keine Unterschiede gemacht.

Sie sind nur temperaturstabiler und das hängt mit dem Schnitt zusammen,
die Temperaturausdehnung hat weniger Einfluß auf die Resonanz. Genauer
kann Dir das die Webseite eines Quarzherstellers erklären.


Peter

von Thomas O. (Gast)


Lesenswert?

Habe mal was gelesen, das sich viele Uhrenradios mit den 50Hz des
Stromnetztes syncronisieren. Habe aber keine Ahnung wie genau diese
Möglichkeit ist.

von Jadeclaw D. (jadeclaw)


Lesenswert?

50Hz? Kurzzeitstabilität ist ziemlich mässig.
Abweichungen von +-30 Sekunden sind normal.
Langzeitstabilität/Genauigkeit ist sehr gut.
Die Uhr pendelt im Bereich +-30 Sekunden um die richtige Uhrzeit herum,
verlässt aber diesen Bereich fast nie, d.h. die angezeigte Uhrzeit ist
selten mehr als 30 Sekunden von der richtigen Uhrzeit entfernt. Meinen
ollen Radiowecker habe vor mehreren Monaten mal gestellt, das Teil
zeigt immer noch die richtige Zeit.
Achtung: Dies gilt nur für die Versorgung durch einen Grossversorger,
der am Gemeinschaftsnetz hängt. Bei Versorgung durch ein isoliertes
Blockheizkraftwerk kann die Abweichung höher sein.

Gruss
Jadeclaw.

von mydani (Gast)


Lesenswert?

@Peter:
Datenblatt Seite 21 unten, Zitat:
"By evaluating the average capacitance necessary for the
application layout a fixed capacitor can be used.
The frequency is best measured via the 1 Hz signal
available after power-on at the interrupt output (pin 7).
The frequency tolerance depends on the quartz crystal
tolerance, the capacitor tolerance and the
device-to-device tolerance (on average ±5 ´ 10-6).
Average deviations of ±5 minutes per year can be
achieved."



Ein Abgleich mit dem Stromnetz ist mir zu gefährlich, wer weiß was da
mal für ne Soße über die Schaltung läuft. Ein Kurzer mit 12V ist mir
lieber als einer mit 220V. :)
Temperaturtabelle scheint mir ne schöne Sache zu sein aber für jeden
Quarz? Hm...
Hab jetzt übrigens nochmal die Messung gemacht, diesmal mit meiner
Armbanduhr und eine Abweichung von 1.5 sekunden pro 24h festgestellt.
Ich kompensier das im compare register und bin damit zufrieden.

Gruß,
Dani

von Klaus (Gast)


Lesenswert?

Ideal wäre natürlich eine GPS Funkuhr, z.B
http://www.hopf-time.com/de/fg6870.htm

Musst aber auch a bisserl Geld dafür geben.

von mh789 (Gast)


Lesenswert?

> Ideal wäre natürlich eine GPS Funkuhr

Naja, dann brauchst Du aber noch eine Antenne mit freier Sicht zum
Himmel und das Kabel dorthin.

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.