RTC ungenau DS1302

OP #5838345
Hi,

ich habe diese RTC

https://www.elecrow.com/wiki/index.php?title=Tiny_RTC

mit einem Nano3 verbunden, lib rauf, Ausgabe über seriellen monitor.

Zeit rein, Ausgabe kontrolliert, und dann von der Stromversorgung 
trennen, am nächsten tag habe ich 10s zu wenig, am tag daruf ca. 20s.

Wie kann das sein?

können die so falsch gehen? Batterie ist neu, war auch leer!


Viele Grüße
DS
Gast
Dennis S. schrieb:
> Wie kann das sein?

Übliche Massenproduktion mit hohen Toleranzen und ohne Trimmung.

Dennis S. schrieb:
> können die so falsch gehen?

Ja. Ist normal, kann ich auch aus eigener Erfahrung bestätigen.

Dennis S. schrieb:
> Batterie ist neu, war auch leer!

Ist weitgehend unabhängig vom Batterie-Alter und -Spannung.

Dennis S. schrieb:
> am nächsten tag habe ich 10s zu wenig

Ich habe z.B. 30s zuviel .....
Gast
Also eigentlich verbitte ich mir gerne Kommentare wie den folgenden, 
aber in diesem Fall kann ich nicht anders:

Es wurde in vielen Diskussionsforen berichtet, dass gefälschte RTC 
Module im Umlauf sind, die sehr schlecht funktionieren.

Ich würde die Möglichkeit zumindest in Betracht ziehen, obwohl ich 
persönlich immer nur funktionierende Ware (egal ob original oder nicht) 
bekommen habe.

Was du da vorliegen hast, würde ich als defekt bezeichnen.
Seit der "Erfindung" der Rechneruhr geht es mit den Teilen nur noch 
abwärts.

Praktisch immer liegt es daran, dass man am Quarz noch ein bisschen mehr 
sparen kann.

Interessanterweise merken es die Meisten gar nicht mehr, welchen Schrott 
sie eingebaut haben. Man synchronisiert beim Einschalten des Systems und 
merkt es dann schon nicht mehr.
Stefanus F. schrieb:
> Signalversteher schrieb:
>> Deine elektronischen "Fachkenntnisse" hast du hier auf uC.net
>> ja bereits wiederholt und ausreichend bewiesen.
>
> Ja Joachim, ganz toll.

du irrst, ich poste nie unter falschem Namen!

Wenn es mehr als EINEN gibt der dir mangelnde Fachkenntnis auf 
Elektronik nachweist kann ich ja nicht so falsch liegen!
Gast
Joachim B. schrieb:
> Wenn es mehr als EINEN gibt der dir mangelnde Fachkenntnis auf
> Elektronik nachweist kann ich ja nicht so falsch liegen!

Weil ich eine extrem ungenaue Uhr als "defekt" bezeichne?

Lege Dir ruhig noch mehr Namen zu, dann kannst du deine Schmähungen 
vervielfachen und wirkst glaubwürdiger. Zumindest denkst du das 
scheinbar.
OP
>>Ja. Ist normal

Das verstehe ich nicht, ich dachte immer das man sich deswegen eine rtc 
zulegt, so kann ich mir das Theater doch sparen und gleich mit der 
Prozessortaktfreq. ein Schätzeisen als 2Zeiler programmieren, oder?

Frage: Wie kann ich das verbessern, auf dem Modul ist ja kein Hexenwerk, 
gibt es einen empfehlenswerten quarz?

viel. sowas

https://www.reichelt.de/uhrenquarz-metallgehaeuse-1-4x1-4x5mm-7pf-32-768-ms3v-7-p101075.html?&trstct=pos_1

20ppm? hmm

Ich bin da echt nicht firm drin, welche Kapazität sollte ich wählen? Es 
ist die ds1307 ich habe auch module mit der ds1302

wie dieses:

https://www.amazon.de/HALJIA-DS1302-Clock-Modul-Arduino/dp/B01C741VTK/ref=asc_df_B01C741VTK/?tag=googshopde-21&linkCode=df0&hvadid=214439841299&hvpos=1o2&hvnetw=g&hvrand=3992934532249170035&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1004536&hvtargid=pla-349386051241&psc=1&th=1&psc=1

Viele Grüße
DS
OP
gerade recherche:

Beitrag "Re: Uhr zu ungenau"

also 6pF!

