Forum: Mikrocontroller und Digitale Elektronik Resonator - Oszillator - Mikrocontroller - Uhr


von Michael G. (mondragon)


Lesenswert?

Hi,

ich will mir eine Platine für eine eigene Uhr designen. Als 
Mikrocontroller will ich den STM8S003 verwenden.
Als RTC Modul hab ich mir den DS3231M+TRL rausgesucht.

Meine Frage jetzt:
Benötige ich dann für den Mikrocontroller einen genauen Resonator / 
Oszillator oder kann ich da auch auf einen billigen zurückgreifen?

Nach meinem Verständnis sind Oszillatoren genauer als Resonatoren. Wenn 
ich aber für die Uhrzeit eh ein separates Modul - hier der DS3231M+TRL 
verwende, dann ist die Genauigkeit des Mikrocontrollers - dessen Taktung 
nicht von Relevanz, da darüber nicht die Uhrzeit abgegriffen wird.

Meine Lösung:
Ich plane daher einen billigen Resonator zu verwenden, da die Taktung 
nicht weiter wichtig ist.
-> Stimmt das soweit?

Erweiterte Frage:
Benötige ich eigentlich überhaupt einen separaten Taktgeber, oder kann 
ich auch auf den internen "16 MHz high-speed internal RC oscillator 
(HSI)" zurückgreifen und so mir das alles sparen?

Ich freue mich auf eine Rückmeldung

Beste Grüße,

von Stefan F. (Gast)


Lesenswert?

Michael G. schrieb:
> Wenn ich aber für die Uhrzeit eh ein separates Modul ...
> verwende, dann ist die Genauigkeit des Mikrocontrollers ...
> nicht von Relevanz, da darüber nicht die Uhrzeit abgegriffen wird.

Korrekt, der HSI genügt.

von Michael G. (mondragon)


Lesenswert?

Ok super, dann weiß ich jetzt Bescheid :)
Danke!

von MaWin (Gast)


Lesenswert?

Michael G. schrieb:
> Benötige ich dann für den Mikrocontroller einen genauen Resonator /
> Oszillator oder kann ich da auch auf einen billigen zurückgreifen

Du kannst auf den ungenauen internen RC Oszillator zurückgreifen.

Das ist aber Unsinnig, weil der DS3231 Geld und Platinenplatz kostet, 
Strom benötigt und wohl nicht so doll ist
http://www.harald-sattler.de/html/ds3231_-_ungenau-.htm

Du hast doch schon einen uC, der STM8, schliesse einen 32768Hz 
Uhrenquarz an ihn an und mach das, was der DS3241 tut, selber, im uC.

Man kann den uC aus einer Batterie versorgen und er braucht nicht so 
viel mehr Strom als der DS3231, falls das wichtig sein sollte.

von Michael G. (mondragon)


Lesenswert?

Hm ok, das ist echt nen guter Hinweis.
Der geteilte Beitrag ist auch super. Es stellt sich mir allerdings die 
Frage, wieso eine Eigenschaltung hier besser sein sollte. Wenn man die 
beiden Datenblätter vergleicht, so müsste der DS3231 doch eigentlich mit 
seinen +/- 2ppm gegenüber einem Quarz mit +/- 5ppm oder mehr doch 
eigentlich überlegen sein.

Könnte es denn auch möglich sein, dass die im Beitrag vorgestellten 
Modelle einfache Fälschungen sind und daher auch diese Abweichungen 
aufweisen?

Bei reiner Betrachtung der Datenblätter müsste doch der DS3231 damit 
besser sein, oder täusche ich mich?

von S. Landolt (Gast)


Lesenswert?

Es wurde hier vor Jahren mal ein Problem mit der Version DS3231M 
diskutiert, aber ich finde den Thread nicht mehr. Also nicht nur die 
schlechtere Genauigkeit, wie sie ja im Datenblatt steht, sondern 
Fälschung oder Ausschussware.

von S. Landolt (Gast)


Lesenswert?

PS:
> Bei reiner Betrachtung der Datenblätter ...

Ich habe hier von Digikey einen DS3234S sowie von Reichelt das Modul 
'RPI RTC CLOCK' mit einem DS3231SN, beide übertreffen die Genauigkeit, 
die im Datenblatt steht.

