Tool/software: TI-RTOS
I have a project using RTOS v 2_16_01_14, I am setting the Tiva clock source like this...
ROM_SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_25MHZ); //clocking from PLL at 50MHz
SystemClockFreq = ROM_SysCtlClockGet(); //verify 50MHz
I am configuring a UART for 38400 8N1 like this...
void initUART(void)
{
UART_Params uartParams;
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART5);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_UART5)) ;
MAP_GPIOPinConfigure(GPIO_PE4_U5RX);
MAP_GPIOPinTypeUART(GPIO_PORTE_BASE, GPIO_PIN_4); //UART RX
MAP_GPIOPinConfigure(GPIO_PE5_U5TX);
MAP_GPIOPinTypeUART(GPIO_PORTE_BASE, GPIO_PIN_5); //UART TX
UART_init();
UART_Params_init(&uartParams);
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.baudRate = 38400;
uart5 = UART_open(UART5, &uartParams);
if (uart5 == NULL) {
System_printf("Error opening UART5 midi");
System_flush();
}
}
But the baud rate is wrong when I use the UART. I observe UART_CC is 0x00 (System clock), but UART_IBRD has been set to 0x82(130) and UART_FBRD set to 0x0D(13). According to data sheet these should be IBRD: 50000000/(16x38400)=81.3802 and FBRD: 0.3802x64+0.5=24.
Can someone advise what I have got wrong please.
Thanks in advance, Richard