Das Thema ist eine Wissenschaft für sich. Was auffällt ist das sich 
viele dieser rtc platinchen Bauer nicht an die app notes halten... 
verstehe nicht warum, da geht es nur um wenige Kleinigkeiten:

Leiterbahnen am Quarz und zur Masse
Kapazität des Quarz beachten
Kondensator richtig wählen

Tja, nun muss man doch wieder selber ran und dran 
rumverschlimmbessern....


rrr
DS
Gast
Bei Joachim ist das normal.

Ich würde die Teile jedoch reklamieren. Eine Uhr, die am Tag 10 Sekunden 
falsch läuft, ist für mich inakzeptabel (defekt).

Du kannst versuchen, den Quarz auszuwechseln. Vielleicht findest du im 
Haushalt oder im Euro Shop eine Uhr, die normal läuft, dann verwendet 
einfach deren Quarz. Die Chance, dass das klappt, ist zwar nicht 100% 
aber hoch.
OP
Danke, ich schaue mir erstmal das layout und den rest an...

Zumal mir gerade die DS3232 unter gekommen ist, habe aber noch nicht ins 
db geschaut, warum die so viele Pins hat etc...

Ich möchte was kaufen und nicht viel basteln, ich dachte bis jetzt immer 
das man eine rtc kauft um eben sicher sein zu können, das man etwas hat, 
das man Uhr nennen kann, und eben nicht tagelang kompensiert, 
ausprobiert, stimmt, temperaturstabil macht, quarze ausprobiert, Layouts 
verändert oder was weiß ich noch alles. Das Ding heißt doch auch rtc und 
nicht tc… :-)

Gruß
DS
Gast
Stefanus F. schrieb:

> Ich würde die Teile jedoch reklamieren. Eine Uhr, die am Tag 10 Sekunden
> falsch läuft, ist für mich inakzeptabel (defekt).

10 Sekunden am Tag sind 115ppm. Das ist nicht so sehr weit weg von dem, 
was für Quarze üblicherweise an Genauigkeit garantiert wird.

Außerdem: wenn man den Fehler kennt, kann man ihn weitgehend 
kompensieren. Man muss einfach bloß programieren können...

Aber natürlich, Leute, die sich über starke Worte erregen, sind allein 
damit natürlich voll ausgelastet, da bleibt dann keine Zeit für 
pragmatische Lösungen, die schlicht nur simples Programmierer-Handwerk 
verlangen...
Gast
c-hater schrieb:
> Das ist nicht so sehr weit weg von dem,
> was für Quarze üblicherweise an Genauigkeit garantiert wird.

Ja, für den x MHz Systemtakt.

Uhrenquarze haben typischerweise 20ppm. 26 Beispiele, die haben alle 
20ppm:

https://www.conrad.de/de/p/quarzkristall-euroquartz-quarz-tc26-zylinder-32-768-khz-12-5-pf-x-h-2-mm-x-6-2-mm-1-st-156007.html

https://www.mouser.de/Passive-Components/Frequency-Control-Timing-Devices/Crystals/_/N-6zu9f?P=1yzmo0zZ1z0jkzgZ1z0z7l5
Gast
Jack V. schrieb:
> Ich glaube, wenn man tatsächlich eine genaue Zeit möchte, wäre so’n
> DCF77-Empfänger die bessere Wahl.

Heutzutage auch noch GPS oder WLAN, insbesondere wenn es mit der Zeit 
nicht nur in und um Deutschland klappen soll.

Gurgl schrieb:
> Hast du dir überhaupt mal den Link angeschaut? Welche Ganggenauigkeit
> erwartest du bei dem Preis?

Bei einer DS1302 lässt sich die Geschwindigkeit, genauso wie bei jedem 
anderen Quarz, durch Abgleich mit einem Trimmkondensator einstellen. 
Früher (tm) war das selbstverständlich, aber für heutige Billigprodukte 
ist der Trimmkondensator zu teuer und die Zeit für den Abgleich in der 
Produktion nicht vorhanden.

Wenn man 50ct mehr investiert, verfügt die RTC auch intern über eine 
Abgleichmöglichkeit, z.B. die DS3231 mit 0.1ppm Auflösung.
Gast
Stefanus F. schrieb:
> Uhrenquarze haben typischerweise 20ppm

Ja, und typischerweise ist das für eine genau gehende Uhr nicht 
ausreichend, man erwartet heute wenige Minuten/Jahr auch von billigen 
Quarzuhren.

