LPUART Overrun Error and Busy Status Issue on S32K322

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LPUART Overrun Error and Busy Status Issue on S32K322

1,446 Views
pramodvittal09
Contributor I

I am currently working with UART communication using the LPUART module on the S32K322 MCU and have encountered an issue when attempting to send more than 43 bytes.

Details:

API Used: Lpuart_Uart_Ip_AsyncSend()
Instance: 2
Data Length: 73 bytes
The Lpuart_Uart_Ip_AsyncSend() API returns LPUART_UART_IP_STATUS_SUCCESS. However, when I attempt to check the receive status using Lpuart_Uart_Ip_GetReceiveStatus():

On the first attempt, it returns LPUART_UART_IP_STATUS_RX_OVERRUN.
On subsequent attempts, it returns LPUART_UART_IP_STATUS_BUSY until the timeout occurs.


What are the possible causes for the RX overrun error occurring on the first attempt?
Why does the busy status persist until timeout after the initial overrun error?
Are there specific configurations (e.g., buffer size, FIFO settings, or timing considerations) that I should verify to prevent this behavior?
Could this issue be related to interrupt handling, baud rate settings, or hardware limitations for handling larger data sizes?
I would greatly appreciate your insights or any guidance to help resolve this issue.

Thank you for your time and support.

0 Kudos
Reply
3 Replies

1,427 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

overrun error is get if module receives bytes but those are not serviced.
So do you receiving anything during bytes are sent, or similar, like having loopback enabled?
If so, you should call Async Receive function before Async Send function to ensure that the receiver is ready to receive data before the data is transmitted.
Or share your setting and code used, so I can comment more.

BR, Petr

0 Kudos
Reply

1,421 Views
pramodvittal09
Contributor I

I didn't receive any data from UART when i send a data to UART. I was expecting a response from UART.

I am Calling Lpuart_Uart_Ip_AsyncReceive before "Lpuart_Uart_Ip_AsyncSend " sending data to UART.

from another thread I am trying to receive a response from the device over UART using Lpuart_Uart_Ip_GetReceiveStatus , this function always returns LPUART_UART_IP_STATUS_RX_OVERRUN and LPUART_UART_IP_STATUS_BUSY.

This behavior happens only when i try to send data more than 43 characters to the UART.

 

0 Kudos
Reply

1,400 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

please provide your setting and code used, ideally simplified project.

BR, Petr

0 Kudos
Reply