I've been using the 8-bit UART in a design for some time. I've recently changed from the internal 24M clock to using external 32.768kHz cystal and the PLL to generate a 23.986MHz internal clock. Now the UART does not seem to work reliably. I'm talking to a PC and if I change the baud rate around the nominal 19200 I get either the Tx or Rx to work but not both at the same time. It's as if the Rx and Tx are using different clocks. I know the internal clock is at the right frequency by putting an 8 bit counter in a digital block and dividing down VC3 and feeding to a pin. I get exactly the expected frequency. The difference between 24M and 23.986M should just make the baud rate closer to the nominal value.
Kindly check if ClockSync parameter of the UART User Module is set to "Sync to SysClk". Hopefully this should resolve the issue.
Thank you for your reply. The ClockSync parameter is set to "Sync to SysClk" already. Do you have any other ideas?
- Does this issue of either TX or RX working correctly happen at 19,200 baud or other bauds also?
- Is there any level translator between PC and PSoC, which can cause this issue.
- Is the PC serial port configured correctly with respect to parity, stop bits?