Entweder gleicht man die Quarzfrequenz mit einem Trimmkondensator ab auf 
etwa 1 ppm, oder man lässt sie wie sie ist und korrigiert die Zeit 
programmtechnisch, in beiden Fällen braucht man natürlich eine 
entsprechend genaue Mess- Oder Vergleichsmöglichkeit.

Georg
OP
Hey,

kleine Frage noch, wenn ich das nun softwaretechnisch kompensiere, wofür 
brauche ich dann überhaupt noch eine rtc, dann kann ich doch gleich den 
nano quarztakt mit einem timer nehmen, eine Uhr programmieren und das 
dann softwaretechnisch kompensieren...oder?

Gruß
Dennis
Dennis S. schrieb:
> wenn ich das nun softwaretechnisch kompensiere, wofür
> brauche ich dann überhaupt noch eine rtc, dann kann ich doch gleich den
> nano quarztakt mit einem timer nehmen, eine Uhr programmieren und das
> dann softwaretechnisch kompensieren...oder?

ähmmm, was ist bei Stromausfall?
willst du einen Quarz zusätzlich anlöten und eine Stützbatterie?
Dann natürlich, die meist verbauten Taktgeber sind oft keine Quarze und 
dann kommt noch der Temperaturgang hinzu.

Klar geht alles, ich persönlich finde gepufferte RTC bequemer.
Gast
Dennis S. schrieb:

> kleine Frage noch, wenn ich das nun softwaretechnisch kompensiere, wofür
> brauche ich dann überhaupt noch eine rtc, dann kann ich doch gleich den
> nano quarztakt mit einem timer nehmen, eine Uhr programmieren und das
> dann softwaretechnisch kompensieren...oder?

Ganz genau so ist das. Eine externe RTC nimmt man nicht, um eine 
genauere Zeitbasis zu bekommen (nur Vollidioten tuen das aus diesem 
Grund), sondern um eine Zeitbasis zu bekommen, die möglichst wenig 
Energie benötigt.

Sprich: immer dann, wenn man den Controller in den Tiefschlaf schicken 
möchte, um Energie zu sparen, dann könnte eventuell der Einsatz einer 
externen RTC sinnvoll werden.

Allerdings haben viele Controller schon eingebaute RTC-Timer, die auch 
in der Lage sind, den Controller auch aus dem Tiefschlaf zu erwecken. 
Dann sind externe RTCs meist vollkommen nutzlos, weil die bezüglich des 
Energiebedarfs nicht so viel besser sind als die interne Lösung des µC 
(wenn sie es überhaupt sind).

Die Sache reduziert sich also dann auf einen Uhrenquarz an den 
entsprechenden Pins des Controllers. Und die Programmierung der Sache...
c-hater schrieb:
> Allerdings haben viele Controller schon eingebaute RTC-Timer, die auch
> in der Lage sind, den Controller auch aus dem Tiefschlaf zu erwecken.
> Dann sind externe RTCs meist vollkommen nutzlos, weil die bezüglich des
> Energiebedarfs nicht so viel besser sind als die interne Lösung des µC
> (wenn sie es überhaupt sind).

hau mal nicht so auf den Pudding, der TO schrieb:

Dennis S. schrieb:
> Nano3

und da geht mir zu oft der flash und SRAM aus, eine Uhr programmieren 
ist einfach, aber mit ewigen Kalender und Plausibilitätsprüfung, 
Monatstage, Schaltjahr, einfache Berechnung oder genaue Berechnung gibts 
ja nicht in 100 Byte und wenn jedes Byte schon knapp ist.
Gast
c-hater schrieb:
> Allerdings haben viele Controller schon eingebaute RTC-Timer,

Was bedeuet eigentlich "RTC":

Das "R" steht für "real", also Echtzeit. Eine RTC bekommt immer eine vom 
µC unabhängige Versorgung und soll auch nach Neustart des Prozessors die 
absolute Zeit liefern.

Welcher µC bietet das?
Gast
Manfred schrieb:
> Was bedeuet eigentlich "RTC":

Das wichtigste an einer RTC ist, dass sie die Uhrzeit weiterzählt, wenn 
der Strom abgeschaltet wird, wofür in der Regel eine Batterie sorgt. 
Eine Uhr die nach dem Abschalten nachts am nächsten Tag um 12 Stunden 
falsch geht ist völlig nutzlos. "Nonvolatile clock" träfe es vielleicht 
besser.

