MSP430F147 Clock

Gast #701516
Lesenswert?

Hallo

Ich arbeite mit einem MSP430F147 mit externem 4MHz Quarz an XIN & XOUT. 
Den ACLK habe ich auf Pin20 (P2.0) ausgegeben und messe meine 4MHz 
(Divider = 1).
Dasselbe habe ich für den MCLK gemacht, messe an Pin48 (P5.4) aber nur 
etwas über 100kHz, obwohl meiner Meinung nach die Initilisierung korrekt 
ist:

*** Code ***

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

  BCSCTL1 =  XT2OFF                     // Oscillator XT2 off, only XT1 
used
           + XTS                        // XT1 in high frequency mode 
(Quarz =        4MHz)
           + DIVA_0;                    // Divider ACLK = 1 (ACLK = XT1)
//  IE1 = OFIE;                           // enable osc. fault interrupt
  BCSCTL2 =  SELM_3                     // MCLK source = XT1
           + DIVM_0;                     // Divider MCLK = 1

***********

Kann mir da jemand weiterhelfen?

Gruess Peter
Gast #702037
Lesenswert?

Ich hoffe sehr, dass ich mit meiner Vermutung falsch liege...
... aber mir kommt es so vor, als ob hier ein Code-Bsp von TI 
hergenommen wird, ein paar Änderungen eingebaut werden und die 
Forums-Gemeinde dann auf Fehlersuch geschickt wird...

Wie gesagt, in der Annahme, dass meine Vermutung falsch ist, hier ein 
paar Anmerkungen zu dem Problem:

1.) Du solltest mal debuggen, ob die do-while-Schleife überhaupt 
verlassen wird. Den Konstrukt "--i" habe ich so noch nie verwendet und 
weiß deshalb auch nicht, ob das funktioniert. Eigentlich nimmt man "i--"

2.) Die Prüfung des OSCFault-Flags ist eigentlich anders gedacht (s. 
auch die Beispiele von TI)
Zunächst aktiviert man nämlich XT1 (oder XT2) und wartet DANN bis 
OSCFault nicht mehr gesetzt ist. So ist sichergestellt, dass der Quarz 
oder Oszillator eingeschwungen ist. Erst dann wechselt man MCLK von DCO 
auf XT1 (XT2).

Vielleicht löst das ja Dein Problem?!
Gast #702540
Lesenswert?

Hallo Stefan!

Muss dich leider enttäuschen mit deiner Vermutung, ich schicke hier 
nicht aus purer Langeweile die Forum-Gemeinde auf die Fehlersuche. Zudem 
denke ich dass jeder der sich in einem Forum aufhält dies freiwillig 
tut...aber egal

Vielen Dank für deine Anmerkungen. Meine Applikation läuft nun :-) Das 
Problem war wirklich, dass ich die Initialisierung nach der Prüfung des 
OSC Fault Flags gemacht habe, was natürlich Käse ist.

Vielen Dank!

Gruss Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren