I'm using the SAADC of an nRF52832. I'd like to reduce the error of my measurements from the nominal +/-3%. I'm calling the NRF_SAADC_TASK_CALIBRATEOFFSET periodically to reduce errors, but I do still measure errors that are in the range of +/-3%. Generally, the error I measure is a relatively constant offset error, even over applied voltage and external temperature.
I've added a 2 point calibration to reduce error. In this calibration, I apply 2 known voltages to a SAADC input, then determine a slope and offset correction to apply to subsequent measurements on that same SAADC input. (The slope and offset are stored in flash. Thus this calibration could be done once in manufacturing, and calibration values used when the device is in operation.)
I've implemented this calibration, and reduced my measurement error to about +/-15mV over the temperature range of 2C to 50C and my input voltage range.
My question: Can expect this reduced error to be stable over many components, components lots, and time? Or could some parts exhibit much high error over temperature, or component lot?