Forum: Mikrocontroller und Digitale Elektronik Gang(un)genauigkeit Quartz?


von Martin M. (mmc8801)


Lesenswert?

Hallo,

es geht nochmal um meine Skizeitnahme.

Hab ja schon vor ein paar Wochen mal angefragt wegen der 
Funkübertragung; die XBee-Module sind mittlerweile da und schauen recht 
vielversprechend aus.

Jetzt geht es darum, die beiden Uhren am Start und Ziel miteinander zu 
synchronisieren.

Dazu habe ich 2 ATmega88 genommen, auf denen jeweils dieser Code
1
#include <avr/io.h>
2
3
int main(void)
4
{
5
  DDRC = 0xFF;
6
7
  long i;
8
9
  while(1)
10
  {
11
    PORTC = 0xFF;
12
    for (i=0;i<50;i++) asm("NOP");
13
    PORTC = 0x00;
14
    for (i=0;i<950UL;i++) asm("NOP");
15
  }
16
}

läuft.

Die µC laufen mit Ext. Crystal Oscillator, 11.0592 MHz.

Am Port C (PC5) hängt jeweils ein Oszi-Tastkopf, Trigger ist auf CH1.

Ich wollte dann eigentlich nach einiger Zeit am Oszi die 
Gangungenauigkeit ablesen, aber irgendwie läuft das ganz schnell 
auseinander, siehe dieses Video:

http://www.myvideo.de/watch/6765009/Quartz_Ganggenauigkeit_Versuch

Ich hätte irgendwie erwartet dass die beiden Impulse sehr langsam 
auseinander "driften"...

Hab ich irgendwo einen Denkfehler oder ist so ein Quartz wirklich so 
ungenau?

Wenn ja was hätte ich für Möglichkeiten 2 Uhren zu einem Zeitpunkt x zu 
synchronisieren, so dass nach x+2h der Gangunterschied <10ms bleibt?

Danke,
Martin

von avr (Gast)


Lesenswert?

Hallo Martin,

das mit dem Weglaufen ist völlig OK.

Der Quarz ist Bestandteil eines Schwingkreises.
Wenn er genauer sein soll muß man ihn Abgleichen.
Bei Quarz an µC wird ein Trimmkondensator verwendet
und die Frequenz darf durch die Messung nicht beeinflußt
werden (nicht einfach mit Tastkopf an den Quarz!).

Aber du hast doch Funkverbindung. Dann kann ein Atmel (master)
dem anderen (Slave) sagen :"Beim nächsten "A" ist es 12:32:00"

Der Slave korrigiert dann seine Uhr nach. Läßt sich ja periodisch
wiederholen und wenn eine Übertragung ausfällt macht es auch
nichts.

avr

von Martin M. (mmc8801)


Lesenswert?

Hallo avr,

danke für deine Antwort.

Das mit dem Trimmkondensator hört sich gut an.

Wie stabil ist das Ganze dann d.h. wie oft muss ich "nachkalibrieren"? 
Oder ist das eine einmalige Sache?

Wegen der Funkverbindung - das Ganze läuft über XBEE Module; ich denke 
nicht dass die echtzeitfähig sind; die haben ja zig Layer dazwischen bis 
sie irgendwann mal schicken; die prüfen ob das Band frei ist usw...also 
zum Synchronisieren glaub ich ist das nicht gut...

Würde es was helfen, einen Quartzofen zu benutzen?

Danke,
Martin

von Holli (Gast)


Lesenswert?

Moin,

in Deutscheland Quarz und nicht Quartz. Zu Deinem Problem. Schon mal mit 
der Triggerung des 2. Kanals gespielt?


Holli

von Martin M. (mmc8801)


Lesenswert?

@Holli, OK dann Quarz.

Was meinst du mit der Triggerung des CH2?

Wenn ich auf CH2 triggere schaut das Oszibild genauso aus, nur dass dann 
CH1 durchläuft...

Wenn beide Controller synchron laufen würden, müsste das Bild doch 
stabil sein oder?

