Gang(un)genauigkeit Quartz?

OP #1357720
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
Gast #1357750
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
OP #1357755
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
OP #1357759
@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
Gast #1357780
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
#1357818
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
#1358183
@  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

Antwort schreiben

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