S32K144 interrupt based UART: STATUS_UART_NOISE_ERROR

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

S32K144 interrupt based UART: STATUS_UART_NOISE_ERROR

跳至解决方案
3,696 次查看
Joao_Roscoe
Contributor III

I have a interrupt driven UART inplementation (code is running on S32K144EVB-Q100, 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.

Both clock and lpuart configurations are default, as suggested suggested by S32DS for ARM 2018.R1 / SDK.

Any hints?

Best regards,

Joao

标签 (1)
1 解答
3,013 次查看
dianabatrlova
NXP TechSupport
NXP TechSupport

Hello Joao,

I have checked the lpuart_echo example. The example used by default the SIRCDIV2_CLK as the clock source.

You can try to select the fastest clock source for the LPUART and set the higher priority of LPUART interrupt.

What is your Baudrate setting?

 

Also, I would like to mention that the new SDK version is available:

S32 Design Studio for ARM 2018.R1 - Update 9 available 

I hope it helps.  

Best Regards,

Diana

在原帖中查看解决方案

5 回复数
3,012 次查看
wjandsq
Contributor IV

I have a Rx callback installed with DMA receive and transfer,  use RTM 3.0.0 SDK   lpuart0.   but  in work ,  always  triggers a STATUS_UART_FRAME_ERROR interrupt,  and Stop  DMA receive,   so  the  application receive data length have a errror。

0 项奖励
回复
3,014 次查看
dianabatrlova
NXP TechSupport
NXP TechSupport

Hello Joao,

I have checked the lpuart_echo example. The example used by default the SIRCDIV2_CLK as the clock source.

You can try to select the fastest clock source for the LPUART and set the higher priority of LPUART interrupt.

What is your Baudrate setting?

 

Also, I would like to mention that the new SDK version is available:

S32 Design Studio for ARM 2018.R1 - Update 9 available 

I hope it helps.  

Best Regards,

Diana

3,012 次查看
Joao_Roscoe
Contributor III

Yes, changing the clock source improved the BAUD rate gereration accuracy, and I'm not getting errors anymore, thank you.

About that: what would be the advantage of keeping with the slower, default clock source? Lower power consumption?

Also, I took the opportunity to update S32DS, to get the new SDK version, since it's now a RTM version. Next step would be updating project properties, to use the new SDK, right?

Do you have any hints about how to do it?

Best regards,

Joao

0 项奖励
回复
3,012 次查看
dianabatrlova
NXP TechSupport
NXP TechSupport

Hello Joao,

I would like to apologize for the delay.

Yes, with a slower clock source will be lower power consumption.

When you want to use new SDK version in the project the fastest way is to create a new application project and there choose the newest SDK version.

pastedImage_1.png

I hope it helps.

Best Regards,

Diana

0 项奖励
回复
3,012 次查看
Joao_Roscoe
Contributor III

>>"...the fastest way is to create a new application project and there choose the newest SDK version"

Nice.

Is there any easy way to import project settings, like port settings, paths, and so on?

Best regards,

Joao

0 项奖励
回复