mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Nochmal die genaue Sekunde


Autor: mydani (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hartmut Gröger (hardygroeger)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mydani (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Genghammer (ag1brg)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mydani (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: mh789 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.