Moin,
ich habe eine DS1302 im Betrieb. Ich nutze einen 32,768kHz Quarz mit 6pF
und 20ppm. Auf dem Oszilloskop messe ich eine Schwingung am Quarz von
32,7673kHz.
Der DS1302 wird mit 3.3V versorgt und hat einen 100nF Kondensator. Die
Batterie ist eine Flachbatterie 3V.
Pro Tag geht die Uhr bis zu 10 Minuten nach. Im Anhang ein Bild der
Unterseite der Leiterplatte. Die Oberseite ist großflächig GND mit ein
wenig Unterbrechungen, aber nur punktuell, nicht großflächig.
Ich frage die Uhr alle 500mS ab, da ich deren Sekundenwert benötige.
Was kann die Uhrsache sein? Danke!
PS: Wenn ihr noch mehr Details braucht nenne ich euch diese gerne.
Wie ist denn wohl die Frequenz, wenn du nicht misst? ;)
Wie ist die Temperatur?
Und: was passiert, wenn du mal einen Tag nicht abfragst, geht sie dann
genauer?
Evtl. mal ansehen: RV-3028-C7. +-1ppm/25° und 45nA/3V sind doch geil,
oder?
Willst du mir sagen, dass mein oszilloskop die Frequenz beeinflusst?
Nach meiner Rechnung wäre 32,7673kHz eine Abweichung von 21ppm.
Temperatur ist normale Raumtemperatur. Keine Wärme auf der Leiterplatte.
Jens M. schrieb:> Und: was passiert, wenn du mal einen Tag nicht abfragst, geht sie dann> genauer?
Probiere ich mal.
Bei 21ppm komme ich auf ~2Sekunden pro Tag.
RTC schrieb:> Willst du mir sagen, dass mein oszilloskop die Frequenz beeinflusst?
du schreibst selbst "Quarz mit 6pF", dein Oszi belastet den Oszillator
sicher stärker.
RTC schrieb:> Nach meiner Rechnung wäre 32,7673kHz eine Abweichung von 21ppm.
welches Osz
i liefert dir denn eine so hochaufgelöste Frequenzangabe? Und wie genau
ist die Zeitbasis des Oszis?
RTC schrieb:> Willst du mir sagen, dass mein oszilloskop die Frequenz beeinflusst?
Ja, das tut es! Quarze empfindlich wenn man die belastet.
RTC schrieb:> Nach meiner Rechnung wäre 32,7673kHz eine Abweichung von 21ppm.
So genau kann ein Wald-und-Wiesen Oszi gar nicht messen. Dessen
Taktquelle ist gerne mal ein 500 PPM Quarz.
Schau mal ins Datenblatt des Quarzes was der an Lastkapazität C_L sehen
will - IIRC konnte man am DS1302 was einstellen in der Richtung.
Dein Scope belastet ja den Oszillator, wie ein zusätzlicher Kondensator
am Quarz, das verschiebt die Frequenz.
Daher macht man sowas normalerweise, in dem man einen Ausgang an der RTC
aktiviert, der z.B. 32,768kHz ausgeben soll, aber die DS1302 ist in der
Hinsicht leider behindert.
Und dann stellt sich ja noch das Problem, wie genau dein Scope die
Frequenz messen kann.
Aber mal als Hinweis: Wenn der Quarz mit max. 20ppm@Raumtemp angegeben
ist und du mit Scope 21ppm misst, bist du auf jeden Fall grob daneben.
Im Grunde brauchst du eine sehr genaue Sekunde, vom GPS z.B., und zählst
davon 86400 ab. Erst dann schaust du nach der RTC, und die sollte dann
exakt einen Tag weiter sein.
Mögliche Ursachen:
- Temperatur/Luftfeuchte/Dreck/Flussmittel/Löttemperatur
- Störungen auf der Spannung
- Takte in der Nähe
- Quarz/LP gefallen
- Quarz wird over/underdriven
- Cl ist anders als man meint
- Wird zu oft abgefragt (manche RTCs stoppen den Counter während der
Abfrage, damit man nicht Zeit "heute" und "morgen" ausliest)
- Fakes
- Simpel ein falscher Quarz
- und noch tausend andere Dinge.
Jim M. schrieb:> IIRC konnte man am DS1302 was einstellen in der Richtung.
Blödsinn. Der DS1302 will einen Kristall mit 6pF sehen, was OP seiner
Aussage nach auch angeschlossen hat.
Mir stellt sich jetzt bloss noch die Frage ob die Schaltung bei
ungewöhnlich hoher (oder tiefer) Temperatur betrieben wird.
Wurde mal zum Testen der Quarz getauscht?
Jens M. schrieb:> Mögliche Ursachen:
Die Masse-Berandung der Quarz-Pads, der IC-Pads sowie die
der Zuleitungen bringen geschätzte 2 bis 3 pF zusätzlich.
RTC schrieb:> Ich nutze einen 32,768kHz Quarz mit 6pF und 20ppm.
Und was steht im Datenblatt vom Quarz über die erforderliche
Lastkapazität?
Wenn du eine genauere RTC brauchst, guck dir mal die DS3231 mit ihrem
temperaturkompensierten Oszillator an.
Karl M. schrieb:> wie oft liest Du am Tag den DS1302 und BCD kodierten Daten aus?
erst lesen dann schreiben.
Kannst du den Quarz drehen, so das die Leitung an 5/6 gleichlang sind.
Also so ganz verstehe ich diese Diskussion um ein paar ppm nicht - das
Hauptproblem scheint mir doch zu sein:
> Pro Tag geht die Uhr bis zu 10 Minuten nach.
S. Landolt schrieb:> Also so ganz verstehe ich diese Diskussion um ein paar ppm nicht - das> Hauptproblem scheint mir doch zu sein:>>> Pro Tag geht die Uhr bis zu 10 Minuten nach.
Das wären nicht "ein paar ppm", sondern grundsolide 0.7% oder 7000ppm.
Das passt allerdings so gar nicht mit der gemessenen Frequenzabweichung
zusammen. Die würde zu einer täglichen Abweichung von 1.85 Sekunden
führen.
RTC schrieb:> Ich nutze einen 32,768kHz Quarz mit 6pF und 20ppm. Auf dem Oszilloskop> messe ich eine Schwingung am Quarz von 32,7673kHz.
Kurz: Da ist was oberfaul.
>Wenn ich mich recht entsinne, vergrößert sich die Abweichung> beim DS1302, je öfter man das Chip DS1302 ausliest.
Wäre eine Erklärung; würde andererseits bedeuten, dass das Teil pro
Zugriff rund 3.5 ms verliert - kann das sein?
S. Landolt schrieb:> Wäre eine Erklärung; würde andererseits bedeuten, dass das Teil pro> Zugriff rund 3.5 ms verliert - kann das sein?
Solchen Effekt kenne ich nur aus der fernen Vergangenheit (~25 Jahre).
Von der RTC eines zu dieser Zeit aktuellen Laptops. Da hat auch jeder
Zugriff auf die Uhrzeit-Register kurzzeitig die Zählung selbiger
angehalten.
Wohl ein extrem kostenoptimiertes Design, wo nicht mal mehr Geld für ein
Latch für die 6 Bytes BCD-Daten drinne war...
Würde mich einigermaßen überraschen, wenn heute noch so ein Hardwaremüll
im Umlauf wäre. Aber: Nix ist unmöglich.
Uff, also die GND Fläche um dem Quarz herum kann ich anpassen - denke
aber nicht, dass das so eine große Abweichung erzeugt. Ebenso schaue ich
mal, ob ich ab und zu ggf. das "Clock Halt Flag" setze.
Aber laut Datenblatt muss der Quarz 6pf haben - ich habe nochmal meine
Bestellung überprüft und das ist korrekt.
Alle Bauteile bei Mouser bestellt. Ich habe auch mal zwischendruch
getestet und in Endlosschleife die RTC abgefragt, also ohne Pausen. Das
hatte keine Auswirkung.
ichwieder schrieb:> Kannst du den Quarz drehen, so das die Leitung an 5/6 gleichlang sind.
Den Quarz auf der Leiterplatte kann ich nicht drehen.
Jim M. schrieb:> Mir stellt sich jetzt bloss noch die Frage ob die Schaltung bei> ungewöhnlich hoher (oder tiefer) Temperatur betrieben wird.
Wie gesagt: normale Zimmertemperatur. Es sind keine Bauteile auf der
Leiterplatte, die warm werden.
Jim M. schrieb:> Wurde mal zum Testen der Quarz getauscht?
Noch nicht.
Hat nicht direkt mit dem Thema zu tun, aber:
Ich hab hier einen DS1337 als Minuten-Takt für eine Tochteruhr,
der wird nicht ausgelesen, und funktioniert sehr genau. Keine für mich
meßbaren Abweichungen festzustellen. Aber wird halt auch nicht ständig
ausgelesen.
c-hater schrieb:> S. Landolt schrieb:>>> Wäre eine Erklärung; würde andererseits bedeuten, dass das Teil pro>> Zugriff rund 3.5 ms verliert - kann das sein?>> Solchen Effekt kenne ich nur aus der fernen Vergangenheit (~25 Jahre).
Das passt doch, der DS1302 ist ungefähr so alt. Das PDF-Datenblatt ist
vom April 1997, vorher gab's wohl nur Papier.
> Würde mich einigermaßen überraschen, wenn heute noch so ein Hardwaremüll> im Umlauf wäre. Aber: Nix ist unmöglich.
Solche Teile sind immer noch im Umlauf, sieht man doch an diesem
Thread. Warum tut man sich das freiwillig an?
> ... in Endlosschleife die RTC abgefragt, also ohne Pausen.> Das hatte keine Auswirkung.
Dann liegt der Verdacht nahe, dass mit dem Uhrenprogramm als solchem
etwas nicht stimmt.
Thomas W. schrieb:> Keine für mich meßbaren Abweichungen festzustellen.
Nach welcher Laufzeit?
Es kommt sicher drauf an, ob du mit einer Sanduhr vergleichst oder z.B.
gegen ein 1PPS-Signal von einem GPS-Empfänger guckst.
S. Landolt schrieb:>> ... in Endlosschleife die RTC abgefragt, also ohne Pausen.>> Das hatte keine Auswirkung.>> Dann liegt der Verdacht nahe, dass mit dem Uhrenprogramm als solchem> etwas nicht stimmt.
Hatte ich z.B. bei meiner Tochteruhren-Steuerung, daß ab und zu der
Impuls für die Tochteruhr nicht zur Zeigerbewegung geführt hat. Das
würde sich z.B. auch als "Uhr geht nach" auswirken, aber nichts mit dem
Zeitgeber zu tun haben.
Ich habe jetzt ein Problem gefunden: Bei jedem Neustart verliert die RTC
ihre Sekunden.
Beispiel:
12:30:30 -> 12:30:00
Schalte ich z.B. bei 12:30:55 aus, warte 20 Sekunden und schalte wieder
an, dann steht die Uhr auf 12:31:00, solltre aber 12:31.15 sein.
Kann dies ein Problem der RTC sein? Ich weiß, dass es auch ein
Softwarefehler sein kann, ich schaue mal.
Neustart ? Was für ein Neustart ?
Entweder das ist schon wieder leicht trollig oder
bitte alle Informationen am Anfang dazu geben.
Warscheinlich Neustart vom Microcontroller ?
Dann liegts an der Software die das Sekundenregister nicht ausliest.
Ihr habt recht. Beim überprüfen ob die RTC läuft, habe ich immer die
Sekunden mit 0 überschrieben. Dadruch gehen wohl in der Testphase bei
Neustart immer etliche Sekunden flöten.
Danke.
RTC schrieb:> Ihr habt recht. Beim überprüfen ob die RTC läuft, habe ich immer die> Sekunden mit 0 überschrieben. Dadruch gehen wohl in der Testphase bei> Neustart immer etliche Sekunden flöten.
Das mag sein, aber in deinem Layout ist nichts von externen Kondensator
am Quarz zu sehen. Gehören da nicht an Q1 und Q2 6pF Kondensatoren
jeweils nach GND?
A. F. schrieb:> Gehören da nicht an Q1 und Q2 6pF Kondensatoren> jeweils nach GND?
Nicht laut Datenblatt. Das schränkt die Verwendbarkeit des ICs deutlich
ein, man kann nicht auf genaue Frequenz trimmen. Aber man spart halt 2
Kondensatoren ein, das schont das Bastler-Budget.
Georg
Georg schrieb:> Nicht laut Datenblatt. Das schränkt die Verwendbarkeit des ICs deutlich> ein, man kann nicht auf genaue Frequenz trimmen. Aber man spart halt 2> Kondensatoren ein, das schont das Bastler-Budget.>> Georg
Wie jetzt? Natürlich muss die Lastkapazität exakt gewählt werden, sonst
hat man einen Frequenzfehler und so entsteht über einen Tag locker die
10 Minuten Differenz.
A. F. schrieb:> Georg schrieb:>> Nicht laut Datenblatt. Das schränkt die Verwendbarkeit des ICs deutlich>> ein, man kann nicht auf genaue Frequenz trimmen. Aber man spart halt 2>> Kondensatoren ein, das schont das Bastler-Budget.>>>> Georg>> Wie jetzt? Natürlich muss die Lastkapazität exakt gewählt werden, sonst> hat man einen Frequenzfehler und so entsteht über einen Tag locker die> 10 Minuten Differenz.
In diesem Fall muss eben der Quarz passend zum IC gewählt werden.
Aber 10 Minuten pro Tag sind 7000ppm. Welcher Quarz lässt sich so weit
ziehen und schwingt dann noch an zweifel
A. F. schrieb:> so entsteht über einen Tag locker die> 10 Minuten Differenz
Angenommen, der Quarz schwänge an, welche Lastkapazität wäre nötig für
diesen Versatz von 7000 ppm?
Macht ein normaler Quarz nicht mit. Der Ziehbereich ist viel kleiner.
Was auch noch sein kann: schnelle Leitungen im Bereich der
Quarzanschlüsse der RTC.
Der TO hat den Fehler doch längst gefunden:
RTC schrieb:> Ihr habt recht. Beim überprüfen ob die RTC läuft, habe ich immer die> Sekunden mit 0 überschrieben.
A. F. schrieb:> Wie jetzt? Natürlich muss die Lastkapazität exakt gewählt werden, sonst> hat man einen Frequenzfehler und so entsteht über einen Tag locker die> 10 Minuten Differenz.
Du scheinst merkwürdige Vorstellungen über den Ziehbereich eines Quarzes
zu haben. Außerdem nimmt bei zu geringer Kapazität die Frequenz zu.