mikrocontroller.net

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


Autor: vicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: vicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: vicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigung ich meinte 278kHz.

Autor: Christian R. (supachris)
Datum:

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

Autor: vicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: vicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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. (?????)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: vicki (Gast)
Datum:

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

Autor: vicki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.