Hallo, ich betreibe meinen uC im Power - Down Mode mit einem Uhrenquarz, welcher den internen RTC taktet. Nur habe ich das Problem, das die Uhr am Tag etwa 20min ungenau geht. Kann es sein, dass der Fehler durch die beiden Kondensatoren am Quarz entsteht? Verwende 2x22pF Kondensatoren, im Datenblatt des Quarzes ist die Rede von 6 bzw. 12.5pF für CL! Danke, Mathias
20min/Tag sind mehr als 1%, 0.1 Promille wäre schon viel für nen Quarz. Glaube, da is noch was anderes faul. Cheers Detlef
Hi Mathias, die ungenauigkeit kannst du kaum mit den Lastkapazitäten ziehen. Aus diesem Grund schliesse ich die Kondensatoren als Fehlerursache eher aus
ich verwende den lpc936! naja habe mir schon gedacht, dass es nicht daran liegen wird... werde jetzt mal schaun ob die uhr ohne power down auch so viel daneben läuft bzw. ob vielleicht noch ein kleiner softwarebug vorhanden ist...
Neben der SW immer auch an die HW denken: schwingt die Vdd? kurze Leitungen zum Quarz und von den Cs nach Gnd? Kannst Du den (geteilten) Takt an einem extra Pin herausführen, um ihn mit einem Frequenzzähler zu messen? Bei einem 32KHz-Quarz muss die Frequenz um 455 Hz danebenliegen, wenn er täglich um 20 Min. falsch geht. Diese Abweichung wird man mit einem Oszi gerade nicht mehr messen können. Evtl. hilft auch, probehalber eine bekannte Frequenz (aus einem Oszillator und Teiler / µC-Timer) extern einzuspeisen (muss nicht 32KHz sein). Der Dallas DS32KHz ist ein temp-komensierter Oszillator mit 32KHz-Ausgang.
"Der Dallas DS32KHz ist ein temp-komensierter Oszillator mit 32KHz-Ausgang." Wenn er sich den noch beschafft, dann kann er den auch gleich richtig verbauen. Damit bekommt er sogar noch ein I/O-Pin frei. Günther
RTC heisst das Zauberwort. Oder MOS4042 plus Quarz... Das spart ne Menge Arbeit und genauer als selbst gute MC Schaltungen ist es allemal. 3N
den DS32kHz habe ich schon bei einem anderen projekt verwendet.. werde ihn aber aus platz und vor allem kostengründen hier nicht verwenden können...
Natürlich ist es problemlos möglich, eine recht genaue Uhr mit einem 32KHz Uhrenquarz und einem Mikrocontroller aufzubauen. Dazu braucht es keinen RTC. Vor allem ist die 1% Abweichung doch kein grundsätzliches Problem mit Uhren-Quarzen. Ob ein RTC unabhängig davon in einem Projekt praktischer und sinnvoller ist, ist ein anderes Thema.
Habe auch einmal einen 32kHz Uhrenquartz an den Mega8 gehängt und bin von der Genauigkeit schwer entäuscht. Seit dem nutze ich nur noch externe RTC's.
Hmm... laut Datenblatt Seite 28 kann man den Uhrenquarz direkt ohne externe Ladekapazitäten anschliessen, wenn man die CKOPT fuse programmiert. Vielleicht mal ohne dieexternen Kapazitäten probieren? Gruss, Thorsten
Thorsten, Du hast recht - danke für den Hinweis. 8-) Mag sein daß ich an den Fuses nicht so gerne rumspiele. Torsten
Der Tip mit dem DS32khz war nur gedacht, um herauszufinden, ob es an der SW oder der HW liegt. Externe RTC ist Luxus. Wenn der µC schon extra einen 2. Quarzoszillator hat, würde ich ihn auch nutzen. Was bei mir auch schon geholfen hat ist ein R von 100k-10M parallel zum Quarz und/oder ein R von 10-100 Ohm in Reihe zum Quarz. Hast Du schon eine andere Quarz-Sorte probiert (z.B. aus einer alten Uhr oder Wecker). Wenn der Quarz stabil daneben schwingt, kannst Du die Abweichung per SW korrigieren (anderer Teilfaktor...).
ich würde unbedingt die CKOPT unprogrammiert lassen und zwei trimmkondensatoren zur abstimmung des quarzes verwenden (dauert nur ein bischen wenn du keine sehr genaue referenz hast)
Also wenn es 24 Minuten an einem Tag wären würd ich ganz stark drauf tippen, dass er bei jeder vollen Stunde ein Minute verschluckt oder zu viel zählt. Also ein Softwarebug. Aber nochmal im Code nachschaun kann ja nie schaden. Sebastian
@ Lupin, Ist das nur ein Bauchgefühl, oder gibt es dafür eine nachvollziehbare Begründung?
nur eine vermutung... kann auch an der software liegen, vielleicht irgendwo sowas schlaues wie if(sekunden >= 59){...} eingebaut ;)
Also ich bringe es auf 14 Minuten in 12 Stunden. Die Software ist wohl ok, weil sie in den vorigen Versionen am 8Mhz Quarz problemlos funktionierte. Eine CKOPT-Fuse habe ich bei meinem AT90CAN128 noch nicht gefunden. Allerdings habe ich den Uhrenquarz zwischendurch auch ein bisschen mit Kältespray gequält und da konnte man praktisch zusehen, wie die Sekunden verloren gingen.
Auf der Suche nach der Ursache der Abweichung wollte ich mir mal anschauen, wie gut oder schlecht der Uhrenquarz eigentlich arbeitet. Dabei kam dieses Bild raus. Zur Sicherheit habe ich die Kondensatoren noch mal nachgeschaut. Sind wie im Daten angeschlossen und eine kalte Lötstelle ist auch nicht im Spiel. Die 8MHZ des ebenfalls angeschlossenene Quarz sehen gut aus. Hat jemand eine Idee was da faul ist, oder muss das so aussehen? @.... die Uhr geht nach
Ist die CKOPT-Fuse nicht nur für den System-Clock-Quarz zuständig? Damit wird doch nur die Amplitude des Taktgenerators (XTAL2) erhöht, oder? Dass die Uhrenquarze ungenau sind musste ich auch schon feststellen. Deshalb gehen die meisten billigen Quarzuhren auch derb falsch! Ist halt immer besser eine hohe Frequenz 'runterzuteilen (RTC mit Systemtakt), das wird genauer und man kann's zur not per Software korrigieren.
Prozentuale Fehler sind unabhängig von der Taktfrequenz und man kann beliebig runterteilen, es bleiben x Prozent Fehler. Nur mal so als Anregung. Da besteht oft ein Irrtum. Ein Uhrenquarz, der bei mir mit einem AVR läuft, läuft jetzt schon ein halbes Jahr und hat unter 3 Minuten Abweichung. Dabei ist der nicht einmal abgeglichen. Und Quarzarmbanduhren gehen mitunter verdammt genau, unter 1 Minute in einem halben Jahr. Technologisch geht es also.
Ist richtig, ich habe einen Datenlogger mit unabgeglichenem Uhrenquarz dran, der ist auch sehr genau. Aber das ist auch die einzige Schaltung die genau ist. Das mit den Prozentualen Fehlern ist richtig. Wenn ich eine Frequenz teile (z.B. durch 1024), dann habe ich aber die möglichkeit zm Softwaremäßigen Feinabgleich. Das geht beim Uhrenquarz nicht. Ich sprach übrigens von Billiguhren aus Fernost, die gehen teilweise 15..30 Minuten am Tag falsch!
Also wenn ich den Uhrenquarz nicht gar zu sehr mit frostigen Temperaturen aus der Eis-Spray-Dose ärgere tut er sein Werk ... nun sagen wir mal passabel. Es sind zwar immer noch ein zwei Sekunden aber das geht schon. Ich werde einfach das Software-konzept etwas ändern.
ich habe mal mehrere 100 32 KHz Uhrenquarze bei ebay ersteigert. das ergebnis war dass bei jeder etwa 10 quarz es erhebliche abweichungen gab. offenbar war ich auf ausschussware reingefallen. ich musste dann in einem jeweils std langen test die ''kranken'' aussortieren. ein paar mal fiel mir auf dass uhrenquarze zu langes ''bruzeln'' (von einem kollegen) nicht vertragen und sich dann ebenfalls abweichungen von 10-20 Minuten/Tag ergaben.
Man sollte wissen was man tut. 32.768 kHz Quarze sind anders als 0815 Quarze zwischen 1..20 MHz. Die vertragen meist nur 100uW (Microwatt) Leistung und werden mit normalen Oszillatorschaltungen meist überfahren. Deshalb sollte man GENAU ins Datenblatt der jeweiligen Schaltung schauen, ob 32kHz Uhrenqurze EXPLIZIT anschliessbar sind. Meist brauch man einen recht hohen Vorwiderstand, eben um den Quarz nicht zu überlasten. Ausserdem zu den "Experten" mit RTC etc. A) einen Quarz kann man prinzipbedingt kaum mehr als +/- 200ppm (=0.02%) von seinem Nennwert betreiben. b) Auch 0815 Quarze sind schon recht genau, mit Abgleich (Sei es per Software oder per Trimmer) kommt man locker auf +/- 1ppm (=2,6 s Abweichung /Monat) Beitrag "AVR Timer mit 32 Bit" MfG Falk
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.