Forum: Mikrocontroller und Digitale Elektronik Fünfache Frequenz von 32769Hz genau einstellen MSP430


von vicki (Gast)


Lesenswert?

Hallo Leute,

ich versuche gerade eine Clock-Frequenz von 32.768Hz x5 einzustellen. 
Also das  Fünfache der 32768 Hz. Ich verwende den Msp430F5418, aber das 
dürfte eine allgemeine Frage sein.
Mit dem DCO klappt beim besten Willen nicht.
Ich habe den vorhandene FLL benutzt mit den folgende Einstellungen:
   UCSCTL1 = DCORSEL0;
   UCSCTL2 = FLLN2;  //  (4 + 1) * 32768 = 163840Hz
Was an dem MCLK (default für DCO) raus kommt ist alles aber nur nicht 
163840 Hz.
Habt Ihr irgendwelche Ideen wie man so was generell macht? Eventuell was 
ich falsch mache?
Dankeschön im Voraus

von Christian R. (supachris)


Lesenswert?

Hast du denn einen 32,768 kHz Quarz an XIN und XOUT angeschlossen? Hast 
du die Bits für SREF_x im Register UCSCTL3 entsprechend gesetzt? Und 
hast du anschließen die Takte auch auf den DCO-Takt geschaltet?

Schau mal in msp430x54x_UCS_2.c in den Code-Examples, da steht drin, 
welche Register du alles umstellen musst.

von vicki (Gast)


Lesenswert?

Ja ich habe einen einen 32768Hz Quarz angeschlossen, SREF auch 
eingestellt. Ich messe mit dem Oszi an dem MCLK Ausgang aber 278 Hz. 
Keine Ahnung wie sowas zu stande kommt!

von vicki (Gast)


Lesenswert?

Entschuldigung ich meinte 278kHz.

von Christian R. (supachris)


Lesenswert?

Poste mal den gesamten Quelltext, die beiden Zeilen sagen gar nix 
aus...wo hängt der Quarz? An XT1 oder an XT2?

von vicki (Gast)


Lesenswert?

P7SEL |= 0x03;                            // Select XT1
   UCSCTL6 &= ~(XT1OFF);                     // XT1 On
   UCSCTL6 |= XCAP_3;                        // Internal load cap
   UCSCTL4 |= SELA_0 + SELS_4 + SELM_4;
   UCSCTL1 = DCORSEL0;
//fdco wird durch den FLL stabilisiert
   UCSCTL2 = FLLN2;
   UCSCTL3 = SELREF0;


Hoffe das hilft.
Danke

von Christian R. (supachris)


Lesenswert?

1. Uhrenquarze benötigen keine extra Last-Kapazität, die Pin-Kapazität 
reicht aus.

2. Wieso verdrehst du die Reihenfolge der Inizialisierung?

3. Du schaltest auf den geteilten DCO-Takt anstatt auf den ungeteilten.

4. Sicher dass das Makro FLLN2 auch eine 4 ist?

von vicki (Gast)


Lesenswert?

Hi Christian,

Erst mal Danke für deine Vorschläge!

Ich habe die Lastkapazität weg, die Reihenfolge der Initialisierung 
geändert hat sich nichts getan.
Ich habe die FLNN bits auch wild geändert, einfach nur um zu sehen was 
passiert. Es tut sich nichts bei FLLN0 FLLN1 FLLN2 (zusammen oder 
getrennt), erst bei FLLN3 bekomme ich ungefähr 540khz. (?????)

von Christian R. (supachris)


Lesenswert?

Ich probiere das immer zuerst mit den Beispielcodes von TI. Wenn das 
läuft, kann man immer noch die Parameter ändern. Probier doch mal das 
Beispiel aus dem Zip-File, und schau, ob das klappt.

von vicki (Gast)


Lesenswert?

Danke. Ich werde alles noch mal überprüfen. Es muss doch klappen! ;-)

von vicki (Gast)


Lesenswert?

Es hat geklappt, aber die Frequenz schwankt sehr. Ich  habe die frequenz 
Verzehnfacht und ich messe am MCLK zwischen 326 kHz und 341kHz. Ich 
würde sie instabil nennen.
Grüsse, Vicki

von Christian R. (supachris)


Lesenswert?

Das ist seltsam, die FLL+ sollte das wesentlich stabiler halten, denn 
die hat ja eine echte Rückkopplung zum Quarz und regelt das selbst nach. 
Hab aber damit auch noch keine Erfahrungen, hab bisher nur mit dem DCO 
gearbeitet.

von Alex (Gast)


Lesenswert?

Hallo,

mal was allgemeines. Bevor du die Taktquelle/FLL Referenz umschalten 
kannst solltest du sicherstellen, dass das OFIFG (Oscillator Fault 
Interrupt Flag) gelöscht ist. Falls nein, musst du alle Fault Flags in 
UCSCTL7 löschen und das OFIFG löschen.
Erst nachdem das UCS Fehlerfrei ist kann man Änderungen im UCS machen.
Das ganze ist im Kapitel 3.2.12 Unified Clock System Module Fail-Safe 
Operation beschrieben.

mfg Alex

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.