Hallo,
lässt sich die Frequenzabweichung (Stabilität und Drift) der internen
Clocks (z.B. auch interne PLL) oder auch nach außen geführte Clocks
(I2C, SPI, PWM etc.) immer auf den angeschlossenen Quartz zurückführen?
Also wenn z.B. die PLL Ausgangsfrequenz oder der I2C Clock mit 30ppm
driftet, das nur von dem Quartz kommt? Oder gibt es noch andere
Mikrocontroller abhängige Faktoren?
Vielen Dank im Voraus.
Bene
Bene schrieb:> lässt sich die Frequenzabweichung (Stabilität und Drift) der internen> Clocks (z.B. auch interne PLL) oder auch nach außen geführte Clocks> (I2C, SPI, PWM etc.) immer auf den angeschlossenen Quartz zurückführen?
Nö. Natürlich nur dann, wenn überhaupt einer angeschlossen ist und der
dann auch tatsächlich als Taktquelle verwendet wird.
Bene schrieb:> Oder gibt es noch andere Mikrocontroller abhängige Faktoren?
Ein PLL hat mit der Frequenz oder deren Drift nun wirklich nichts zu
tun. Die tut genau das, was ihr der reingefütterte Takt vorschreibt.
> Oder gibt es noch andere Mikrocontroller abhängige Faktoren?
Dazu guckst du am besten mal ins Blockschaltbild des Mikrocontrollers.
Alles hinter dem Ausgang des Oszillators hat keinen direkten Einfluss,
es sei denn, du meinst Einflüsse wie Temperatur o.ä.
Bei einem TCXO als Taktgebner lässt sich zur Temperaturkompensation
allerdings der Oszillator verstellen, so dass durch die Veränderung der
Schwingbedingung einer Temperaturdrift entgegen gewirkt werden kann.
Bene schrieb:> lässt sich die Frequenzabweichung (Stabilität und Drift) der internen> Clocks (z.B. auch interne PLL) oder auch nach außen geführte Clocks> (I2C, SPI, PWM etc.) immer auf den angeschlossenen Quartz zurückführen?
Ja. Wenn Du Taktsignale durch Multiplikation und Division aus einem
Mastertakt erzeugst und die Faktoren konstant bleiben, dann können
Schwankungen im Ausgangssignal nur vom Eingangssignal kommen.
In der Theorie gäbe es da noch andere Möglichkeiten: Die Geschwindigkeit
von digitalen Schaltungen wird auch von der Temperatur und der
Versorgungsspannung beeinflusst. Das könnte dazu führen, dass die
Phasenlage von Ausgangstakten relativ zum Mastertakt schwankt, aber die
Frequenz an sich sollte sich nicht ändern.
Zeitgeber für den Mastertakt kann nicht nur ein Quarz sein, sondern auch
ein MEMS-Oszillator, ein keramischer Resonator oder ein RC-Glied. Die
letzten beiden sind im Gegensatz zu Quarz und MEMS deutlich
temperaturabhängiger.
Hast Du ein konkretes Problem?
fchk
Die Frequenzabweichung (Stabilität und Drift) kommt immer
von der jeweils WIRKSAMEN Taktfrequenz.
Nutzt man den internen RC-Oszillator, ist sein Verhalten
(Grenzen siehe Datenblatt des µC) maßgeblich.
Nutzt man einen externen Oszillator an CLKI, ist dessen Verhalten
maßgeblich. (Grenzen siehe Datenblatt des Oszillators)
Nutzt man einen externen Quarz an XTAL1 / XTAL2 ist das
Gesamtbild aus Quarz und Oszillatorschaltung des µC maßgeblich.
Erfahrungsgemäß lassen sich wenige 10 ppm Drift über einen
Temperaturbereich von z.B. 10...40° C erreichen.
Die NUTZUNG einer Taktquelle erfordert natürlich das
entsprechende Programmieren der zugehörigen Fuse-Bits.
Ausgenommen davon sind bei AVRs z.B. Zeiten beim EEPROM-
Zugriff, oder Watchdog-Timings, die immer aus einem internen
RC-Oszillator gebildet werden.
c-hater schrieb:> Bene schrieb:>> lässt sich die Frequenzabweichung (Stabilität und Drift) der internen> Clocks (z.B. auch interne PLL) oder auch nach außen geführte Clocks> (I2C, SPI, PWM etc.) immer auf den angeschlossenen Quartz zurückführen?>> Nö. Natürlich nur dann, wenn überhaupt einer angeschlossen ist und der> dann auch tatsächlich als Taktquelle verwendet wird.
Ganz so ahnungslos bin ich dann nun auch wieder nicht.
Eure Antworten haben mir aber schon weitergeholfen.
Frank K. schrieb:>> Hast Du ein konkretes Problem?>
Zwei größere MEMS Mikrofon Arrays sind geplant, die durch zwei uCs
ausgelesen werden. Beide Mikrocontroller sollen zunächst einmal nicht
synchronisiert werden. Zumindest soll jeder seinen eigenen Takt erzeugen
und den der Mikrofone. Beide sollen jedoch durch ein Triggersignal ca 20
Sekunden Daten erfassen. Ich möchte zuerst einmal den möglichen Fehler
bzgl. Abweichung der Abtastfrequenz ermitteln, hinsichtlich
Frequenzstabilität und Drift.
Hallo,
die größtmögliche Abweichung beträgt exakt eine Periodendauer. Diese
hängt vom I/O Porttakt ab. Bsp. normaler ATmega durchgehend getakteten
mit 20MHz wären das 50ns.
Wenn du beide µC mit gemeinsamen Reset versiehst, laufen sie
zumindestens zur gleichen Zeit los, was den möglichen Taktdrift über die
Messzeit verringert. Mehrfach gemessen und für konstant befunden kannste
den Fehler vielleicht sogar am Ende rausrechnen.
Die Quarze sind doch spezifiziert. Ein normaler Billig Quarz fuer 20
cents macht etwa 100ppm/K. Ein Uhrenquarz ist etwas besser und macht
10ppm/K.
Wenn etwas synchron sein soll, sollte man dieselbe Quelle verwenden.
Alternativ kann man auch den internen RC verwenden und mehrere solcher
Systeme auf eine gemeinsame Quelle synchronisieren.
Bei einer Vervielfachung des Taktes mittel PLL sollte man bedenken, dass
die Taktflanken jittern, was durchaus einige Funktionen beeinträchtigen
kann (z.B. Signalerzeugung und Zeitmessung mittels Timer). Wobei auch
Quarzoszillatoren nicht ganz jitterfrei sind.
https://de.wikipedia.org/wiki/Jitter
Ja, das Phasenrauschen, welches einen direkten Bezug zum Jitter hat,
nimmt bei einer Verzehnfachung der Frequenz um 10dB zu. Aendert die
frequenz aber nicht.