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.

TMS320C6748: UART Error Handling

Part Number: TMS320C6748


I currently have an issue with my code that causes an error in the UART.  The IIR INTID gives me a 011.  I've been able to read the contents of the register which clears the error status caused by an overrun error per the LSR register.  This is easily cleared by reading from the LSR register and that then changes the IIR INTID to 010.

Obviously the overrun is definitely an issue (Likely due to another interrupt service routine taking too long) but being able to recover from errors is important rather than the terminal just hanging.  To remove the 010 interrupt condition in the IIR, the Technical reference states you just need to read from the RBR which I have done with:

HWREG(SOC_UART_2_REGS + UART_RBR);

Yet when I read from the RBR the LSR still reflects that data is ready and the IIR reflects 010.

Being only a single byte setup in the FIFO I believe that just reading from the RBR should disable the interrupt.

Am I missing something from the Technical Reference Manual?