von Michael G. (mondragon)


Lesenswert?

Hmm ok,

da scheint sich in der Zwischenzeit also was getan zu haben;)

Danke für den Hinweis!

von Peter R. (Gast)


Lesenswert?

Michael G. schrieb:
> Nach meinem Verständnis sind Oszillatoren genauer als Resonatoren.

Nööö, nur speziell auf Frequenzgenauigkeit dressierte Oszillatore 
zusammen mit den passenden Resonatoren.

Erst musst Du Dir klar darüber werden, welche Genauigkeit Du brauchst: 
1ppm Frequenzabweichung (1Hz Abweichung bei 1MHz) sind schon ca. 9 sec 
pro Tag und eine Minute Abweichung in der Woche.

Die DS-sowieso da oben haben im bösen Fall zwei min, Fehler pro Woche. 
In der Praxis ist es aber , wie bei jeder Uhr, deutlich besser, da die 
Oszillatoren bzw. ICs ja nicht kreuz und quer durch die Temperaturen 
gejagt werden.

Wenn Du es auf sec genau haben willst, musst Du entweder hohen Aufwand 
treiben oder DCF benutzen.

Für Bruchteile von sec. muss man dann wohl GPS oder dgl. verwenden.

Übrigens: auch mit einer ungenauen Quarzfrequenz kann man recht genaue 
Zeit bekommen, per Software. Such mal hier im Forum unter "die genaue 
Zeit". Allerdings muss dann auch der Quarz konstante Frequenz liefern, 
was nur mit passendem Oszillator erreicht wird, der 
Temperaturkompensation hat oder mit Quarz im "Ofen"

von S. Landolt (Gast)


Lesenswert?

Peter R. schrieb:
> 1ppm Frequenzabweichung ... sind schon ca. 9 sec pro Tag
?
Da der Tag 86400 s hat, entspricht 1 ppm einer Genauigkeit von einer 
Sekunde in 11.6 Tagen oder rund 3 Sekunden pro Monat.

von Uwe D. (monkye)


Lesenswert?

Peter R. schrieb:
> Michael G. schrieb:
>> Nach meinem Verständnis sind Oszillatoren genauer als Resonatoren.
> Für Bruchteile von sec. muss man dann wohl GPS oder dgl. verwenden.

Genauso mache ich es. Ein billiges GPS-Modul hat in fast jedem Raum so 
viel Empfang. Oder halt via Netzwerk...

Ist hin wie her, Genauigkeit kostet.

von m.n. (Gast)


Lesenswert?

Michael G. schrieb:
> Als RTC Modul hab ich mir den DS3231M+TRL rausgesucht.

Seit Jahr und Tag verwende ich den PCF8563. Wenn man mag, kann man den 
Quarz mit einem Trimmkondensator auf Sollfrequenz "ziehen", was sich im 
Laufe der Zeit als unnötig erwiesen hatte. Bei der halbjährlichen 
Zeitumstellung wird auch die Drift korrigiert.

von Peter R. (pnu)


Lesenswert?

S. Landolt schrieb:
> Da der Tag 86400 s hat, entspricht 1 ppm einer Genauigkeit von einer
> Sekunde in 11.6 Tagen oder rund 3 Sekunden pro Monat.

Jo, tut mir leid, ca. 1/10  sec/d ist richtig. Beim schnellen 
Nachrechnen ist es halt passiert, den Kehrwert zu erwischen.

von Bauform B. (bauformb)


Lesenswert?

Michael G. schrieb:
> Als RTC Modul hab ich mir den DS3231M+TRL rausgesucht.

Das sieht genau wie die originale Typenbezeichnung von Maxim aus 
(allerdings für das SO-16 Gehäuse; warum nicht SO-8?). Das wäre aber nur 
das IC, kein Modul. Das einzelne IC kann ich z.B. bei Mouser kaufen, 
damit sind Fälschungen praktisch ausgeschlossen.

Überhaupt geht es hier mit den Typen nicht so genau. In den Antworten 
und in dem verlinkten Artikel ist nicht klar, wann der S oder der M 
gemeint ist. Das sind aber zwei völlig verschiedene Chips, jeder mit 
seinen eigenen Fehlern. Im nächsten Beitrag geht der TO anscheinend auch 
vom S aus:

