I have a problem with AduCM360 ADC conversion rate. I have changed FLT settings, to obtain the best conversion rate, but I cannot get under 2ms. The 2 ms duration is too much for my application. What settings should I use to get fADC=3906 Hz?
The adc config is : Internal reference, continuous conversion
Looking into table 16 and 17 in UG, I see that to obtain the best rate, i should configure the filters like lines: 1,2,6,7
The main difference that i see is the settling time, that is the best for line 1 in Table 16. Still, I can't get under 2ms per conversion.
From the datasheet:
Also have a look at the ADuCM360/ADuCM361 Digital Filter Response Model from the product page.
It's an Excel file where you can modify the filter settings and see what conversion rates and settling times you're getting.
I just did a calculation in my head there and with 3.9kHz, the settling time is 3 conversions which works out at 0.768 ms, Also note at the bottom of table 16 there's a further delay of 0.256 ms every time you change channels because the ADC is restarted, so that gives you the 1.024ms.
Is the ~1ms good enough? You have 2 ADCs so that's effectively half of it as you can do 2 channels at once.
How many channels do you need to sample and in what time?
Can you do a few samples and then change channels so then you effectively gather more samples in less overall time?
Thanks for the hint. I played a bit with the excel and with filter register values. The best I got is between 1 and 2 ms (i didn't put an exact timer for less than 1 ms interval). It seems that the fAdc is not the problem (3096Hz), but the settling time is (the excel shows 1.02 ms delay). I know next measurement would take less, but my application requires me to change adc config (input channels), so the settling time is delaying the whole thing every time.
I am working on a safety related project, so both channels measure the same input- I need redundancy. Also, due to safety reason, I need to make some self-test during normal execution, so I would measure internal channels (Uadc, ChipTemp...etc), so I would change input channel on each run. So I guess I have to play around this 1 ms value. It's tight for me as my app loop time is 20 ms, and I have to do 5 measurements (normal execution- no self test), compensation calculation. Also, the uc frequency is lowered to 1 Mhz (safety reason).