Hello, I'm currently working with AD7124-4 in Single Conversion mode and I'm trying to make it faster.
On page 80 of datasheet:
Single conversion mode. When single conversion mode is selected, the ADC powers up and performs a single conversion on the selected channel. The conversion requires the complete settling time of the filter.
Go to page 54 and for filter SINC4:
The settling time for the sinc4 filter is equal toTsettle = (4 * 32 * FS[10:0] + Dead_Time)/Fclk
where Dead_Time = 61 when FS[10:0] = 1, and 95 when FS[10:0] > 1.
So, by following code where I've used your API:
ret = AD7124_WriteRegister(ad7124_handler, ad7124_regs[AD7124_ADC_Control]);
ret = AD7124_WriteRegister(ad7124_handler, ad7124_regs[AD7124_Channel_0]);
ret = AD7124_WriteRegister(ad7124_handler, ad7124_regs[AD7124_Filter_0]);
I'm expecting T_settle = (4 * 32 * 8 + 95)/614 400 = 0,0018212890625, but when I'm trying to make more than 10 measurements per second all conversions that come faster than t = 0.1 are get nothing in Data_Register (!RDY bit is on).
It seems like filter settings didn't change at all because ADC can not perform T_settle lesser than 0.0815 (80.15ms if FS[10:0] = 384 — default value).
Can someone explain me this issue? Maybe I've misunderstood the main concept of single conversion mode?
Any information would be helpful.