S32K 144 LPUART Receive Interrupt could not generate

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

S32K 144 LPUART Receive Interrupt could not generate

ソリューションへジャンプ
2,372件の閲覧回数
KILLERzheng
Contributor IV

Hi NXP,

I create a project for S32K144 base on platformSDK_S32K1_2021_08_S32K144_M4F, and configured the MCAL which the LPUART transmit via DMA. The tx Interrupt could generate but when I send massage to MCU via other tool, the Rx interrupt could not generate. Now I could not receive uart message with non-blocking way.

Is there any way to deal with it?

Thanks!

0 件の賞賛
1 解決策
2,191件の閲覧回数
KILLERzheng
Contributor IV

I have solved this problem.

the IDLE interrupt is not be handled by MCU because of the RTD in function "Lpuart_Uart_Ip_IrqHandler", so I add the idle interrupt handle code as below and other related code, so it could works

KILLERzheng_0-1645666965039.png

 

元の投稿で解決策を見る

0 件の賞賛
9 返答(返信)
2,319件の閲覧回数
namnguyenviet
NXP Employee
NXP Employee

Hello,

You don't need to enable the Scatter/Gather. Please follow part 3.3.3 DMA configuration in the RTD_UART_IM.pdf file to configure the UART transmission using DMA method (It's for EB Tresos but the same things are apply to S32 Design Studio - DMA_IP)

0 件の賞賛
2,309件の閲覧回数
KILLERzheng
Contributor IV

I did what the IM manual said, the configuration as below. It still could not  generate the receive interrupt unless I call the receive function forwardly. 

On the other hand, the configuration of  Transfre Container is the default setting, is there any reference for that how to configure this container ? 

KILLERzheng_2-1643249742207.png

 

KILLERzheng_0-1643249690262.png

KILLERzheng_1-1643249699929.png

KILLERzheng_3-1643249761731.png

 

 

 

0 件の賞賛
2,303件の閲覧回数
namnguyenviet
NXP Employee
NXP Employee

Did  you enable and configure the DMA interrupt handler accordingly? I supposed you don't need to configure the transfer config since they are configured internally in the LPUART driver. What you need to do is configuring the DMA HW logic instance in Global tab based on what is written in the IM.

0 件の賞賛
2,293件の閲覧回数
KILLERzheng
Contributor IV

here is the MCAL project

0 件の賞賛
2,299件の閲覧回数
KILLERzheng
Contributor IV

I did enabled the DMA interrupt and the handler

 

KILLERzheng_0-1643252059864.png

KILLERzheng_1-1643252102994.png

 

0 件の賞賛
2,202件の閲覧回数
namnguyenviet
NXP Employee
NXP Employee

Sorry for late reply. I haven't had chance to check your project yet. You can debug by set a breakpoint in the interrupt handler function of DMA, then check whether the breakpoint can be hit. 

Best Regards,

Nam

0 件の賞賛
2,192件の閲覧回数
KILLERzheng
Contributor IV

I have solved this problem.

the IDLE interrupt is not be handled by MCU because of the RTD in function "Lpuart_Uart_Ip_IrqHandler", so I add the idle interrupt handle code as below and other related code, so it could works

KILLERzheng_0-1645666965039.png

 

0 件の賞賛
2,340件の閲覧回数
namnguyenviet
NXP Employee
NXP Employee

Hello,

You can verify whether you have configured the interrupt correctly. Also, please make sure that the RX pin was configured with its appropriate mode. Last but not least, measure the bus to verify the receipt UART signal.

You can refer to the example of UART along with the package to have an overview of UART driver usage.

Best Regards,

Nam

0 件の賞賛
2,330件の閲覧回数
KILLERzheng
Contributor IV

The interrupt configuration is correct, and it could receive message sometimes which asks me to Receive forwardly. 

I am confused that how to configure the Dma Logic Channel Rx  of MCL instance in EB, should I enable the Scatter/Gather, and if so, how to configure this part?

0 件の賞賛