Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
I am using the DMA to read out the data of the delta sigma ADC and store these values into RAM.
Afterwards I use them to calculate several things. My Code for this task is the same as in the example, the only difference is, that the ADC is running in 17Bit mode (but also has uint32 as a result). I was trying to store more samples into the RAM, so I changed the BUFFER_SIZE to highe values.
Until a buffer size of 512 everything is ok. but when I increase the buffer to 1024 it doesn't work the way I expected. After 544 correct sampled and stored values every value is 0.
I think you hit a limitation of the CyDmaTdSetConfiguration() call: the transferCount cannot exceed 4095 bytes. And when I calculate correctly, you have 4096 there (4 bytes per burst for the uint32, and 1024 values).
OTOH, the documentation says that the DMA won't be configured in such cases, so you shouldn't see any values.
If you hit this limit, you just need to create multiple TDs and chain them together, each for 512 values. (I did this before and could provide sample code).