DMA questions

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

cross mob
Anonymous
Not applicable

Hello,

   

unfortunately I broke my DevBoard and need to ask you; otherwise I would just test it.

   

Regarding the DMA feature I would have some questions:

   

1) Can I implement several TDs in one DMA component with NextTD attribute equals "End"? So I could just say something like "select TD4" and start --> wait for TD to end --> select another TD and so on.

   

2) I would like to use it with an UART component. Is it correct, that I need to watch out the TX buffer size and the amount of data to be transmitted? If the buffer size would be 4 bytes and the DMA transfers 8 bytes I would need two TDs as a chain and the second one will be triggered when TX buffer is empty again?

   

 

   

Best regards.

0 Likes
1 Solution
Anonymous
Not applicable

Dominik,

   

You can connect NRQ of TD0 to DRQ of TD1 so that when TD0 finishes, TD1 will be executed.

   

You cannot have multiple independent TDs with next TD as 'ENd', because you need a way to select the TDs one after the other. Chaining TDs is possible.

   

The examples given in the other posts would help.

View solution in original post

0 Likes
3 Replies
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

Dominik,

   

Check these threads with examples on DMA to UART transfer.

   

http://www.psocdeveloper.com/forums/viewtopic.php?f=43&t=9435

   

http://www.cypress.com/?app=forum&id=2233&rID=112492

   

http://www.cypress.com/?app=forum&id=2233&rID=92508  

   

odissey1

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

Some ref material -

   

 

   

http://www.cypress.com/documentation/application-notes/an52705-psoc-3-and-psoc-5lp-getting-started-d...                                             AN52705     Getting Started with DMA

   

http://www.cypress.com/documentation/application-notes/an84810-psoc-3-and-psoc-5lp-advanced-dma-topi...                          AN84810     PSoC® 3 and PSoC 5LP Advanced DMA Topics

   

http://www.cypress.com/documentation/application-notes/an61102-psoc-3-and-psoc-5lp-adc-data-bufferin...                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

Dominik,

   

You can connect NRQ of TD0 to DRQ of TD1 so that when TD0 finishes, TD1 will be executed.

   

You cannot have multiple independent TDs with next TD as 'ENd', because you need a way to select the TDs one after the other. Chaining TDs is possible.

   

The examples given in the other posts would help.

0 Likes