Martin

von avr (Gast)


Lesenswert?

Das mit dem Trimmkondensator ist nur so gut wie
die Messgeräte die verwendet werden. Da bei dir
jedoch wohl sehr unterschiedliche Temperaturen
herschen dürfte DCF besser sein.
Dann laufen die Atmel auch syncron.

Evtl. mit diesem einfachen Modul (im Forum oft eingesetzt):
http://www.pollin.de/shop/shop.php

avr

von avr (Gast)


Lesenswert?

fehlt noch: Best.Nr. 810 054  DCF-Modul

von Martin M. (mmc8801)


Lesenswert?

Du meinst die Bestell-Nr 810 054 von Pollin?

Krieg ich da auch eine absolute Genauigkeit zwischen den beiden 
DCF-Empfängern von <10ms hin?

Wenn ja wäre das die optimale Lösung...

Martin

von Marko B. (glagnar)


Lesenswert?


von avr (Gast)


Lesenswert?

Entscheidend ist die Absenkung der DCF Frequenz (77,5 kHz).
Der Empfänger macht daraus eine Flanke die du auswertest.
Die Flanken sollten bei 2 identischen Modulen fast syncron
sein (Streuung über Empfangsstärke möglich/wahrscheinlich).

avr

von Sven L. (svenl)


Lesenswert?

Wenn man auf die DCF-Flanken triggert, kann man Kurzzeitgenauigkeiten im 
Fehlerbereich 1*10^-6 erreichen.

Mein Frequenznormal besitzt einen OCXO (Quarzofen), der auf eine 
bestimmte Temperatur geregelt ist. Der Quarz im Inneren ist so 
geschliffen, dass sein Umkehrpunkt genau auf die Regeltemperatur fällt 
und die Drift nahezu vollständig kompensiert wird.

Koppelst Du die Phase eines solchen OCXO an einen DCF-Empfänger, kann 
man die Fehlerquote auf 1*10^-9 bis 1*10^-10 im Tagesmittel verringern.

Für Deinen Fall wären zwei DCF-Empfänger das Sinnvollste, damit die 
Uhren synchron laufen.

Jedoch müssen dann beide Geräte bei einer maximalen Uhrendifferenz von 
10 ms nicht weiter als rund 3000 km voneinander entfernt sein... Das ist 
doch machbar, oder? ;)

Gruß!

Sven

von Falk B. (falk)


Lesenswert?

@  Martin M. (mmc8801)

>Die µC laufen mit Ext. Crystal Oscillator, 11.0592 MHz.

>Am Port C (PC5) hängt jeweils ein Oszi-Tastkopf, Trigger ist auf CH1.

>Ich hätte irgendwie erwartet dass die beiden Impulse sehr langsam
>auseinander "driften"...

Naja, ein Quarz hat ohne Trimmer so um die +/-100ppm Frequenzfehler. 
D.h. nach 1/100ppm = 10000s ist dein 1. Quarz um 1s weggelaufen. Bei 
grösseren Frequenzen ist eine volle Periode schon schneller erreicht. 
Bei 1kHz schon nach 10s.

>Wenn ja was hätte ich für Möglichkeiten 2 Uhren zu einem Zeitpunkt x zu
>synchronisieren, so dass nach x+2h der Gangunterschied <10ms bleibt?

Das sind 1,4ppm. Schon recht sportlich. Dazu muss man auf jeden Fall den 
Quarz per Timmer abgleichen, wobei man aber NICHT direkt am Quarz messen 
darf. Man muss auf einem anderen Pin den Takt aus dem AVR führen, CLKOUT 
haben ja einige. Wenn nicht, muss man per OCP einen Takt erzeugen.

Wahrscheinlich ist DCF77 eine sinnvolle Lösung. Allerdings braucht man 
auch dort einen genauen lokalen Oszillator. Siehe [[  AVR - Die genaue 
Sekunde / RTC]]

MfG
Falk

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.