I'm having a problem receiving 8-bit byte data using a SCB 3.0 configured as a UART. I can transmit full 8-bit byte data without issue (0x00 - 0xFF). When receiving any byte greater than 0x7F, 0x3F is returned.
I'm not sure if the problem is a hardware issue, or a problem with the code that maintains RX FIFO and the RX software buffer. I have not modified any of the SCB code that is generated by Creator 3.3
I have verified that the incorrect value is being saved to the RX software buffer. SCB_UartGetByte(), SCB_UartGetChar(), and SCB_SpiUartReadRxData all return the same incorrect value.
CY8CKIT-043 PSoC 4200M
SCB 3.0 - UART
Direction: TX + RX
Baud rate: 115200
Data Bits: 8 bits
Stop Bits: 1
RX Buffer size: 64
TX Buffer size: 64
I'm new to PSoC and Creator, but I have worked with serial ports in embedded systems for years and haven't come across a problem like this before. Has anybody in the PSoC community seen this problem or have any suggestions?
Easiest check you can make would be to shortcut Tx and Rx lines to see if it is a PSoC SCB UART problem. Can you post your complete project, so that we all can have a look at all of your settings? To do so, use
Creator->File->Create Workspace Bundle (minimal)
and attach the resulting file.
Thanks for the suggestion Bob. I hooked up a loopback and verified that the PSoC 4 SCB UART, and all code is working properly! I'm going to dig out a logic analyzer and verify that the KitProg USB to TTL Serial is working properly, and also verify that an app i'm running on a PC is properly transmitting 8-bit data. I know the app is properly receiving data from the PSoC, but i'm not 100% sure it's transmitting properly.