I am using the UART serial port as a receiver of data. I am running it at 115.2kbps.
I need to signal the external sender to wait before sending more data using the RTS line.
Here is my setup
// serial port setup
CSL_UartObj uartObj;
CSL_UartHandle hUart;
CSL_UartSetup uartSetup = {
100000000,
115200,
CSL_UART_WORD8,
0,
CSL_UART_DISABLE_PARITY,
CSL_UART_FIFO_DMA1_DISABLE_TRIG01,
CSL_UART_NO_LOOPBACK,
CSL_UART_NO_AFE,
CSL_UART_RTS,
};
I am using the RX data interrupt to read the data into a buffer.
// rx isr
void uart_rxIsr(void) {
UART_fgetc(hUart,&data,0);
code[inPtr] = data;
inPtr++;
if (inPtr == BUFFER_SIZE)
inPtr = 0;
}
status = UART_init(&uartObj,CSL_UART_INST_0,UART_INTERRUPT);
hUart = (CSL_UartHandle)&uartObj;
status = UART_setup(hUart,&uartSetup);
status = UART_setCallback(hUart,&isrAddr);
// enable rx data avail int
status = UART_eventEnable(hUart, CSL_UART_RECVOR_REG_DATA_INTERRUPT);
The interrupt works fine but I need to process the data before the next byte arrives.
The problem I am experiencing is that the RTS line never asserts to stop the external data.
Did I miss something?
Sam