LPUART Overrun Error and Busy Status Issue on S32K322

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

LPUART Overrun Error and Busy Status Issue on S32K322

1,509件の閲覧回数
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 件の賞賛
返信
3 返答(返信)

1,490件の閲覧回数
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 件の賞賛
返信

1,484件の閲覧回数
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 件の賞賛
返信

1,463件の閲覧回数
PetrS
NXP TechSupport
NXP TechSupport

Hi,

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

BR, Petr

0 件の賞賛
返信