Forums

C6713: QDMA and EDMA chaining

Started by Bernhard Gustl Bauer July 16, 2004
Hello,

is it possible to chain QDMA and EDMA? I want EDMA to reload SRC and DST
of QDMA.

What I want to do is transfer 134 blocks of 8 words to different
locations in memory. There is no patern in this blocks so can not use a 
2D EDMA.

So I configured QDMA to transfere 8 words and chained it to a EDMA. EDMA 
reloads SRC and DST and should trigger a new QDMA cycle. The 1st QDMA is 
triggered manualy and is performed. The 2nd one should be triggerd by 
EDMA, but isn't. EDMA is run one time and write a value to QSRC and 
QSDST. A write to QSDST should trigger a QDMA cycle. Manually it works 
but not by EDMA.

Any help would be appriciated.

regards

Gustl

The parameter RAM for the EDMA only contains 85 sets of entries (16
corresponding to the actual channels and 69 available for linking transfers.
Therefore you cannot simply put the addresses of all 134 blocks in the
parameter RAM and chain them all together.  You'll have to do something a
little more clever to get around this.  You might want to do something like
have a bunch of channel entries sitting in a block of "regular" RAM
somewhere and set up an EDMA transfer to copy them into parameter RAM.  You
could terminate that set of entries with a NULL transfer to end the transfer
after all 134 blocks have been transferred.

Brad

"Bernhard Gustl Bauer" <gustl@quantec.de> wrote in message
news:cd887d$25li$1@ulysses.news.tiscali.de...
> Hello, > > is it possible to chain QDMA and EDMA? I want EDMA to reload SRC and DST > of QDMA. > > What I want to do is transfer 134 blocks of 8 words to different > locations in memory. There is no patern in this blocks so can not use a > 2D EDMA. > > So I configured QDMA to transfere 8 words and chained it to a EDMA. EDMA > reloads SRC and DST and should trigger a new QDMA cycle. The 1st QDMA is > triggered manualy and is performed. The 2nd one should be triggerd by > EDMA, but isn't. EDMA is run one time and write a value to QSRC and > QSDST. A write to QSDST should trigger a QDMA cycle. Manually it works > but not by EDMA. > > Any help would be appriciated. > > regards > > Gustl > >
Brad Griffis wrote:

> The parameter RAM for the EDMA only contains 85 sets of entries (16 > corresponding to the actual channels and 69 available for linking transfers. > Therefore you cannot simply put the addresses of all 134 blocks in the > parameter RAM and chain them all together. You'll have to do something a > little more clever to get around this. You might want to do something like > have a bunch of channel entries sitting in a block of "regular" RAM > somewhere and set up an EDMA transfer to copy them into parameter RAM. You > could terminate that set of entries with a NULL transfer to end the transfer > after all 134 blocks have been transferred.
Thanks a lot. This a solution I can live with, altough it has a lot more management overhead than my origin idea. I wanted QDMA to chain to a framesynced EDMA and this EDMA to retrigger a QDMA Gustl