Hi NXP,
We were trying to configure DMA for SPI data transfer. Our project is developed by using EBTresos (RTD 3.0.0.0) for s32k358.
I configured SPI by going through User Manual that was given with the plugin and by going through examples in NXP Forum.
Through SPI(for now) i'm trying to transfer 16 bytes of data. I configured two channels for RX and Tx in MCL module(DMA), assigned the corresponding channels in SPI module, and also configured DMAMUX in Rm module.
SPI is in AsyncMode. I use the function Spi_AsyncTransmit(sequence) to transfer the data. During testing, i'm shorting MISO and MOSI pins , so ideally i will be able to see TxBuffer(16 Bytes) data in RxBuffer(16 Bytes) after the data transfer.
But sadly only 4 bytes are transferred.
The way i see it-- DMA is configured by the SPI module. The Major loop count for more than or equal to 4 bytes is length/4 so in our case 4.
So, after writing 4 bytes of data to TX FIFO from TxBuffer and copying Data from RX FIFO to RxBuffer i.e after completing one major loop, the channels are stopped (done bit set in TCD->CH0_CSR).
1. So now, how to transfer the full data?
2.Also, i can see the Done bit set in TCD register (CH0_CSR). I assumed the bit is set only after the full data is transmitted?
3. I'm trying to do SPI data transfer using DMA without configuring interrupts. Is it fine?