Hallo zusammen, ich möchte die Genauigkeit des RTC einstellen. HardwareKonfiguration: ATMEGA 32, 32,768Khz Uhren-Quarz an TOSC1 und TOSC2, Systemtakt interner RC auf 8 Mhz (crystal = 800000), Dauerbetrieb, kein sleep usw. Brenner: myAvr Software: - Sofware in bascom - Config Clock = soft - Interrups sind enabled - Fusebits auf internen RC 8 Mhz , Ckopt ist gesetzt verwendet werden die bascom Routinen Time$ und secofday() Problem Ich habe innerhalb von 24 Stunden eine Abweichung von ca. 5 Sekunden. Ich gehe davon aus, dass die Basis für den Time$ der Quarz und nicht der interne RC ist. Sonst macht der Quarz an TOSC1 und TOSC2 keinen Sinn. Mein Workaround wäre jeden Tag die 5 Sekunden zu korrigieren. Was gibt es noch für Möglichkeiten ? Winne
Winfried Z. schrieb: > Ich gehe davon aus, dass die Basis für den Time$ der Quarz und nicht der > interne RC ist. Sonst macht der Quarz an TOSC1 und TOSC2 keinen Sinn. Um das zu verifizieren, könnte man a) den Quarz einfach mal abklemen oder b) die Doku lesen. Oliver
Quarz kurzgeschlossen > Uhr bleibt stehen Quarz normal > Uhr läuft weiter Also hatte ich richtig vermutet.
Hast du am Quarz Kondensatoren? Wenn ja, ersetze einen durch einen Trimmkondensator und justiere den über ein paar Tage. Uhr zu langsam -> Trimmer ein wenig rausdrehen, Uhr zu schnell -> Trimmer leicht reindrehen. Oder du schaust dir die 'Software Korrektur' nochmal an: http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC Ah, sorry , nee das geht bei dir nicht so gut, die Prozedur ist für HF-Quarze und ausserdem nicht direkt für Bascom.
@Winfried Z. (rugbywinne) >ich möchte die Genauigkeit des RTC einstellen. Nö, du willst deine RTC einstellen bzw. kalibrieren. Die Genauigkeit ist das, was am Ende dabei rauskommt. >Ich habe innerhalb von 24 Stunden eine Abweichung von ca. 5 Sekunden. Das sind 58ppm, ein normaler Fehler für einen unkalibrierten Quarz. >Ich gehe davon aus, dass die Basis für den Time$ der Quarz und nicht der >interne RC ist. Sonst macht der Quarz an TOSC1 und TOSC2 keinen Sinn. Logisch, dann hättest du 5 Minuten Abweichung ;-) >Mein Workaround wäre jeden Tag die 5 Sekunden zu korrigieren. >Was gibt es noch für Möglichkeiten ? Den Quarz mittels Trimmkondensator kalibrieren. Oder den Fehler automatisch per Software kompensieren. http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC#Echtzeituhr_mit_Uhrenquarz In BASCOM gibt es die Option, eine Funktion SECTIC zu definieren, dort kann man z.b. jeden Tag um 00:00 die Uhr um x Sekunden vor oder rückstellen. Mittels Time$ = ""hh:mm:ss". Oder man greift direkt auf die Variablen _Sec, _Min and _Hour zu, könnte einfacher sein.
1 | SECTIC |
2 | if time$="00:00:00" then _sec = 5 ' Uhr geht nach, vor stellen |
3 | Return |
P S Eichen kannst und darfst du nicht, das dürfen nur zugelassene Institute ala PTB etc. Siehe http://www.mikrocontroller.net/articles/Aufl%C3%B6sung_und_Genauigkeit#Eichen.2C_Kalibrieren.2C_Justieren
OK, ein bisschen mehr Logik braucht es schon, vor allem wenn die Uhr vor geht und zurückgestellt werden muss. Etwa so
Hallo Falk, danke für Deine Mühe und Erklärungen. Elegant gemacht die SETIC Routine. Gruß Winne Hallo Matthias Sch. Nach Datenblatt sind erstmal KEINE Cs am Uhrenquarz vorgesehen. Auch sonst ist das Datenblatt bei diesem Punkt sehr dürftig. Abgleich über Cs bzw. TrimmerCs ist nicht so das Wahre. Hätte aber den Vorteil eines "schnellen" Abgleichs. Bei einem Softwareabgleich muss die Abweichung über einen längeren Zeitraum ermittelt werden, was dauern kann. Gruß Winne
@Winfried Z. (rugbywinne) >Abgleich über Cs bzw. TrimmerCs ist nicht so das Wahre. >Hätte aber den Vorteil eines "schnellen" Abgleichs. Es geht auch schneller, mit einem Frequenzzähler. Aber man muss einiges beachten. http://www.mikrocontroller.net/articles/AVR_-_Die_genaue_Sekunde_/_RTC#Uhrentakt_genau_messen_und_digital_korrigieren >Bei einem Softwareabgleich muss die Abweichung über einen längeren >Zeitraum ermittelt werden, was dauern kann. Man kann den Fehler auch umrechnen und in die Software eintragen.
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.