32-bit DMA to DataPath not working | Cypress Semiconductor
32-bit DMA to DataPath not working
I would like to use DMA to send data to a simple 32-bit SPI DataPath but the problem is that F0 FIFO of my DataPath is not detecting when DMA sends data to it when Datapath width is 32 bits. It worked fine with 8-bit and 16-bit DataPath.
Can you please advise?
Following is what I got so far.
I started with project DMASPI_8bit which worked as expected as shown on image below. The important signals are Ch5 (isFifoEmpty), and Ch6-7 (when DMA completes). They show when data is loaded into FIFO and when DMA completes.
Made a copy of 8bit project to 16bit project and just updated number of bits in DataPath and also the data to send 2 bytes per burst and all worked great as well as shown on following image.
Made a copy of 16-bit project and set DataPath to 32 bits and also updated variables to send 4 bytes per burst but no luck this time.
The following image shows Ch6-7 going high which means DMA completed but Ch5 (isFifoEmpty) signal remains high.
The 32-bit project has additional debug code that I tried. The debug code also does a direct register write to FIFO F0 PTR to verify that FIFO empty signal changes state at that point, but for some reason it just doesn't work the same with DMA.