Forum: Mikrocontroller und Digitale Elektronik RTC DS3232M+ Synchronization


von Achim R. (Gast)


Lesenswert?

Hallo,

ich habe diverse Platinen, die alle eine DS3232M+
https://datasheets.maximintegrated.com/en/ds/DS3232M.pdf
enthalten.
Jetzt frag ich mich, wie ich am einfachsten die Synchronisation zwischen 
den
einzelnen RTCs durchführen kann....
mit so einer Art pps wie bei GPS?

über ein INTERRUPT der "Master-RTC" und dann als RST bei den anderen 
DS3232M+
verwenden?


VG

von Harry L. (mysth)


Lesenswert?

Achim R. schrieb:
> Jetzt frag ich mich, wie ich am einfachsten die Synchronisation zwischen
> den
> einzelnen RTCs durchführen kann....

Indem der Master regelmässig und/oder auf Nachfrage dem/den Slave(s) 
seine Vorstellung von der aktuellen Uhrzeit mitteilt...

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Achim R. schrieb:
> Jetzt frag ich mich, wie ich am einfachsten die Synchronisation zwischen
> den
> einzelnen RTCs durchführen kann....

 Wir synchronisieren bei einer Werkstattuhr RTC mit GPS Zeit,
 aber nur wenn die Differenz zwischen beiden größer als 20s ist.

 Ich glaube, bei weniger als 5s Differenz solltest du auch nicht
 synchronisieren. Dazu musst du aber eine Masterzeit haben,
 entweder von GPS oder aus dem Internet.

 Und ein paar Fragen in diesem Zusammenhang:
 Wie werden RTCs ausgelesen?
 Wie sieht es mit RTC Adressen aus?
 Wie werden jetzt RTCs gestellt?

von Achim R. (Gast)


Lesenswert?

Hallo,

zunächst einmal vielen Dank für die Antworten.

Die RTCs werden über I2C ausgelesen.
Die Adressierung ist daher egal (alle haben dieselbe Adresse... hängen 
aber ja jeweils an nem eigenen µC.)
Die RTC werden von daher über ein Kommando, das der jeweilige µC über 
einen half-duplex RS485-Bus von einem Master (mini computer à la Rpi)...

ich dachte daran selbst eine Art "pps" zu generieren, um die
RTC im Bereich um 1ms zu synchronisieren. Ist das realistisch?

VG

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Achim R. schrieb:
> ich dachte daran selbst eine Art "pps" zu generieren, um die
> RTC im Bereich um 1ms zu synchronisieren. Ist das realistisch?

 Nein.
 Und warum solltest du das überhaupt machen?
 RTCs haben eine Auflösung von 1s, synchronisieren (oder versuchen)
 zu synchronisieren auf weniger als das ist Blödsinn.
 PPS als Impuls ist genauso Blödsinn, PPS als Block mit Masterzeit
 etwa alle 5 Minuten kann ev. Sinn haben.
 Du hast RTC mit +/- 5ppm, d.h. ungefähr alle 200 Sekunden kann
 die RTC +/- 1ms Fehler haben.
 Aber:
 Wenn du die Masterzeit über Internet kriegst, kannst du die ganze
 Geschichte mit Synchronisation vergessen, so etwas geht nur mit GPS.

 Hast du GPS ?
 Warum willst du RTCs auf +/- 1ms synchronisieren ?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Achim R. schrieb:
> Die RTC werden von daher über ein Kommando, das der jeweilige µC über
> einen half-duplex RS485-Bus von einem Master (mini computer à la Rpi)...

 Besser wäre es, zuerst die Zeit abzufragen und bei ev. Differenzen
 diese in eine Liste beim Master zu schreiben.
 So kann man schon nach relativ kurzer Zeit ausrechnen ob und
 wieviel der Fehler beim RTCs beträgt.

 Allein schon deswegen sollte man nicht alle paar Sekunden die
 Zeit nachstellen, ohne zu wissen ob das überhaupt notwendig ist.

 Und für eine Synchronisation in ms Bereich nimmt man sowieso nicht
 DS3232 oder RTC überhaupt.

von Achim R. (Gast)


Lesenswert?