Im Prinzip kann man natürlich einen Controller so programmieren, dass er 
die Uhrzeit korrekt zählt, das ist ziemlich trivial. Auch eine gute 
Genauigkeit ist erreichbar. Mit einer Batterie kann man den Prozessor 
weiterlaufen lassen, aber dass er dabei so wenig Strom braucht, dass er 
mit einer kleinen Zelle Monate läuft ist mit den weitaus meisten 
Prozessoren nicht machbar.

Manche Controller haben eine eingebaute RTC, aber das ist eine extra 
Hardware-Einheit mit einem Anschluss für die Batterie und den Quarz. Die 
meisten sind nicht so gut wie eine externe RTC. Die kann man auch 
abgeglichen kaufen und braucht keinen Präzisionszähler zum Abgleich.

Georg
Dein Problem kommt mir bekannt vor!
Die Zeit genauer zubekommen wenn vcc 5v ist war mit je 2 smd 
Kondensatoren "glaube"a 12 pF gegen masse machbar. muste am besten mal 
nachmessen wie hoch die last für den quarz sein muss.

Aber das die uhr falsch geht bei strom Verlust damit musste einfach 
leben die Battey ist woll nur zum halten der Daten zu gebrauchen.

Jenach Einsatz ort sollte eine 5v Dauerversorgung kein problem sein.
Gast
Eine externe RTC hat den Charme, dass sie ohne besonderen Aufwand aus 
dem Stand heraus wesentlich genauer arbeiten kann, als die 
Oszillatoren eines gewöhnlichen Mikrocontrollers.

Man darf das aber nicht von einem DS1302 Modul für 1€ erwarten.

Es gibt von Dallas Chips mit integriertem Quarz, die sind bereits vom 
Hersteller kalibriert und hängen nicht vom Layout und den Bauteilen 
drumherum ab. Diese meine ich. Sie kosten entsprechend mehr.
Stefanus F. schrieb:
> Man darf das aber nicht von einem DS1302 Modul für 1€ erwarten.
> Es gibt von Dallas Chips mit integriertem Quarz, die sind bereits vom
> Hersteller kalibriert und hängen nicht vom Layout und den Bauteilen
> drumherum ab. Diese meine ich. Sie kosten entsprechend mehr.

für die ersten China DS3231 Module mit LiR2032 und EEPROM habe ich auch 
nur 1,17€ gezahlt, der pure Chip hier im Laden 10,-€

Man denk ob der Preise Fälschung, aber alle laufen einwandfrei.
Mitterweile kosten die Module um 5€ sind aber immer noch günstig!
Es gibt Uhrenquarze, 32768Hz mit 10ppm. Die sind standard. Allerdings 
bei welcher Temperatur und ueber welchen Temperaturbereich? Zum 
Uhrenbaustein gibt es ein Datenblatt mit Schaltungsvorgaben. Nicht 
Vorschlaege, Vorgaben !

Der Blick auf den Stromverbrauch zeigt, dass man sich anstrengen muss 
mit dem Lowpowermode des Controllers diesen Wert zu erreichen.

Falls man eine Software Korrektur ins augefasst, sollte man die 
Temperatur mitmessen und einbeziehen. Nach umfangreichen, vorgaengigen 
Messungen.

Allenfalls kann man die Zeit auch korrigieren wenn man sich mit dem 
System verbindet.
Gast
Was mich betrifft verwende ich in neuen Projekten nur noch 
temperaturkompensierte RTCs von Dallas wie z.B DS3231/2. Da hat man 
keine Probleme mit der Calibrierung. Auch die billigen China Module 
funktionieren besser wie jene mit externen Quarz. Bei 
Innentemperaturgebrauch weisen auch die China Module Genaugigkeiten 
innerhalb der Datenblattwerte auf.

Ich hatte mal übrigens zufällig Glück mit einem STM32F103 und SMD Quarz. 
Ohne irgendwelche Maßnahmen lief die interne RTC mit dem Quartz auf 2 
Minuten genau per Annum.

DS1302 und DS1307 mußten immer kalibriert werden. Dazu teilte ich den 
Eingangsbürde C mit einem NPO Typ auf die Hälfte auf und parallel mit 
einem grünen Philipstrimmer und 20p NPO. Damit läßt sich nun der 
Uhrenquarz genau kalibrieren. Solange die Uhr nur relativ ständigen 
Zimmertemperaturen ausgesetzt ist, lohnt sich das. Einfache analoge 
Temperaturkompenstation ist wegen der symmetrischen parabolischen 
Tempeaturabhängikeit nicht bequem.

