- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I did enabled the DMA interrupt and the handler
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?