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

nRF52 adc Calibration

Hello, i'm searching for informations about calibrating the SAADC of the nRF52. And i have read here: Link

For nRF52, there are no calibration values that I know of. You need instead to periodically calibrate the SAADC by calling the TASKS_CALIBRATEOFFSET task.

I noticed calling TASKS_CALIBRATEOFFSET improves the Offset, but how often do i have to do that? Do you have some additional information on that?

Additional Info: I'm sampling every 10ms(100Hz) 4 Channels in 12Bit Single Mode.

  1. Battery Voltage
  2. Voltagesignal of an IC
  3. Voltage of an potentiometer 1k
  4. Voltagesignal of an external sensor

Thanks

Parents
  • The SAADC has a slight temperature dependent offset. I've seen up to 7 codes offset in 10-bit differential mode over the valid temperature range. I might be able to guide you more if you can tell me some about the signal statistics, type of analog source, and samplerate.

  • Yes, the TASKS_CALIBRATEOFFSET compensates the temperature drift offset. Yes, I believe 7 codes means 7LSB. So if we assume that this temperature drift is somewhat linear for the whole temperature range, you have perhaps 1LSB offset per 10 deg C, just to realize the scale of the offset error per change in tempertature. So my guess is calibrating every 10 seconds should be sufficient for most situations to keep the offset error as result of temperature drift within 1LSB. There is code here that shows example how to code offset calibration.

    This is rough estimate. If you want something more accurate, you should give Carsten the input he is asking for, or make your own real world evaluation.

Reply
  • Yes, the TASKS_CALIBRATEOFFSET compensates the temperature drift offset. Yes, I believe 7 codes means 7LSB. So if we assume that this temperature drift is somewhat linear for the whole temperature range, you have perhaps 1LSB offset per 10 deg C, just to realize the scale of the offset error per change in tempertature. So my guess is calibrating every 10 seconds should be sufficient for most situations to keep the offset error as result of temperature drift within 1LSB. There is code here that shows example how to code offset calibration.

    This is rough estimate. If you want something more accurate, you should give Carsten the input he is asking for, or make your own real world evaluation.

Children
No Data
Related