Forum: Mikrocontroller und Digitale Elektronik RTC Vs Timer Zwei MCU Synchron halten.


von Praktikant (Gast)


Lesenswert?

Hi

Ich bitte um Hilfe

Ich habe zwei verschiedene MCU (Cortex-M3) LPC1768 oder genau gesagt 
zwei mbed Board. Jedes Board besitz einen DCF77 und einen RTC (Real Time 
Clock).

Die beide MCU sollen sich durch DCF77 synchrone laufen, um einige 
Aufgabe (beispielweise LED toggeln) auszuführen.

Doch die RTC Uhr ist ungenau, weil es nach 10 Stunden eine Unterschied 
von 5 sek. zwischen beiden Controller gibt.

Ziel war die beiden MCU nach 24 Stunden unter 100ms synchron zu halten.

Da habe ich an den Timer gedacht, weil er mit internen Clock. oder mit 
externen Qaurz vom MHZ bereich arbeitet.
Damit habe ich einen Timer eingesetz, der ebenso 1x/s Interrupt auslöst, 
um halt den LED toggelt.


Doch nach 12 Std. haben die beiden MCU mehr Sekunden Zeit Verschiedbung 
und sind damit unsynchron..

kann sein, dass die Timer auch durch Faktoren (wie Temp.) beinflusst 
werden  ??


ich bin am Zweifeln.. :-(


viel Dank im Vorraus

von Alex E. (tecnologic) Benutzerseite


Lesenswert?

Hi,

klingt viel zu kompliziert. Warum machst du es nicht so das ein Mbed den 
DCF77 und die RTC am laufen hat und über einen IO oder Bus einen 
Syncpuls an den 2. mBed sendet. Vorrausgesetzt die Kommunikation ist ok 
(was man durch n ACK noch prüfen kann) sind die immer synchron. Und dass 
auch wesendlich genauer als 100ms.


MfG

Tec

von Reinhard Kern (Gast)


Lesenswert?

Praktikant schrieb:
> kann sein, dass die Timer auch durch Faktoren (wie Temp.) beinflusst
> werden  ??

Natürlich, ausserdem stimmen sie von vornherein nicht überein. Man 
könnte die Quarze zwar abgleichen, aber das ist barer Unsinn, man muss 
ja bloss die Synchronisation oft genug durchführen, warum nicht jede 
Sekunde.

Gruss Reinhard

von Praktikant (Gast)


Lesenswert?

>Warum machst du es nicht so das ein Mbed den
>DCF77 und die RTC am laufen hat und über einen IO oder Bus einen
>Syncpuls an den 2.

Das habe ich schon gemacht. es hat funkz. :-)
Also wenn die beiden MBED permanent mit DCF77 versorgt bleiben, und die 
RTC jedes MCU permanent mit dem DCF77 Signal synchroniziert bleibt. Dann 
klappt es.

Doch die Herrausforderung sind:

1-Wie wäre es wenn keine DCF77 Signal vorhaden ist ! oder mind. 1 mal am 
Tag zu empfangen ist.

2- Die beiden mbed sind unabhängig von einander. D.h es gibt keine 
Verbindung zwischen die MCU.

von Jim M. (turboj)


Lesenswert?

Praktikant schrieb:
> Ziel war die beiden MCU nach 24 Stunden unter 100ms synchron zu halten.

Das ist nur wenig mehr als 1 PPM. So genau sind normale Quarze nicht, da 
bräuchte man spezielle Oszillatoren. Ein guter RTC Quarz darf eine 
Abweichung von einigen Sekunden pro Tag haben, die schnelleren Quarze 
sind meistens noch eine Größenordnung ungenauer.

Um die geforderte Überinstimmung im Tak zu erzielen, müsste man die 
Boards irgendwie verbinden. Dann könnte man z.B. den RTC - Takt eines 
Boards auf das andere übertragen (CLKOUT).

von Praktikant (Gast)


Lesenswert?

@Kern


>man muss ja bloss die Synchronisation oft genug durchführen, warum nicht >jede 
Sekunde.

Sieh oben wie ich oben unter "Herrausforderungen "geschildet habe..

Was mir gerade eingefallen ist. Da ich den RTOS Cortex-M3 "CMSIS" vom 
ARM benutze habe. habe ich die RTOSTimer als Thread verwendet.


Durch Blättern in die Dokumentation habe ich festgesetllt, dass der RTOS 
den SysTick als Timer verwendet... und nicht die Timer (0...3), die als 
Peripherie vom Chip zur Verfügung stehen.

da mache ich mir jetzt Kopf, ob da einen Unterschied zwischen den Timer 
und den SysTick Timer gibt !!!!

von Eumel (Gast)


Lesenswert?

Praktikant schrieb:
> da mache ich mir jetzt Kopf, ob da einen Unterschied zwischen den Timer
> und den SysTick Timer gibt !!!!

In der Genauigkeit nicht. Die hängt von deiner Taktquelle ab.

von Reinhard Kern (Gast)


Lesenswert?

Praktikant schrieb:
> Sieh oben wie ich oben unter "Herrausforderungen "geschildet habe..

Wenn weder DCF77 noch eine Verbindung vorhanden ist, brauchst du 
synchron laufende Uhren. Wenn die vorhandenen nicht gut genug dafür 
sind, musst du welche vorsehen, die so genau sind wie du es eben 
brauchst. Das gibt es alles, notfalls ein Rubidium-Frequenznormal.

Praktikant schrieb:
> Ziel war die beiden MCU nach 24 Stunden unter 100ms synchron zu halten.

Das ist etwa eine halbe Minute pro Jahr und auch für eine abgeglichene 
Quarzuhr ambitioniert. Das wirst du mit einer eingebauten RTC nicht 
hinkriegen. Was du probieren kannst, wenn du das auf den Boards 
realisieren kannst: statt des Quarzes einen externen Takt aus einem TXCO 
verwenden, da kommst du je nach Typ auf 1 ppm, das wird dir reichen.

Gruss Reinhard

von Peter D. (peda)


Lesenswert?

Praktikant schrieb:
> Doch die RTC Uhr ist ungenau, weil es nach 10 Stunden eine Unterschied
> von 5 sek. zwischen beiden Controller gibt.

Ds ist heftig.
Sicher, daß die RTC mit einem Quarz getaktet wird?

Auch ohne Abgleich sollten 2 baugleiche Boards mit der gleichen Software 
nicht so stark abweichen.

Manchmal kann auch ein Softwarebug die Ursache sein.
Ich hatte mal ein Notebook, was manchmal 24:60 Uhr ausgegeben hat.

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.