Marc V. schrieb:
> Und für eine Synchronisation in ms Bereich nimmt man sowieso nicht
>  DS3232 oder RTC überhaupt.

Was denn stattdessen z.B.?

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Achim R. schrieb:
> Marc V. schrieb:
>> Und für eine Synchronisation in ms Bereich nimmt man sowieso nicht
>>  DS3232 oder RTC überhaupt.
>
> Was denn stattdessen z.B.?

 Wie und warum willst du RTCs auf ms genau synchronisieren, wenn
 diese gar nicht dafür vorgesehen sind?

 Ist dir klar, dass du bei einer Abfrage zwischen xx.000 Sekunden
 und xx.999 Sekunden von RTC immer die selbe Zeit kriegst?

 Da kannst du nicht auf ms, sondern auf us synchronisieren, nutzt
 dir überhaupt nicht.

 Beantworte erstmal die Frage, wozu Synchronisation auf 1ms genau?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Marc V. schrieb:
> Da kannst du nicht auf ms, sondern auf us synchronisieren, nutzt
>  dir überhaupt nicht.

Dann erzähl mal, wie du bei einer Taktfrequenz von 32,768kHz auf eine 
Mikrosekunde genau synchronisieren willst, ohne in den (internen) 
Oszillator eingreifen zu können.

Und natürlich kann es - je nach Anwendung - etwas nützen, wenn ein 
Alarm-Interrupt genau kommt.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Wolfgang schrieb:
> Marc V. schrieb:
>> Da kannst du nicht auf ms, sondern auf us synchronisieren, nutzt
>>  dir überhaupt nicht.
>
> Dann erzähl mal, wie du bei einer Taktfrequenz von 32,768kHz auf eine
> Mikrosekunde genau synchronisieren willst, ohne in den (internen)
> Oszillator eingreifen zu können.

 Tja, wer nicht versteht wovon die Rede ist, sollte sich auch nicht
 einmischen...
 Und wer lesen kann, ist klar im Vorteil:
Marc V. schrieb:
> Wie und warum willst du RTCs auf ms genau synchronisieren, wenn
>  diese gar nicht dafür vorgesehen sind?

von Purzel (Gast)


Lesenswert?

In welcher Zeitskala darf eine auf ms synchronisierte "RTC" denn 
weglaufen ?


in einem Tag um eine ms falsch bedeutet eine stabilitaet von 1: 
86'400'000, oder ca 10ppb. Das ist dann schon eher aufwendig, ist 
eigentlich nur mit einem OCXO zu schaffen. Die sind nicht mehr wirklich 
"energiespar" und guenstig sind sie auch nicht mehr.

von Achim R. (Gast)


Lesenswert?

Marc V. schrieb:
> Beantworte erstmal die Frage, wozu Synchronisation auf 1ms genau?

Um von verschiedenen Geräten Meßdaten zu erhalten, deren Zeitstempel 
möglichst
zueinander passen, also wenn.... Gerät 1 einen Wert zum Zeitpunkt A,
und Gerät 2 auch einen Wert zum Zeitpunkt A erfasst...

da die RTCs aber nach einiger Zeit unterschiedlich "driften" gibt
es dann irgendwann keinen zumindest annähernd für beide Geräte 
identischen Zeitpunkt A, sondern eher
Zeitpunkt A' und Zeitpunkt A'' oder so ähnlich...
Daher sollte von Zeit zu Zeit.... vielleicht nur stündlich oder 
täglich..
eine Synchronisation erfolgen

VG

von Purzel H. (hacky)


Lesenswert?

Immer muss man den Postern die Wuermer rausziehen ...

Und die Abweichungen waehrend eine Tages duerfen hoechstens wie gross 
sein ? Eine Milisekunde, eine Sekunde ?
Die Synchronissation als Funksignal dauernd laufen zu haben geht nicht ? 
zB als dauernder GPS Empfang ?

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Achim R. schrieb:
> Daher sollte von Zeit zu Zeit.... vielleicht nur stündlich oder
> täglich..
> eine Synchronisation erfolgen

 Masterzeit mit Adresse 0x00 über RS485 senden.
 Sende- bzw. Empfangsdauer und Bearbeitungszeit einkalkulieren, neue
 Zeit einschreiben.
 Das war es dann.

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.