AnsweredAssumed Answered

S32K144 interrupt based UART: STATUS_UART_NOISE_ERROR

Question asked by Joao Roscoe on Mar 19, 2019
Latest reply on Mar 20, 2019 by Joao Roscoe

I have a interrupt driven UART inplementation (SDK version is 2.0.0 and I'm using regular lpuart driver, not pal or flexio) in which I need to look at each received byte, as they arrive. Thus, I use:

 

/* Get last transfer status */
result = LPUART_DRV_GetReceiveStatus(INST_UART, NULL);
if (STATUS_SUCCESS == result)
{
/* Execute send non-blocking */
LPUART_DRV_ReceiveData(INST_UART, inst_datum, 1U);
}

 

...where "inst_datum" is a one-byte buffer.

Also, I have a Rx callback installed which retrieves the content o inst_datum and calls the Rx code above for next byte reception.

It works, as far as the bytes arrival rate is not too high. If bytes arrival gets too fast, lpuart triggers a STATUS_UART_NOISE_ERROR interrupt.

 

 

Any hints?

Best regards,

Joao

Outcomes