Though it doesn't seem to be mentioned in the product specification, I've confirmed the hint from https://github.com/NordicPlayground/nRF52-ADC-examples/tree/master/saadc_low_power that SAADC calibration time is dependent on both the `OVERSAMPLE` value and the contents of `SAADC->CH.CONFIG`, in particular for acquisition time. Questions arise:
* Is calibration improved by setting OVERSAMPLING to a non-zero value?* Is calibration improved by using TACQ_40us instead of the default TACQ_10us?* Are there other changes to the ADC sampling configuration that would require calibration be re-run, e.g. changes to GAIN, MODE, or REFSEL?
I've noticed when measuring battery voltage on Thingy:52 that calibration does not always produce the same result (i.e. for a 3.9 V signal I might get values that range between 3.88 +/- 0.01 or 3.92 +/- 0.01: i.e. the samples are tightly grouped but are offset by a value that's presumably a result of calibration.
I have forwarded your questions to our HW engineers. I will get back to you when I get an answer.
I'm forwarding reply from our HW developers:
1) Calibration can be improved by setting oversample, but the accuracy is limited by internal DAC.
2) TACQ should not affect the offset calibration accuracy. Even TACQ at 3µs will allow the sampling network to settle fully.
3) No, the only effect we've seen is that offset will drift over temperature. The SAADC has been designed such that GAIN and REFSEL will not affect the offset. The MODE will affect the offset, as you in single ended will get twice the offset error referred to the input (single ended mode is really differential mode with N input grounded).