Without looking the full API up (so I might be wrong): it looks that the first DMA is triggered only once (transferlength is 1, and the TD doesn't link to itself I think).
In contrast, the second DMA will, after the transfer count is reached, start again and write to the same buffer from the beginning.
The DMA parameters are fairly complex so which ones should i fool with?
I should say that it is difficult to deduce from Cypress's documentation how to configure the DMA's to properly transfer information from the ADC, to the filter, then to RAM in this circumstance. The DMA wizard is supposed to help but seemingly complicates things more. I am very confused on how to set this up (missing a bunch of puzzle pieces).
There are several places to look into:
- the documentation for the DMA component
- some AppNotes: AN52705 (how does DMA work), AN6112 (how to get data aut of a ADC with DMA), AN84810 (advanced DMA)
- the technical reference manual (TRM) for the technical details
- some posts on the PSoC Sensei blog
I guess the example EP58353 might also help - it shows how to get data in and out of the filter block.
You need to look, mostly, into the CyDmaTdSetConfiguration API call, maybe also at the DmaInitialize calls (e.g. your second DMA moves 4 bytes per request out of the filter, whereas the fuirst DMA puts single bytes into the filter...)