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.

TMS320F28335: Problems with SCI receiving error status

Part Number: TMS320F28335

Dear team:

One of my clients used the SCI module of f28335 for RS485 communication. During the use, he found that he could not receive data. He checked the value of RXERROR register at that time as 1.

His current solution is to detect RXERROR in the SCI receive interrupt service function. If it is 1, reinitialize SCI. This method seems to be able to solve the problem. It seems a bit rude. Is there a better solution?

When setting SCI, he did not turn on the receive interrupt error enable. In this case, will the SCI receive interrupt service function query rxerror to 0 and then rxerror to 1? Or is it necessary to enable receiving interrupt error so that the detected rxerror status is reliable?

Best regards

  • Hi Green,

    First thing to debug the issue would be to resolve the cause of RXERROR. This bit is set when any of the bits 5-2 of SCIRXST (receive status) register are set. So when the RXERROR bit is being set which of these bits (BRKDT, FE, OE, PE) are being set?

    The only way to reset the RXERROR bit is using SCI software reset.  

    SciaRegs.SCICTL1.all =0x0003;

    SciaRegs.SCICTL1.all =0x0023; 

    To trigger the receive interrupt because of RXERROR it is necessary to turn on the receive interrupt error enable (RXERRINTENA).

    Thanks,

    Yashwant