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.