[STM32] RTC über USB kalibrieren

OP Persönliche Seite #5374241
Guten Morgen :)

ich hab ein Projekt mit dem STM32F103 und die RTC läuft zu schnell / zu 
langsam.

Mir kam die Idee, die RTC über USB zu kalibrieren. Ich würde die Zeit am 
PC mit der RTC des STM32 vergleichen und das RTC-Prescaler Register 
abgleichen.

Per sukzessiver Approximation bräuchte ich da nur ein paar Minuten, um 
den Prescaler bestmöglichst anzupassen.

Wenn ich mich nicht verrechnet habe, könnte man ca 0,003% Genauigkeit 
hinbekommen, was dann pro Stunde etwa 10 Sekunden Abweichung wären.

Immer noch viel ...

Gibt es bessere Methoden, wie z.B. ähnlich dem PhasenAkku bei einer DDS, 
die einen langen (>=32Bit) Festpunkt-Akkumulator verwenden? Man könnte 
dann das eigentliche Prescaler-Register kontinuierlich anpassen und so 
im Mittel die Genauigkeit verbessern?

Weiß da zufällig jemand irgendwas fertiges?

Vielen Dank!
Mampf
Gast #5374247
Bis gestern wurden in einem anderen Thread mehrere Möglichkeiten durch 
diskutiert. Ich glaube im Titel stand "Kalibrieren". Suche mal danach.

Ich habe inzwischen drei Uhren mit Blue-Pill Boards gebaut. Alle drei 
laufen so genau, wie man es von anderen Consumer Uhren gewöhnt ist.

Der Trick ist: Du musst die beiden Pins entfernen, die zum Uhrenquarz 
führen. Jede unnötige Last (und dazu zählen auch 2cm Leiterbahn, die in 
der Luft enden) führt dazu, dass der Oszillator instabil läuft.

> pro Stunde etwa 10 Sekunden Abweichung

Out of the box kannst du auf 30 Sekunden Abweichung pro Monat hoffen. 
Auf meine drei Uhren trifft dies zu. Bei mehr als 2 Minuten pro Monat 
hast du einen Hardwarefehler.

Falls Dir die 30 Sekunden pro Monat noch zu viel Abweichung sind, musst 
du die Spannungsversorgung und die Temperatur konstant halten, sowie 
einen Korrekturwert ermitteln. Bei nicht konstanter Temperatur lohnt 
sich die Ermittlung des Korrekturwertes nicht.

Hier habe ich "meine" Methode zur Ermittlung des Korrekturwertes 
beschrieben: http://stefanfrings.de/stm32/index.html#rtc Sie ist 
Zeitaufwändig, benötigt dafür aber keinerlei zusätzliches Equipment.
Gast #5374256
Mampf F. schrieb:
> Doch doch klar :)
>
> Ich nutze auch Batterie-Backup per CR2032 Zelle :)

Wie kann das Teil denn so abweichen? Da ist doch was im STM nicht ok.
Ich selbst benutze eine externe RTC mit Quarz und Batterie in 
Kombination mit einem ATmega. Solche Abweichungen habe ich noch nie 
gesehen.
Gast #5374262
Hab hier aus China ein Datalogging Shield. Die RTC läuft sauber und wird 
über I2C angesteuert. Wäre so etwas für deine Applikation nicht auch 
denkbar?
OP Persönliche Seite #5374270
Jan schrieb:
> Hab hier aus China ein Datalogging Shield. Die RTC läuft sauber
> und wird
> über I2C angesteuert. Wäre so etwas für deine Applikation nicht auch
> denkbar?

Nein leider nicht ... Die Uhr ist fertig und der Kunde (=Freundin^^) 
beschwert sich, dass sie zu ungenau geht xD

Wäre ja im Prinzip kein großes Problem, aber am Einsatzort fehlen ihr 
die Root-Rechte, um einen Cron-Job einzurichten, der die Uhr hin und 
wieder mal neu stellt. Per USB könnte sie das ja alles ...

Danke für euren Input!

Ist viel wert, wenn es Leute mit praktischer Erfahrung gibt, die konkret 
sagen können, welche Genauigkeit man zu erwarten hat und was auf einen 
Hardware-Fehler schließen könnte :)
#5374625
Hallo zusammen,

bei mir lief die Uhr auch zu schnell. Der Fehler ist klein und fies:
Es ist standardmässig der 40khz LSI RC ausgewählt. Nachumschalten auf 
den externen 32khz Quarz läufts einwandfrei und ohne Drift.

Dafür muss nur die LSE Clock verwendet werden.
Angehängte Dateien:
Gast #5374637
Stefan U. schrieb:

> Falls Dir die 30 Sekunden pro Monat noch zu viel Abweichung sind, musst
> du die Spannungsversorgung und die Temperatur konstant halten, sowie
> einen Korrekturwert ermitteln. Bei nicht konstanter Temperatur lohnt
> sich die Ermittlung des Korrekturwertes nicht.

Bei nicht konstanter Temperatur kann man die Temperatur z.B. 1x pro 
Minute messen (STM32 int. Temp.) und den Korrekturwert berechnen..
Gast #5375716
Meine Quarzarmbanduhr schafft 2 sec pro 1/2 Jahr.
Dann ist wieder Winterzeit angesagt und Uhr stellen...

Also scheint es schon grundsätzlich recht genaue
32768 Hz Quarze zu geben.

Vermutlich werden die guten alle von den Uhrenherstellern
weggekauft und der klägliche Rest wird unters Volk geworfen.
#5375742
--- schrieb:
> Meine Quarzarmbanduhr schafft 2 sec pro 1/2 Jahr.
> Dann ist wieder Winterzeit angesagt und Uhr stellen...
>
> Also scheint es schon grundsätzlich recht genaue
> 32768 Hz Quarze zu geben.

Quarze in einem Thermostat sind eine Größenordnung genauer als in freier 
Luft. Bei Armbanduhren ist der Mensch der Thermostat. Für diese 
Temperatur werden die Quarze gefertigt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 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.