Hi, @SuperBeginner,
The documentation you need, with explanations of each function and how to use them, can be found at the following path:
toolbox_root/S32K3_RTD/SW32K3_S32M27x_RTD_R21-11_4.0.0_P19/eclipse/plugins/Mcl_TS_T40D34M40I0R0
At this location you can find the following:
- in doc folder you can find RTD_MCL_UM.pdf file, which is the User Manual for the MCL driver;
- in include folder you can find CDD_Mcl.h file, which is the main header file for the MCL driver;
- in src folder you can find CDD_Mcl.c file, which is the main source file for the MCL driver.
Based on the documentation above, you can understand the functionalities of each function, what parameters it has and how to use it in your application using custom code.
Now related to your application, until the next version of the toolbox is released, which will contain example models using DMA, I can guide you with the application you are trying to implement.
1. RM tab
In order to implement a DMA transfer, it will be necessary to add the RM (Resource Manager) component, to be able to set the DMA source.


Let's assume that we chose the LPUART 3 instance. We will create a configuration each for TX and RX, to ensure that we set the DMA MUX Source based on the chosen LPUART instance.

It should be noted that this newly added Rm component must be initialized in the Board initialization.



2. MCL tab
The MclDma must be enabled.

A logic instance must be assigned.

And the logic channels must be set, for both TX and RX.


The Hardware Channel must be the same as the one set in the Rm component, at Dma Hardware Channel (DMA_CHANNEL_16 and DMA_CHANNEL_17).
For UART using DMA, the interrupt callbacks are already defined based on the LPUART instance, so in this case must be used Lpuart_3_Uart_Ip_DmaTxCompleteCallback and Lpuart_3_Uart_Ip_DmaRxCompleteCallback.
The Enable Global Config check enabled the Global tab usage, where it should be enabled the DMA Request.

3. MCU tab
The corresponding peripheral clocks must be enabled.





4. PORT tab
The RX and TX pins must be enabled for the LPUART 3 instance.


5. PLATFORM tab
The corresponding interrupts must be enabled.

It should be mentioned that the interrupt corresponding to LPUART 3 should not be enabled, because the data transfer will be done through DMA, and the interrupts will be triggered based on the chosen TCDs and RX and TX callbacks.

6. UART tab
The DMA must be enabled.

You should check also the Uart Timeout Duration according to your application.

It should be mentioned that for this demonstration we chose LPUART 3 arbitrarily, and that any other instance can be used. Keep in mind that a USB2Serial Converter is needed for this instance, because the RX and TX pins are not directly connected to OpenSDA, as in the case of LPUART 6. If you want to use LPUART 6, the UBS2Serial Converter is no longer needed.
You can use the Simulink model from the Async UART example and it should work correctly for the previously configured LPUART instance. For the Hardware Interrupt Callback part, the model will use the same UART callback that will manage the data transfer through DMA.
Let me know if you managed to configure the UART using DMA.
Hope this helps,
Dragos