Question about using multi-DMA

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

cross mob
Anonymous
Not applicable

Hi all

   

I want to use multi DMAs by parallel rather than using first DMA to request next DMA. For example,  I use a custom trigger component  to request DMAs one by one. I assume that each DMA component can work individually and run as parallel, so that total DMA speed can be accelerated.  It is just what I expect and assume, could any one tell me this is available or not??   Or there is an another way which can speed up DMA.

   


   

Thanks

0 Likes
4 Replies
Anonymous
Not applicable

You should be able to find that in the TRM of PSoC.

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

You can trigger multiple DMAs at the same time, by connecting them to the same trigger signal. But they won't actually run at the same time - their transfers will be in sequency. Look at the TRM for more detail.

   

But yes, doing so simplifies things since there is no need for a custom trigger component.

0 Likes
EvPa_264126
Level 7
Level 7
500 replies posted 250 replies posted 100 likes received

 

   

I asked a similar question here.

   

 

   

synchronize two or more DMA

   

 

   

 

   

In my case, was enough to make a shift in the signal table and perform CyDmaChEnable with some delay.

   

CyDmaChEnable(DMA_Wave_4_Chan, 1);

CyDelayUs(150);

CyDmaChEnable(channel, 1);

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

In short: There is a priorization between the different DMA-channels running in parallel.

   

Since you do not specify much about the problem you have got it is difficult to give you advise.

   

But be sure: a single DAM channel running to transfer data will always be faster than multiple channels performing the same shared job

   

 

   

Bob

0 Likes