Question: When using UART on CY8C24x94, following DRC warning is generated:
“UART should not be used in the CY8C24x94 devices without connection to the USB bus”.
Why is this error generated? What should I do if I do not need to connect to the USB bus?
Response: For a UART to work, the error on the clock should be <4%. Both the receiver and transmitter contribute to this error and hence, the clock on the PSoC should not exceed 2% tolerance. Generally, PSoC devices have an IMO with a tolerance of 2.5%. But for the CY8C24x94 device, the tolerance is 4%. So, if the UART clock on the other end of PSoC also has some error, there will be communication errors. When the USB is used, the IMO is synced with the USB bus clock and becomes very accurate and will prevent any UART errors. The warning is generated to inform this condition. There are a few options to follow under this situation.
1. Use an accurate External clock with a tolerance of <2% on P1.4 for the SysClk
2. If the device at the other end of the UART is driven by a crystal osciallator and does not contribute to the error budget, PSoC can use the 4% error budget and you may not have any problem in the communication. But this is still not a recommended solution.
3. Send only 4 bits at a time on the UART. As the clock tolerance affects only the bits farthest from the start bit, transmitting only 4 bits at a time will prevent bit errors. The first 4 bits of a UART frame should be the data bits and the next 4 bits should 1's. So, to send 0x59, you would send 0xF5 first and 0xF9 next.
4. If you are not planning to use the USB, then consider using other family of PSoC devices that have 2.5% tolerance on the IMO. You could try the CY8C29x66 families.