Hello,
I am currently bringing up a custom board with a CC2652R processor. I am looking at running two programs on it, one is Project Zero and the other is a modified version of Project Zero with my own custom services (call it Project One). When running either program on the launchpad and opening up a serial 115,200 connection through Putty, the UART works fine and I can see my debug statements (that use the log_info functions). However, when I run both programs on my own test board, the UART baud rate changes. In particular, I get a 40,000 rate for Project Zero and 76,000 rate for Project One. I can verify this works by opening up a Putty connection at those rates, and the debug statements print correctly. Otherwise random characters are printed.
I have verified that the UART registers are the same when running on both the launchpad and my own board. On my own board with Project One, I am using an external 48 MHz clock for SCLK_HF and a low-frequency clock derived from XOSC for SCLK_LF. I have verified SCLK_HF by outputting a PWM signal on a DIO, and I have verified SCLK_LF to be 32 kHz by outputting it to a DIO. Based on the datasheet, the UART should be taken from PERDMACLK, which I think should be 48 MHz but I can't check because it is internal.
Are there other registers that need to be changed when initializing UART on a custom chip? I think the only relevant functions that I am running from Project Zero are:
Board_initGeneral()
UART_init()
UartLog_init(UART_open(CONFIG_DISPLAY_UART, NULL))
Also, why would Project Zero and Project One be giving different baud rates? If Project Zero is running off of RCOSC and Project One off of XOSC, could that be affecting things? RCOSC should be automatically calibrated from the syscfg file.
Thank you, I appreciate the help!
Adam