This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52832 SAADC error versus temperature

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?

Parents
  • Hi,

    It looks like your calibration method is similar to the one described in this answer. There will be some deviation from device to device, so you will have to calibrate the SAADC for every device to get the reduced error you want.

    If you want to make the SAADC output more stable then you could enable oversampling, or connect a capacitor to reduce noise, description on this blog. Offset calibration is also recommended. Oversampling and offset calibration is coded here.

    Best regards,

    Jørgen

  • Jorgen - Thanks for the response. Yes, my method is similar to the link you provided. I am already using an external capacitor and running the offset calibration. And yes, I understand I need to perform both the offset calibration periodically and my 2 point calibration for every part.

    My question is this: If I do this 2 point calibration on every part, how stable will it be over my voltage range, temperature, and time? Will the error be a function of component lot? I'm going to characterize this error over my voltage and temperature range for a small number of parts, but I am concerned that all parts are from the same lot and this error might be a function of component lot. I don't want to "get lucky" with a good lot of parts, and later find out that even the calibrated error can change, more than I expect, over temperature or time.

Reply
  • Jorgen - Thanks for the response. Yes, my method is similar to the link you provided. I am already using an external capacitor and running the offset calibration. And yes, I understand I need to perform both the offset calibration periodically and my 2 point calibration for every part.

    My question is this: If I do this 2 point calibration on every part, how stable will it be over my voltage range, temperature, and time? Will the error be a function of component lot? I'm going to characterize this error over my voltage and temperature range for a small number of parts, but I am concerned that all parts are from the same lot and this error might be a function of component lot. I don't want to "get lucky" with a good lot of parts, and later find out that even the calibrated error can change, more than I expect, over temperature or time.

Children
No Data
Related