Forum: Mikrocontroller und Digitale Elektronik UART Geschwindigkeitsproblem


von Martin (Gast)


Lesenswert?

Hallo zusammen,

ich benutze einen ez430 RF 2500 (aus der msp430 Familie).

Ich sende über die COM-Schnittstelle Daten mit 9600 Baud bei 8 MHz. 
Soweit funktioniert alles super.
Wenn ich jedoch die Baudrate erhöhen will, funktioniert gar nichts mehr 
oder es kommen nur unverständliche Zeichen in der COM-Schnittstelle an.

Im Datenblatt sind die Einstellungen für höhere Baudraten angegeben die 
jedoch nicht funktionieren. Mit 9600 funktionieren alle Takte (1, 8, 12, 
16 MHz) im Gegensatz zu allen anderen Baudraten.
Woran könnte das liegen?

Anbei meine Quellcode für die 9600 Baud COM-Einstellungen:


BCSCTL1 = CALBC1_8MHZ;                    // Set DCO
  DCOCTL = CALDCO_8MHZ;

  BCSCTL3 |= LFXT1S_2;                      // LFXT1 = VLO
  TACCTL0 = CCIE;                           // TACCR0 interrupt enabled
  TACCR0 = 12000;                           // ~1 second
  TACTL = TASSEL_1 + MC_1;                  // ACLK, upmode

  P3SEL |= 0x30;                            // P3.4,5 = USCI_A0 TXD/RXD
  UCA0CTL1 = UCSSEL_2;                      // SMCLK
  UCA0BR0 = 0x41;                           // 9600 from 8Mhz
  UCA0BR1 = 0x3;
  UCA0MCTL = UCBRS_2;
  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state 
machine**
  IE2 |= UCA0RXIE;                          // Enable USCI_A0 RX 
interrupt
  __enable_interrupt();


Laut Datenblatt muß man folgende Einstellungen ändern:

UCA0BR0 = 0x41;
UCA0BR1 = 0x3;
UCA0MCTL = UCBRS_2;

was jedoch bei keiner Baudrate funktioniert.

Hab ich was übersehen?
Kann mir jemand dabei helfen?

Ich bin dankbar für jede Hilfe...


martin

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.