MSP430 Clock Module und TimerB

Gast #1608979
Hallo Zusammen,

Ich habe da gerade ein Problem, bei dem ich nicht weiterkomme:

Mein µC (MSP430F2617) wird mit einem externen Oszillator (8Mhz) am XIN 
betrieben. Das Clockmodul initialisiere ich folgendermaßen:
1
// wait till oscillator runs    
2
     BCSCTL1 |= XTS;
3
     BCSCTL3 |= LFXT1S1;
4
     _BIS_SR(OSCOFF);
5
     do{
6
       IFG1 &= ~OFIFG;
7
       for(counter = 0xff; counter > 0; counter --);
8
     }
9
     while((IFG1 & OFIFG) != 0);
10
     
11
  // Clock Source einstellen 
12
       BCSCTL1 |= XTS + XT2OFF;                                                // externen Oszillator nutzen (8MHz)  
13
       BCSCTL2 |= SELM0 + SELM1 + DIVM0 + DIVS0 + DIVS1 + SELS;                // MCLK (4MHz) + SMCLK (1 MHz)

Nun will ich meinen TimerB aus der SMCLK "versorgen" und testweise 
hochzählen lassen:
1
TBCTL |= TBSSEL1 + ID0 + ID1;           // clock source SMCLK (1MHz) 
2
                                        // divide SMCLK by 8 (125 kHz)
3

4
TBCTL |= MC1;                           // start with continous mode


Wenn ich mir im Debug das TBR Zählregister ansehe, tut sich jedoch nix. 
Sobald ich auf ACLK als Quelle umschalte oder den DCO anstatt des 
externen Oszillators an den SMCLK usw. hänge, wird im TBR hochgezählt. 
Nun hatte ich die Vermutung, dass der externe Oszillator nicht 
anschwingt. Aus diesem Grund habe ich das entsprechende Flag abgefragt 
(s.o.), aber es trat keine Besserung ein.
Auf dem Oszi kann ich den Ausgang des Oszillators sehen (8Mhz). Ist 
einer von Reichelt: XO91 mit 8MHz.

Entweder stehe ich aufm Schlauch oder irgendwo wurde ein Hund begraben. 
Danke schonmal für eure Hilfe.

Grüße
Seb
Gast #1609086
Hi Rufus,

Das mit dem Abwarten habe ich auch erst reingenommen, als mir nichts 
anderes mehr eingefallen ist ;)

Deine Fragen sollten sich aus den obrigen Registereinstellungen 
beantworten lassen:

MCLK wird aus dem LFXT1CLK mit einem Teiler 2 gespeist.

Der ACLK sollte seinen Takt auch von dort bekommen, wenn XTS gesetzt 
ist. Vollkommen sicher bin ich mir aber gerade nicht.
Gast #1609118
Leider hat sich bisher keine Besserung eingestellt. Der TimerB will mit 
dem SMCLK nicht hochzählen. So langsam bin ich mir nicht sicher, ob ich 
den Oszillator am XIN anschließen kann.
#1609124
Rufus t. Firefly schrieb:
> Du verwendest einen externen Oszillator, daher ist der Code zum Warten
> auf das Einschwingen des Oszillators unnötig.
Öhhh, kann es sein das diese Aussage nicht so ganz korrekt ist, oder 
übersehe ich was? Wenn der interte DCO benutzt wird muss normalerweise 
NICHT gewartet werden, bei externen Quarzen etc. MUSS gewartet werden.
Gast #1609131
Jau, dieses Thema gab es auch schon in anderen Threads. Ich nutze ja 
einen externen Oszillator und keinen Quarz. Deswegen muss ich ja 
eigentlich nicht warten bis der interne Oszi eingeschwungen ist. Es gibt 
jedoch Leute, die eine andere Meinung vertreten.

Mein externer Oszi zappelt ja fröhlich im Rechteck. Ich würde gerne 
wissen, warum mein MSP so rumzickt und keinen SMCLK draus erzeugen kann. 
Sonst würde mein Timer ja hochlaufen. Habe ich in den Registern 
irgendetwas übersehen?
Gast #1609232
Habe die obige Initialisierung nun auf einem anderen MSP mit Oszilllator 
am XIN getestet und da wird der TBR auch nicht hochgezählt. Es ist also 
wahrscheinlich, dass irgendeine Registereinstellung nicht stimmt.

Gibt es denn da draußen jemanden, der schon einmal einen Oszillator am 
XIN betrieben hat?
Gast #1609447
Ok, diesen Satz habe ich heute schon ein paar Mal durchgelesen, aber 
erst jetzt wird mir die Tragweite bewusst. Ich kann den SMCLK gar nicht 
aus dem XIN Eingang speisen, wenn mein MSP einen XT2 auf dem Chip hat. 
Es besteht keine Hardwareverbindung zwischen den Anschlüssen.

Dann werde ich mich wohl oder übel an den Lötkolben setzen und die Sache 
ändern. Danke für den Augenöffner.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.