S32K144 interrupt based UART: STATUS_UART_NOISE_ERROR

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

S32K144 interrupt based UART: STATUS_UART_NOISE_ERROR

ソリューションへジャンプ
3,694件の閲覧回数
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,011件の閲覧回数
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,010件の閲覧回数
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,012件の閲覧回数
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,010件の閲覧回数
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,010件の閲覧回数
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,010件の閲覧回数
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 件の賞賛
返信