Forum: Mikrocontroller und Digitale Elektronik FLL und DCO - Frequenz


von Großes F. (112)


Lesenswert?

Hallo,

ich hätte mal eine Frage bzgl. der FLL bei dem CC430, genauer dem 
CC430F5137.

Die FLLREFCLK kann durch Einstellung des SELREF entweder aus dem XT1CLK 
oder dem REFOCLK ihre Referenz beziehen.

Da ich keinen Quarz anschließe, kann ich nur den REFOCLK als Referenz 
nutzen. Dieser schwingt mit mitlerer Genauigkeit im Bereich 32,768kHz.

Nun würde ich also gerne diese Referenz (REFOCLK) nutzen, um den DCO mit 
einer definierten Frequenz schwingen zu lassen, die allerdigns deutlich 
höher sein sollte, als die REFOCLK.

Nun verstehe ich eine Sache aus dem Datenblatt nicht.

Dort steht bei dem FLLD:

> FLL loop divider. These bits divide f(DCOCLK) in the
> FLL feedback loop. This results in an additional
> multiplier for the multiplier bits.

und weiterhin steht bei dem FLLN

> Multiplier bits. These bits set the multiplier value N
> of the DCO. N must be greater than 0.
> Writing zero to FLLN causes N to be set to 1.


Irgendwie laufen die beiden Aussagen doch konträr. Entweder möchte ich 
die REFO-Frequenz runterteilen, oder eben multiplizieren... Mir ist 
nicht ganz klar, warum im Erläuterungstext des FLLD steht, dass die 
DCOCLK heruntergeteilt würde...

...und dann ist mir auch noch nicht genau klar, ob ich nun ein 
DCO-Frequenzband auswählen muss und dann eine FLL-Referenz innerhalb 
dieses Bandes generieren muss, um den DCO innerhalb dieses Bandes zu 
stabilisieren, oder ob ich bei Verwendung der FLL den DCO schlicht und 
einfach immer mit derjenigen Frequenz schwingen lasse, welche eben durch 
die Referenz vorgegeben wird.

mfg

von Грясивый цомби (Gast)


Lesenswert?

Gibt's denn beim Hersteller kein Simulationstool ?

von B e r n d W. (smiley46)


Lesenswert?

> Irgendwie laufen die beiden Aussagen doch konträr. Entweder möchte
> ich die REFO-Frequenz runterteilen, oder eben multiplizieren

Stell Dir vor, Du hast einen Oszillator laufen mit ~1 MHz. Dann teilst 
Du die Frequenz /32 und vergleichst das Ergebnis mit der 32 kHz 
Referenz. Jezt werden die 1MHz so nachgeregelt, dass die runtergeteilte 
Frequenz mit dem 32kHz Oszillator übereinstimmt. Wenn Du /64 teilst, 
pendelt sich der geregelte Oszillator auf ~2MHz ein usw.

von Großes F. (112)


Lesenswert?

ok danke, das hilft schonmal. Vielleicht können wir das ja mal an einem 
Beispiel durchspielen:

Ich setze also z.B. mit den DCORSEL, MOD und DCO-Registern
die gewünschte Zielfrequenz des internen Oszillators.
Bei der Wahl von DCORSELx = 5, DCOx = 0 und MODx=0
ergibt sich eine Frequenzspanne zwischen 2.5MHz und 6.0MHz.

Gewünschte Zielfrequenz wäre möglichst nahe an 5MHz.

Nun gucke ich mir an, wie oft meine Referenzfrequenz in die 5MHz hinein 
passt. Bei 32,768KHz ergibt sich ein Faktor 152,50.

Dies entspricht dem Integer 152, den ich direkt in das FLNN-Register 
schreiben kann. Den zusätzlichen Prescaler des FLLD benötige ich also 
nicht.

Wenn ich es richtig verstanden habe, regelt die FLL den internen 
Oszillator nun soweit herunter, dass der Output auf stabil 152*32768Hz 
schwingt, was dann genau 4.980.736 Hz entspricht.

Habe ich das soweit schonmal richtig verstanden?

von Uwe (Gast)


Lesenswert?

Ließ dir mal ein paar Texte zum PLL durch. Stichwort Frequenzsynthese.
Der VCO wird heruntergeteilt und mit dem dem Referenztakt verglichen, 
dies sieht von der Funktion so aus als wenn der Referenz Takt 
multipliziert wird (zumindest als Blackbox).
http://de.wikipedia.org/wiki/Phasenregelschleife

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.