www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430


Autor: Christian Schiffner (schiffi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute

bräuchte mal dringend Hilfe wie man beim MSP430F449 den XT2 Oszillator
initialisiert.Mit dem Sourcecoude von TI funktioniert es nicht.Da läuft
nur SMCLK auf die 8MHz aber MCLK (CPU-TAKT) auf 1MHz des DCO-Oszillator
(default-mäßig).Benötige diesen Takt aber,da beim DCO viel zu grosse 
Regelschwingung auftreten.Auch mit selber gebastelten Code funktionierts 
nicht.Denke bald an ein Entwicklungsfehler in der Hardware.Aber 
vielleicht
kennt ja jemand die Lösung.

Danke im voraus.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du den Takt auch wirklich aktiviert?
So klappt es bei mir zumindest:

BCSCTL1 &= ~XT2OFF;                       // XT2= HF XTAL

do
{
  IFG1 &= ~OFIFG;                           // Clear OSCFault flag
  for (i = 0xFF; i > 0; i--);               // Time for flag to set
}
while ((IFG1 & OFIFG));                   // OSCFault flag still set?

BCSCTL2 |= SELM_2;                        // MCLK= XT2 (safe)

Die letzte Zeile aktiviert den XT2 Clock für den MCLK.

Die Schwankungen des DCO kommen vom eingebauten RC-Oszillator, das Teil 
ist grottenschlecht. Ich verwende immer einen 32,758kHz Quarz an XT1 und 
lasse den DCO mit der Referenz laufen. Absolut sauberer Takt mit fast 
Null Jitter.
Und kann man bei Bedarf locker zwischendurch mal hoch und runter 
stellen.

Autor: Christian Schiffner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Hilfe,aber du verwendest scheinbar eine ältere Version.
Ich verwende den MSP430F449.BCSCTL1 ist bei mir FLLCTL1.Hab den Fehler 
aber gefunden.

FLL_CTL1 = (SELS + SELM1) & (~XT2OFF);
  do
  {
    IFG1 &= ~OFIFG; // Clear OSCFault flag
    for (i = 0xFF; i > 0; i--); // Time for flag to set
  }while ((IFG1 & OFIFG) != 0); // OSCFault flag still set?

  P1DIR=0x2;
  P1SEL=0x2;
  while(1);

Das OFIFG Flag muss softwaremäßig resetet werden nach den 
Umschaltung.War mir nicht klar.EIgentlich ein wenig unlogisch,oder?
Besten Dank.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, das is bissl tricky. Das Register is scheinbar das gleiche. Hab wie 
gesagt lange nix mehr damit gemacht. Ich benutze immer den DCO. Da kann 
man sich so schöne Frequenzen einstellen, die gut zu irgendwelchenm 
Teilerfaktoren passen. Außerdem dauert der Quarzoszi ewig zum 
anschwingen, nach dem LMP3, da vergehen schon mal 500ms bis der 
ordentlich läuft. Der DCO ist in 6µs wieder da. Und braucht viel weniger 
Strom.

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.