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
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.
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
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.
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.
@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.
@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
@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
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
@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
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
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
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
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.
@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
Habe mal was gelesen, das sich viele Uhrenradios mit den 50Hz des Stromnetztes syncronisieren. Habe aber keine Ahnung wie genau diese Möglichkeit ist.
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.
@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
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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.