RTC auslesen Genauigkeit

#6872534
Lesenswert?

Ändert sich die RTC denn so schnell, dass man sie bei jedem Mainloop 
Durchgang auslesen muss ? Welche Genauigkeit muss sie denn bringen?

Normalerweise macht eine RTC nur Sekundenauflösung. Also genügt es sie 
alle paar Sekunden auszulesen. Fuer interne Berechnungen hat man sowieso 
einen Tick, mit zB 10ms Aufloesung. Eine RTC ist allenfalls fuer 
Automatisierungen, wenn um 6:00 ein Prozess beginnen soll.
Moderator (Firma: Titel) Persönliche Seite #6872639
Lesenswert?

Bastler schrieb:
> Ist es eigentlich schlecht für die Genauigkeit der RTC
Es schadet der Genauigkeit nicht, ist aber im Grunde 
Rechenzeitverschwendung.

> wenn ich diese
> auf einem STM32 durchweg in jedem Durchlaf der Main Loop auslese?
Welches Problem willst du damit lösen?

Pandur S. schrieb:
> Eine RTC ist allenfalls fuer
> Automatisierungen, wenn um 6:00 ein Prozess beginnen soll.
Für sowas kann man sich von einer RTC einen Interrupt geben lassen. Die 
haben dafür üblicherweise Alarmregister. Und das kann man dann z.B. 
einfach jede Sekunde um 1 höher setzen und bekommt dann den passenden 
Interrupt:
https://stackoverflow.com/questions/39345550/stm32l151-rtc-alarm-interrupt/39556952
Gast #6872802
Lesenswert?

Lothar M. schrieb:
>> wenn ich diese
>> auf einem STM32 durchweg in jedem Durchlaf der Main Loop auslese?
> Welches Problem willst du damit lösen?

Dieses hier:

Lothar M. schrieb:
> Für sowas kann man sich von einer RTC einen Interrupt geben lassen.

Was soll der Aufwand?
Die RTC lohnt nur dann auszulesen, wenn die genaue Zeit auch benötigt 
wird.
Die Frage nach einem 6:00 Uhr Alarm wurde vom TO doch garnicht gestellt.
(Firma: Schweigstill IT) Persönliche Seite #6872904
Lesenswert?

Adam P. schrieb:
> Also ich habe hier eine RX8130CE von Epson und da steht im Datenblatt:
>
> "During access to the time registers, the time counting is on hold!"

Du solltest nicht sinnentstellend zitieren! Vollständig steht dort:

"Warning: When accessing this device, all communication from 
transmitting the start condition to transmitting the stop condition 
after access *should be completed within 0.95 seconds.* If such 
communication requires 0.95 seconds or longer, the I2C bus interface is 
reset by the internal bus timeout function. When bus-time-out occur, SDA 
turns to Hi-Z input mode.

Note: During access to the time registers, the time counting is on hold! 
This means that up to 1 second can be “lost” in case of unsuccessful 
communication as mentioned above! Please make sure to send I2C start 
condition before actual transmission of the RTCs slave address as 
otherwise the slave address appears to be shifted by 1 bit!"
Moderator (Firma: Titel) Persönliche Seite #6872910
Lesenswert?

Adam P. schrieb:
> "During access to the time registers, the time counting is on hold!"
Ja, das ist auch erstmal gut, denn sonst würde sich die Zeit während 
des Auslesens ändern. Und wenn die Uhr dann mitten im Auslesen grade von 
11:59,59  auf 12:00,00 umschaltet, dann liest du evtl. einen Mischmasch 
aus diesen beiden Zeiten ein z.B. 11:50,00 oder sonstwas.

Andreas S. schrieb:
> Vollständig steht dort: ...
Und im Normalfall bei zügigem Lesen passiert auch nichts. Der zum 
Auslesen "festgehaltene" Wert wird "automatically revised" also 
"überarbeitet".

m.n. schrieb:
> Die Frage des TO bezieht sich auf einen STM32.
Aber es steht da nicht, dass er damit die interne RTC meint.

> Was soll der Aufwand?
Frage ich mich und den TO auch.

> RTC lohnt nur dann auszulesen, wenn die genaue Zeit auch benötigt wird.
Vielleicht will er ja in jedem Zyklus nachschauen, ob schon wieder 
eine Sekunde vergangen ist.

> Die Frage nach einem 6:00 Uhr Alarm wurde vom TO doch garnicht gestellt.
Nein, aber man kann dem TO ruhig mal den Tellerrand zeigen...
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #6873106
Lesenswert?

Cyblord -. schrieb:
> Echt geile RTC!
Ja, wie schon ausführlich erläutert: zum Glück wird die Änderung der 
Register während des Lesens angehalten und der Zählerstand erst danach 
korrigiert.

m.n. schrieb:
> Er schreibt von "der RTC ... auf einem STM32".
Offenbar besteht da Präzisierungbedarf, den nur der TO klären kann. Also 
warten wir diese Antworten einfach mal ab...
Gast #6873950
Lesenswert?

wenn die interne RTC gemeint war, dann ist die Clockconfig auch wichtig. 
Mit unkalibriertem LSI ist die dann nur ein grobes Schätzeisen, es sollt 
also auch ein passender Quarz für den LSE vorhanden und evtl. 
parametriert sein.
(Firma: Schweigstill IT) Persönliche Seite #6874087
Lesenswert?

Lothar M. schrieb:
> Adam P. schrieb:
>> "During access to the time registers, the time counting is on hold!"
> Ja, das ist auch erstmal gut, denn sonst würde sich die Zeit *während*
> des Auslesens ändern. Und wenn die Uhr dann mitten im Auslesen grade von
> 11:59,59  auf 12:00,00 umschaltet, dann liest du evtl. einen Mischmasch
> aus diesen beiden Zeiten ein z.B. 11:50,00 oder sonstwas.

Wenn ich die Bemerkungen im Datenblatt richtig verstehe, hat der 
Hersteller an jedem Gatter gespart und deswegen kein separates 
"Schattenregister" zum Auslesen spendiert. Stattdessen scheint ja 
wirklich das interne Zählregister angehalten zu werden. Bei einem 
halbwegs sauberen synchronen Design wären diese Register natürlich 
entkoppelt. Ggf. würde daa Ausleseregister dann einfach um einen 
Quarztaktzyklus (~30 µs) der echten Zeit hinterherhinken.

Aber das muss ich ja dem Großmeister der synchronen Digitallogik 
eigentlich nicht erklären. ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren