32-bit DMA to DataPath not working

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

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.

0 Likes
5 Replies
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

The images show as blank.  Here are the image files.

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Maybe this would help -

   

 

   

    

   

          http://www.cypress.com/?app=forum&id=2492&rID=76859

   

 

   

I am sure you have seen this stuff ?

   

 

   

    

   

          

   

http://www.cypress.com/?rID=37793     AN52705     Getting Started with DMA

   

http://www.cypress.com/?rID=82680     AN84810     PSoC® 3 and PSoC 5LP Advanced DMA Topics

   

http://www.cypress.com/?rID=44335     AN61102 PSoC® 3 and PSoC 5LP - ADC Data Buffering Using DMA

   

http://video.cypress.com/video-library/search/dma/     Videos on DMA

   

https://www.youtube.com/results?search_query=dma+psoc Videos on DMA (some overlap)

   

 

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable

 Thanks Dana, let me build a project with the 32-bit component and will let you know how it goes.

   

I already went through all the other links.  BTW, is it possible to access the projects shown on videos like http://video.cypress.com/video-library/video/Corporate/PSoC-Today-Data-Paths-Part-III/1799598137001 ?

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Send an email to psoctoday@cypress.com, giving them the list

   

of video projects you want..

   

 

   

Regards, Dana.

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

 Hi Dana,

   

I used the 32-bit component from link you sent me but I still got the same problem.  Can you please take a look at any of my 32-bit projects to see why writing to FIFO from DMA does not work for 32-bit but works for other bit lengths?

   

Attached is the project using the 32-bit component from the following link:

   

www.cypress.com/?app=forum&id=2492&rID=76859

0 Likes