Forum: Mikrocontroller und Digitale Elektronik MSP430


von Christian S. (schiffi)


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.

von Christian R. (supachris)


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.

von Christian Schiffner (Gast)


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.

von Christian R. (supachris)


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.

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.