UART Geschwindigkeitsproblem

Gast #845237
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

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