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
C6713: QDMA and EDMA chaining
Started by ●July 16, 2004
Reply by ●July 19, 20042004-07-19
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 > >
Reply by ●July 23, 20042004-07-23
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