Tool/software: TI-RTOS
My sincere Apologies in advance to take this shortcut instead of going through documentation/debug !
RTOS: tirtos_tivac_2_14_00_10
Boards: EK_TM4C129EXL and Custom board for TM4C123GH6PM
Does TI-RTOS probe for factual system frequency of TM4C12x for configuring baud-rate to UARTs or it just assumes designated frequencies(120MHz for TM4C129 and 80MHz for TM4C123GH6PM ).
The UARTs on board EK_TM4C129EXL , deliver correct Tx/Rx with my external device when configured as
SysCtlClockFreqSet((SYSCTL_USE_PLL|SYSCTL_XTAL_25MHZ|SYSCTL_OSC_MAIN|SYSCTL_CFG_VCO_480),120000000);
While UARTs on custom board for TM4C123GH6PM, deliver correct Tx but response Rx from external device becomes garbage after approx 40 bytes when configured as
SysCtlClockFreqSet((SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN),80000000);
SysCtlClockGet() too returns correct value of 80000000.
E2E forum, suggested API "SysCtlClockSet" is meant for TM4C123 only and "SysCtlClockFreqSet" is meant for TM4C129 only.
On custom board for TM4C123GH6PM, replacing
SysCtlClockFreqSet((SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN),80000000);
with
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
causes garbage bytes being transmitted on Tx itself, by TM4C123GH6PM, resulting in no response Rx from external device
SysCtlClockGet(); too returns 40000000.
!! An immediate Concern from above observation is, had TI-RTOS been probing actual frequency on TM4C123GH6PM, be it 40M or 80M, to configure baud-rate, Tx would had remained intact !!
NOTE:
The custom board for TM4C123GH6PM does not have 32K crystal populated as no use of hibernate/RTC modules at the moment. Respective crystal pins and wake left open in above setup !