Hi,
I would like to feed the FlexSPI/QSPIB with data using a SDMA channel and still have some trouble with it.
My program runs on the CM4 core of a MIMX8MM6 SoC.
I started with the memory_to_memory SDMA example which works fine. Then I adapted to FlexSPI looking in the ecspi sdma_loopback_transfer example.
But after starting the FlexSPI I see the output of the Command byte, but then the transfer stops, keeping CSn low. The Interrupt callback from SDMA is beeing called.
FlexSPI by filling TFDR manually works. Then I changed IPTXFCR[TXDMAEN] = 1 and IPTXFCR_TXWMRK = 0
I am using in SDMA_PrepareTransfer():
sdmaChannel = 1
sdmaEventSource = 36 // for qspi1/DMA tx request
sdmaPriority = 2
srcAddr = (uint32_t) u8array
dstAddr = (uint32_t) FLEXSPI->TFDR
srcWidth = 4
dstWidth = 4
bytesEachRequest = ( IPTXFCR_TXWMRK + 1) * 8
kSDMA_MemoryToPeripheral and kSDMA_PeripheralNormal
Is this possible in that way?
Thanks and regards
Christoph