Michael G. schrieb:
> Es stellt sich mir allerdings die Frage, wieso eine Eigenschaltung
> hier besser sein sollte. Wenn man die beiden Datenblätter vergleicht,
> so müsste der DS3231 doch eigentlich mit seinen +/- 2ppm gegenüber
> einem Quarz mit +/- 5ppm oder mehr doch eigentlich überlegen sein.

Finde erstmal einen Quarz mit ±5ppm. Und das gilt auch nur bei 25°C, 10 
Grad wärmer oder kälter machen nochmal mindestens 5ppm. Natürlich 
kann/sollte man den statischen Fehler abgleichen, aber ohne 
Temperaturkompensation sind die 32kHz-Quarze wirklich nur bei 
Zimmertemperatur zu gebrauchen; im Sommer wird's schon eng.

Michael G. schrieb:
> Hm ok, das ist echt nen guter Hinweis.
> Der geteilte Beitrag ist auch super.
>
> Könnte es denn auch möglich sein, dass die im Beitrag vorgestellten
> Modelle einfache Fälschungen sind und daher auch diese Abweichungen
> aufweisen?

Natürlich, da ging es doch überwiegend um Module. Mir ist auch nicht 
klar, mit welchem Chip bzw. Modul er welche Messung gemacht hat.

> Bei reiner Betrachtung der Datenblätter müsste doch der DS3231 damit
> besser sein, oder täusche ich mich?

Was ist "besser"? Ein integrierter Oszillator funktioniert sofort 
problemlos, auch mit einem schlechten Layout und verschmutzter Platine. 
Er ist auch unempfindlicher gegen Störeinkopplungen (weil kleiner). Die 
Abhängigkeit von der Betriebsspannung ist beim DS3231 spezifiziert, beim 
Eigenbau eher nicht. Von den ppm her ist es praktisch egal, man kann 
jeden Oszillator abgleichen. Der entscheidende Unterschied ist die 
Temperaturkompensation.

Rein nach Datenblatt ist der DS3231*S* der beste von den gebräuchlichen 
Chips. Der M ist zwar mit 5ppm deutlich schlechter, hat aber andere 
Vorteile, z.B. SO-8. Beide haben ein Trimm-Register mit ca. 0.1ppm 
Auflösung, aber beim S ist der Abgleich selbst temperaturabhängig. 
Insofern kann der M sogar besser sein, wenn man den Abgleich nutzt.

Ein netter Fehlermechanismus (aus dem Datenblatt der DS3231M):
1
During the initial battery attachment to the DS3231M, it is
2
important to eliminate the effects of contact bounce. Contact
3
bounce occurs when battery contact rapidly and repeatedly
4
alternates between connected and dis- connected during the
5
battery attachment before finally settling to the connected
6
state. This bounce can cause a momentary power interruption
7
to the DS3231M that can result in memory recall corruption
8
in the device.
Was zur Folge hat, dass der Abgleich des Oszillator nicht stimmt und die 
Frequenz um bis zu ±2.5% daneben liegen kann. Das weiß man vom M; vom S 
kann man vermuten, dass da grundsätzlich etwas ähnliches gemacht wird, 
nur ist der maximale Fehler dank Quarz vs. MEMS deutlich kleiner.

Die andere Fehlermöglichkeit, dass Lesen per I2C die Uhr langsamer gehen 
lässt, halt ich für denkbar (obwohl sie sich leicht umgehen lässt, indem 
man das Lesen mit dem 1Hz-SQW synchronisiert). Bei Kopieren der Zähler 
in die Ausgaberegister müsste ja die I2C-Start-Flanke mit dem internen 
Takt synchronisiert werden. Evt. geht dabei systematisch ein Takt 
verloren. Wenn das "nur" 1/32768 Sekunde ist und man selten genug liest, 
merkt das keiner. Also erwähnt Maxim das garnicht.

Wenn nicht synchronisiert wird, würde ich seltene grobe Lesefehler 
erwarten; das scheint's nicht zu sein.

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.