Forum: Mikrocontroller und Digitale Elektronik DS1302 zu langsam


von RTC (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Jens M. (schuchkleisser)


Lesenswert?

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?

von RTC (Gast)


Lesenswert?

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.

von Achim S. (Gast)


Lesenswert?

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?

von Jim M. (turboj)


Lesenswert?

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.

von Jens M. (schuchkleisser)


Lesenswert?

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.

von Jim M. (turboj)


Lesenswert?

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?

von Lay Auter (Gast)


Lesenswert?

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.

von Karl M. (Gast)


Lesenswert?

Hallo,

wie oft liest Du am Tag den DS1302 und BCD kodierten Daten aus?

Verwendest Du den Zeitgeberausgang,z.B. mit 1 Sekunde?

von Wolfgang (Gast)


Lesenswert?

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.

von ichwieder (Gast)


Lesenswert?

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.

von Platinen Frickler (Gast)


Lesenswert?

Application Note 58 könnte noch hilfreich sein:

https://www.maximintegrated.com/en/app-notes/index.mvp/id/58

von S. Landolt (Gast)


Lesenswert?

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.

von Karl M. (Gast)


Lesenswert?

Wenn ich mich recht entsinne, vergrößert sich die Abweichung beim 
DS1302, je öfter man das Chip DS1302 ausliest.

von Thomas W. (goaty)


Lesenswert?

Nicht daß aus Versehen mal das Clock Halt Flag gesetzt wird.

von Wolfgang (Gast)


Lesenswert?

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.

von S. Landolt (Gast)


Lesenswert?

>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?

von c-hater (Gast)


Lesenswert?

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.

von RTC (Gast)


Lesenswert?

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.

von Thomas W. (goaty)


Lesenswert?

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.

von bauformb (Gast)


Angehängte Dateien:

Lesenswert?

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?

von S. Landolt (Gast)


Lesenswert?

> ... 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.

von my2ct (Gast)


Lesenswert?

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.

von Thomas W. (goaty)


Lesenswert?

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.

von RTC (Gast)


Lesenswert?

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.

von Jens M. (schuchkleisser)


Lesenswert?

Das ist die Saftware.
Der Chip ist schon so alt, das wäre bekannt wenn der so einen Bug hätte.

von Thomas W. (goaty)


Lesenswert?

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.

von Software Aufpasser (Gast)


Lesenswert?

RTC schrieb:
> Bei jedem Neustart verliert die RTC ihre Sekunden.

Nein. Du verlierst sie.

von RTC (Gast)


Lesenswert?

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.

von A. F. (artur-f) Benutzerseite


Lesenswert?

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?

von Georg (Gast)


Lesenswert?

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

von A. F. (artur-f) Benutzerseite


Lesenswert?

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.

von Bauform B. (bauformb)


Lesenswert?

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

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

Abblocklondensator VCC vorhanden?

von S. Landolt (Gast)


Lesenswert?

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?

von Abdul K. (ehydra) Benutzerseite


Lesenswert?

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.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.