S32K serial communication has the following two practical working modes:
1. Interrupt the receiving and sending mode, the library file is relatively complete and there is no problem.
2. In DMA receiving and idle interrupt receiving mode, you need to set the receiving error event and idle interrupt event,
and make changes to the SDK. DMA receiving mode is very useful for high baud rate above 921600 and dense data
communication. In the DMA receiving mode, the NXP SDK library did not do the corresponding processing,
but NXP does not admit that their SDK has problems in this mode.
That's because they have not done specific tests in this application scenario at all,
so there is no corresponding DEMO in this scenario.
NXP believes that serial port reception is a problem at the application layer.
There is no problem in sending and receiving AUTOSAR packets directly.
But this package can only be used for regular serial communication.
For the scene of high baud rate communication, it is very bad, and RTOS must be used.
So NXP wants to promote this AUTOSAR package, it is still very unrealistic,
especially the S32K144 with 64KB of memory.
Hi there , I using LPUART with IDLE interrupt and DMA recv&send recently , here is my solution .
If you using the SDK LPUART driver , when enter the LPUART_DRV_IRQHandler() , all ERROR status are clear by LPUART_DRV_ErrIrqHandler() .
In the LPUART_DRV_ErrIrqHandler() , the IDLE status is also clear in the end .
So modify the FEATURE_LPUART_STAT_REG_FLAGS_MASK ( in file S32K144_features.h ) , from ( 0xC01FC000U ) to ( 0xC00FC000U ) , to avoid the idle flag being clear in LPUART_DRV_ErrIrqHandler() .