MSP430 Problem mit Baudrate

Gast #4508075
Lesenswert?

Hallo zusammen,

ich habe hier ein Evaluation Board von InvenSense(MPU-9250CA-SDK). Mit 
diesem möchte ich Beschleunigungen messen und per Bluetooth am PC 
auslesen. Verbaut ist ein MSP430F5528.
Ich habe ein Problem mit der Baudrate. Standardmäßig ist diese auf 
115200 Baud eingestellt. Diese möchte ich gerne verdoppeln. Dazu wähle 
ich folgende Einstellungen beim initialisieren des UARTS (bei 20 MHz).
1
int msp430_uart_init(void)
2
{
3
    /* Set P3.3 (TX) and P3.4 (RX) to UART mode. */
4
    P3DIR &= ~(1<<4);
5
    P3DIR |= (1<<3);
6
    P3SEL |= 0x18;
7

8
    /* Enable reset. */
9
    UCA0CTL1 |= UCSWRST;
10

11
    /* Use SMCLK clock  */
12
    UCA0CTL1 |= UCSSEL_2;
13

14
    /* Set baud rate to 230400 @ 20 Mhz
15
    UCA0BR0 = 0x05;
16
    UCA0BR1 = 0x00;
17
    UCA0MCTL |= (UCBRF_7 | UCBRS_0 | UCOS16);*/
18

19
    /* Clear reset bit. */
20
    UCA0CTL1 &= ~UCSWRST;
21

22
    return 0;
23
}


Leider empfange ich mit diesen Einstellungen nur „FF“ Werte am PC. 
Komischerweise betrifft dies alle Baudraten, auch langsamere. Es klappt 
nur mit 115200 Baud:
1
int msp430_uart_init(void)
2
{
3
    /* Set P3.3 (TX) and P3.4 (RX) to UART mode. */
4
    P3DIR &= ~(1<<4);
5
    P3DIR |= (1<<3);
6
    P3SEL |= 0x18;
7

8
    /* Enable reset. */
9
    UCA0CTL1 |= UCSWRST;
10

11
    /* Use SMCLK clock  */
12
    UCA0CTL1 |= UCSSEL_2;
13

14
    /* Set baud rate to 115200 @ 20 Mhz
15
    UCA0BR0 = 0x0A;
16
    UCA0BR1 = 0x00;
17
    UCA0MCTL |= (UCBRF_14 | UCBRS_0 | UCOS16);*/
18

19
    /* Clear reset bit. */
20
    UCA0CTL1 &= ~UCSWRST;
21

22
    return 0;
23
}

Ich habe versuchsweise die Taktfrequenz auf 12 MHz geändert und die 
Parameter angepasst. Auch in dem Fall klappen nur 115200 Baud. Könnte es 
evtl am Bluetoothmodul liegen (BlueRadios BR-LE4.0-D2A)? Laut Datenblatt 
unterstützt es bis zu 460800 Baud.
Bin für alle Anregungen dankbar, da mich das Problem nun schon die 
letzten Wochen beschäftigt.
Gast #4515776
Lesenswert?

Clemens L. schrieb:
> Georg schrieb:
>> /* Set baud rate to 230400 @ 20 Mhz
>>     UCA0BR0 = 0x05;
>>     UCA0BR1 = 0x00;
>>     UCA0MCTL |= (UCBRF_7 | UCBRS_0 | UCOS16);*/
>
> Das ist alles ein Kommentar. Wenn das wirklich dein Programm ist, dann
> läuft es immer noch mit den Standard-Einstellungen.

Sorry, das war ein Kopierfehler, im richtigen Programm war es natürlich 
nicht mehr ausgeklammert.

Rufus Τ. F. schrieb:
> Hast Du dem denn die höhere Baudrate mitgeteilt? Automatisch erkennen
> wird es die nicht.

Danke! Ich hatte mich so auf den µC eingeschossen, dass ich das BT Modul 
ganz ignoriert habe. Hier wird der Fehler liegen.
Kennt sich jemand mit dem AT Befehlset der BlueRadios Bluetooth Module 
aus?
Ich hab ein Befehlset gefunden, allerdings bekomme ich die Änderung der 
Baudrate nicht hin. Da das BT Modul fest verlötet ist, schicke ich die 
Kommandos über den UART des Mikrocontrollers. Mit dem Befehl
"ATSN,neuerName\r"
kann ich erfolgreich den Namen ändern. Laut Beschreibung sollte sich mit 
dem Befehl
"ATSW20,944,0,0,1\r"
Die Baudrate auf 230400 einstellen. Leider gelingt dies nicht.
Hat jemand eine Idee?

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