# Calibrating ADC for calibration-free temperature measurement

I have an application for a 10-year completely sealed battery-powered Bluetooth temperature measurement system providing an accuracy of +/-0.5C over a range of 0C to 50C. The device cannot be calibrated during its working life, and I'd prefer not to calibrate in production. The simplest solution is something like a Si7054, which has a +/-0.4C acccuracy and a 0.01C drift per year = +/-0.5C. Great. $1.20 / 1K units. However, can I do better/cheaper with fixed resistors, an NTC thermistor, and a ratiometric measurement using an onboard ADC? For instance: NTC Thermistor:0.5% 100K, Beta 0.5%,$0.174/1K (TDK NTCG104ED104DT1X)
Resistor 0.1% 100K, 25ppm/C = 0.1625% $0.066/1K (ARCOL APC0603B100KN)  Estimation of total accuracy ~1.1625%, cost$0.24

Now the bad part: The nrf52810 BLE IC has a +/-3% error on the 12-bit ADC after its internal calibration. The system error is > 4.2% once you account for propagation of errors. My understanding is that NTC sensors change ~4-5%/C so now we have an error of ~+/-1C. Darn.

Is there a simple way to calibrate this error out? The nRF52 can perform internal offset error calibration against ground. It seems using precision resistor dividers or fixed voltage references to provide a second reference point would allow me to figure out gain error and get enough accuracy. Am I missing anything here? Any other sources of error? Words of wisdom from the experienced?

• What is the error budget for your ADC , and it's Vref and how will you verify that? If you dont measure error during production, how confident are you of any design that it will work? Apr 13, 2018 at 15:57
• Hi Tony, the Vref will be the battery voltage, which will also be applied to the NTC/Resistor divider so the measurement will be ratiometric. With the ~1.2% error on the divider, I'd like a maximum error of < ~1.3% on the ADC. Apr 13, 2018 at 16:02
• You can get -2.3mV/'C on a 1 cent diode using a 10uA current source with a 0.1uF cap // 33pF for RF but then your accuracy depends on Vref bandgap diode. so the Si7054 or Si7053 seems a better choice. Apr 13, 2018 at 16:21
• What do you mean with accuracy ~1.1625%? You could omit the about-sign (tilde) and round the percentage to 1 digit, at the most 2 digits, but certainly not 5 digits :-) Dec 31, 2019 at 10:42

Yes, you can do this, but I would suggest using time rather than an ADC if possible. Particularly if you need to measure a wide range, since you'll quickly run out of resolution with a thermistor due to their nonlinearity.

The general idea is to switch the same circuit between measuring a fairly precise reference resistor selected to be near mid-scale or the resistance corresponding to the most important temperature and measuring the sensor. That eliminates most of the errors and you don't need a precision reference voltage or much of anything else.

You could do that with an ADC too, especially if you have access to the reference to make the whole measurement ratiometric (eliminating the absolute value of the reference). You might have issues with linearity of the ADC though, depending on how is it made. Rather than using the same series resistor (which would be, in theory, better) you could use an additional pair and tighten up the tolerance (0.1% is pretty cheap these days).

Virtually all cheap temperature measurement circuits in consumer goods (< 100°C or so) work with the time (frequency) method.

However, based on certain experiences, I don't particularly trust thermistors at higher temperatures. You can evaluate that risk for yourself.

• I am unclear on using time vs. an ADC. Could you provide a link to an example of this? Also, yes, I intend to use the precise 0.1% divider as a second, known source to measure alternating with the temperature sensor. The battery voltage will be the ADC reference. However, sources I've read about calibration suggest setting the voltage divider to 90% of the range of the ADC. Any idea why 50% or 90% would be better? Apr 13, 2018 at 22:49
• Mostly the chips are asics, but almost any RC oscillator configuration can be used in conjunction with an RC or crystal clock. Even a CMOS 555 or a PIC containing equivalent circuitry. Because of the extreme nonlinearity midscale at 50% with an ADC is usually best because you lose accuracy and resolution rapidly on either side. Apr 14, 2018 at 3:28

As Spehro Pefhany has already has pointed out, a relaxation oscillator is a good idea. It works the same way as a capacitive touch button, but where the resistance is changing the RC time-constant instead of the capacitance. This means that you can re-use capacitive touch implementations like this one, although you'll need an external current source(not available on the nRF52810).

If you want to use the SAADC instead you'll need to use differential inputs, calibrate the offset of the SAADC at a few degrees interval, and oversample a lot. The SAADC is temperature calibrated in production from the fab. With a Wheatstone bridge and VDD/4 as the voltage reference you can get surprisingly accurate results.

If you know the thermal response of the resistor you can set the operating range of the sensor with the other resistors in the wheatstone bridge, thereby increasing the resolution. You will also be able to compensate for the non-linearity in SW. The SAADC of the nRF52 series can handle <1µA sources at low sample rates, which means that you can get an extremely long battery life.