This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C5505 UART

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