0 Replies Latest reply on Jan 9, 2018 6:53 AM by TelmoBarros

    DMA TD chaining

    TelmoBarros

      Hello everyone,

       

      I'm developing a way to transfer data from the psoc to my pc and, so far I've managed to send 2048 16-bits values.

       

      These values are obtained from an ADC that is directly connected to a DMA, so that I can save them in a buffer.

       

      In order to save more values, I've read many entries, and the Application Notes as well, and I know I have to use TD chaining to obtain my desired result.

       

      The thing is I have a small difference in comparison with the other entries. While they tend to have two or more buffers to save the ADC converted values, I only have one buffer (in my case, it is 16384 bytes long).

       

      I tried to program each address for the TD's in the following manner:

      TD[0] - 0...4095      -> destination address :0

      TD[1] - 4096...8191   -> destination address :4096

      TD[2] - 8192...12287  -> destination address :8192

      TD[3] - 12288...16384 -> destination address :12288

       

      My issue was that only the samples sent by the first TD resembled the wave originated from the ADC. Therefore, I'm asking you what could possibly be the mistake I made.

      I'm not sure, but I think it's down to the TD properties, especifically, their destination addresses and some of the requests.

       

      Thanks in advance

       

      p.s my project is attached