Deshalb sollte man temperaturkompensierte RTCs wählen. Man erspart sich 
eine Menge Ärger. DiE MEMS Version (DS3232M) des DS3232 läuft 
überraschend genau. Nicht ganz so gut wie die Quarzversion, aber 
immerhin bedeutend besser wie ein externer Quarz. Man kann natürlich mit 
uC SW Temperatur Kompensation digital machen. Ob sich der Aufwand im 
Vergleich zu DS3231x lohnt?

Nur meine zwei Cents...
Gast
Manfred schrieb:

> Das "R" steht für "real", also Echtzeit. Eine RTC bekommt immer eine vom
> µC unabhängige Versorgung und soll auch nach Neustart des Prozessors die
> absolute Zeit liefern.
>
> Welcher µC bietet das?

Jeder mit einem internen RTC-Timer gesegnete, der von einem fähigen 
Menschen programmiert wurde.

Natürlich führt ein Reset einen zusätzlichen Fehler ein, aber der ist 
weit im Subsekunden-Bereich, also gegenüber dem, was typische RTCs 
besser machen könnten, vollkommen irrelevant.

Wenn es zu einer Situation kommen sollte, dass dieser zusätzliche Fehler 
tatsächlich irgendeine Bedeutung bekommen sollte, wird einfach 
exorbitant unüblich viel resettet.

Nur VÖLLIG BESCHISSENE Software braucht so viele Resets. Gute Software 
hingegen läuft einfach durch. Jahre und sogar Jahrzehnte.
Ich werfe mal die Uhrenschaltkreise RV8803-C7 oder RV3028-C7 in die 
Runde, welche mit 1,5 bis 3ppm bzw. 1ppm  angegeben werden. Die Dinger 
sind mit 3,2 x 1,5mm noch kleiner als ein Quarz und der Stromverbrauch 
liegt im nA-Bereich. Allerdings ist das Löten des IS für den 
"Normal"-Bastler nicht all zu leicht.
OP
Hi,

mir würde schon ein genauer 1Hz Takt reichen. Ich brauche eine genaue 
Uhr, die muss sich nichts merken …
Bin kurz davor eine schrottige Digitaluhr zu nehmen und die an zu 
zapfen, da alles irgendwie kalibriert, mit Software nachjustiert oder in 
irgendwelchen schwierigen Gehäuse ist...

Gruß
DS
Die Genauigkeit einer RTC mit externem Quarz ist halt abhängig von der 
Genauigkeit des Quarzes. Also wenn du keinen (teuren und großen) OCXO 
verwenden willst, nimmst du den RV-3029 oder ähnliches. Habe ich noch 5 
Stück bei mir in der Schublade liegen, kannst ja mal rum kommen  ;-)
Ich denke nichts geht um den DS3231 wen nman schon zum Breakout greift..

Ich habe mal den Quarz eines Ds1307 Boards gegen was hochwertigeres 
getauscht.. hat auch gleich viel besser funktioniert.

RX8564 hat aber auch ne Minute pro Monat, ich habe einen Testaufbau mit 
DS3231, muss jetzt lügen.. war so unter 1 Minute auf 18 Monate.
Diese Uhrenmodule müssen ja gar nicht exakt laufen.
Kein Modul läuft unbegrenzt lange ganz genau!!



Es geht ja mehr darum, dass man nach einem Stromausfall eine Zeit hat.



Zum einen kann der Controller konstante Fehler ausgleichen.

Zum anderen, der Controller ist ja meist entweder im Netz (Time Server) 
oder kommuniziert mit einem Master (Time-Sync) oder kann sich durch 
DCF-77 behelfen.


Nicht konstante Fehler sind meist Temperatur abhängig. Da gibt es 
verbesserte Module (zb. DS3231) die automatisch Temperatur kompensieren.
Ich habe gerademal geschaut, meine DS3231 Uhr läuft etwas zu schnell..
Seit dem 24.01.18 genau 20 Sekunden bis eben.

Macht auf 44416778 Takte 20 falsch, müsste irgendwas bei 0,5PPM werden 
wenn ich mich nicht verrechnet habe. War sogar billigware Stück 15cent.

Allerdings bei konstanter Werkstatt Temperatur.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.