This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TDA4VM: Timings in ADC continuous mode of operation on linux

Part Number: TDA4VM


Hello,

I would like to utilize the high sample rate of ADC which is said to be 200KSPS. My goal is to perform one measurement per 25us, which gives 40KSPS and theoretically should be possible.

For some initial tests I used the iio_generic_buffer program described in the SDK documentation modified by adding some timestamps using clock_gettime from time.h library.

I launched the program in trigger-less mode with 4 channels in one device enabled. 

It turned out that when the ring buffer is filled, reading values from the buffer takes single microseconds (including printing the values). However, when the buffer is empty, it takes up to 10 miliseconds for the driver to fill up the buffer, which is not what one would expect from a ring buffer behavior. That does not change when I limit the buffer size.

Is there any reasonably quick way to perform regular and fast analog measurements?

Kind regards
Łukasz Gruszczelak