Forum: Mikrocontroller und Digitale Elektronik MSP430F2274 Clock einstellen


von Ferdi (Gast)


Lesenswert?

Hallo Zusammen,

bin gerade etwas irritiert, habe schon Erfahrungen mit dem LaunchPad 
(MSPG2231) und nun arbeite ich mit dem MSP430-RF2500 Development Tool. 
Bei dem LaunchPad funktioniert die Einstellung des Clocks wie gewünscht 
aber bei dem F2274 bekomme ich einfach nur ein high-Signal am ACLK(P2.1) 
mit dem Oszi gemessen. Den SMCLK (P2.1)kann ich auf dem Oszi sehen.
Habe jetzt schon folgenden Code von TI verwendet:
1
#include "msp430x22x4.h"
2
3
void main(void)
4
{
5
  WDTCTL = WDTPW + WDTHOLD;                 // Stop Watchdog Timer
6
  BCSCTL1 = CALBC1_8MHZ;                    // Set DCO to 8MHz
7
  DCOCTL = CALDCO_8MHZ;
8
  P2DIR |= 0x07;                            // P2.0,1,2 output direction
9
  P2SEL |= 0x03;                            // P2.0 = ACLK, P2.1 = SMCLK
10
11
  while (1)
12
  {
13
    P2OUT |= 0x04;                          // P2.2 = 1
14
    P2OUT &= ~0x04;                         // P2.2 = 0
15
  }
16
}

Den Quarz habe ich an P2.6 und P2.7, was P13 und P14 auf dem Board 
entspricht, angelötet.
Verzweifle langsam aber sicher...
Vielen Danke schon mal

von Dennis (Gast)


Lesenswert?

Du stellst doch auch Garmischs für den ACLK ein!

von Ferdi (Gast)


Lesenswert?

Durch P2SEL = 0x03, wird aber doch der ACLK an P2.0 ausgegeben, oder?
So, war es auch beim LaunchPad.

Bei folgendem Beispiel habe ich dasselbige Problem. Ist auch ein 
TI-Beispiel.

Mit Tassel_1 erhalte ich ein Dauerlicht, unter Tassel_2 blinkt es.
Habe 2 Targetboards, am Quarz kann es also nicht liegen, muss irgendwo 
nen Brett vor dem Kopf haben.
1
#include "msp430x22x4.h"
2
3
void main(void)
4
{
5
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
6
  P1DIR |= 0x01;                            // P1.0 output
7
  TACTL = TASSEL_1 + MC_2 + TAIE;           // ACLK, contmode, interrupt
8
9
  __bis_SR_register(LPM3_bits + GIE);       // Enter LPM3 w/ interrupt
10
}
11
12
// Timer_A3 Interrupt Vector (TAIV) handler
13
#pragma vector=TIMERA1_VECTOR
14
__interrupt void Timer_A(void)
15
{
16
  switch (TAIV, 10)        // Efficient switch-implementation
17
  {
18
    case  2:  break;                        // TACCR1 not used
19
    case  4:  break;                        // TACCR2 not used
20
    case 10:  P1OUT ^= 0x01;                // overflow
21
              break;
22
  }
23
}

von Christian R. (supachris)


Lesenswert?

Welche Frequenz hat der Quarz? Wenn er mehr als 455kHz hat, musst du das 
XTS Bit in BCSCTL3 setzen. Und außerdem noch die passenden Bereich mit 
den LFXT1Sx Bits im BCSCTL3 Register sowie die Lastkapazität im gleichen 
Register. Steht doch alles im User Guide ausführlichst beschrieben.

von Stefan (Gast)


Lesenswert?

Ferdi schrieb:
> Den Quarz habe ich an P2.6 und P2.7, was P13 und P14 auf dem Board
> entspricht, angelötet.
Auf dem eZ430-RF2500 Target Board kann das nicht funktionieren weil die 
beiden Pins auch mit dem CC2500 Chip verbunden sind.

von Ferdi (Gast)


Lesenswert?

Ups, danke schön.
Man sollte sich doch erst die Pläne anschauen und nicht einfach drauf 
stürzen ;-).

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.