Introduction
Dallas Semiconductor uses its unique manufacturing capabilities to provide factory calibrated digital temperature sensors with accuracy as high as ±0.5°C. This level of accuracy is sufficient for many applications; however, some scientific and industrial applications require even greater precision.This application note presents a technique that can allow the user to improve the accuracy of bandgap-based digital temperature sensors by as much as a factor of 10 by compensating for the offset and curvature of the device error characteristic. This method is successful due the simple second order error curve and the repeatable nature of the output over temperature for bandgap-based sensors.
Note that the technique presented in this article can be applied to any IC temperature sensor with a bandgap-based thermal circuit. This technique will not work for Dallas Semiconductor's older thermal ICs, which have a dual-oscillator-based thermal measurement circuit.
Error Compensation
To illustrate the second order error curve inherent to band-gap based sensors, a DS1631 IC was characterized over a -35°C to +85°C temperature range in a thermally conductive liquid bath, and its thermal error relative to a NIST traceable platinum RTD was recorded at 5°C intervals. The results from this sweep are shown in Figure 1 ( = DS1631 bath measurements).Figure 1. DS1631 measured error and calculated error.
The error characteristic shown in Figure 1 makes a second order curve that can be represented by the following equation:
where TTS is the temperature measured by the temperature sensor (the DS1631 in this case), α is a curvature correction coefficient, TZERO_SLOPE is the temperature at which the error curve has zero slope, and OFFSET is the error at TZERO_SLOPE.
After determining values for α, OFFSET and TZERO_SLOPE such that Equation 1 provides a close fit to the temperature sensor's output error curve, the user can calculate the approximate measurement error at any temperature and then compensate for the error by subtracting the calculated value from the measured temperature. Thus, the compensated temperature is:
For the best results with this technique, each temperature sensor should be characterized over the desired temperature range in order to determine the best fit calculated error curve for the specific device.
Example
This example uses the characterized DS1631 to illustrate the compensation technique described above. Table 1 lists the values measured by the DS1631 and the error of the measurements relative to the actual ambient temperature. From examining Figure 1, TZERO_SLOPE can be estimated to be 15°C and OFFSET to be approximately -0.23°C, for which α = 1.28 x 10-4 provides a very close fit to the measured error curve (see Figure 1). Plugging the measured temperatures into Equation 2 results in the compensated temperatures shown in Table 1. The error of the compensated temperature relative to the ambient temperature, as shown in Table 1 and Figure 2, is up to 10 times lower than the error of the original measurements.Figure 2. Example compensated error.
Note that it may take several iterations to arrive at values for TZERO_SLOPE, OFFSET, and α that provide the best fit curve. Once initial estimations for TZERO_SLOPE and OFFSET have been made, α can be calculated with readily available math or spreadsheet software.
Table 1. Compensation example data
Ambient Temperature* | Measured Temperature | Measured Error | Compensated Temperature | Compensated Error |
-43.1377 | -42.9375 | 0.20015 | -43.13603 | 0.001619 |
-39.3466 | -39.25 | 0.0966 | -39.39572 | -0.04912 |
-34.2368 | -34.125 | 0.11182 | -34.20308 | 0.033737 |
-29.0969 | -29.0625 | 0.03443 | -29.08036 | 0.016573 |
-24.1398 | -24.125 | 0.01481 | -24.09042 | 0.049389 |
-19.2454 | -19.3125 | -0.06715 | -19.23280 | 0.012547 |
-14.0779 | -14.1875 | -0.10964 | -14.06626 | 0.011603 |
-9.10834 | -9.25 | -0.14166 | -9.09507 | 0.013266 |
-4.08784 | -4.25 | -0.162158 | -4.06731 | 0.020535 |
0.769446 | 0.5625 | -0.2069459 | 0.76589 | -0.00356 |
5.831063 | 5.625 | -0.206063 | 5.84378 | 0.012717 |
10.84934 | 10.625 | -0.22434 | 10.85256 | 0.003216 |
15.79473 | 15.5625 | -0.23223 | 15.79246 | -0.00227 |
20.79082 | 20.5625 | -0.22832 | 20.78855 | -0.00227 |
25.70361 | 25.5 | -0.20361 | 25.71593 | 0.012315 |
30.74484 | 30.5625 | -0.18234 | 30.76158 | 0.016741 |
35.60317 | 35.4375 | -0.16567 | 35.61418 | 0.011006 |
40.57861 | 40.4375 | -0.14111 | 40.58489 | 0.006284 |
45.68797 | 45.5625 | -0.12547 | 45.67325 | -0.01472 |
50.56738 | 50.5 | -0.06738 | 50.56911 | 0.001733 |
55.58933 | 55.5625 | -0.02683 | 55.58245 | -0.00688 |
60.51409 | 60.5625 | 0.04841 | 60.52748 | 0.01339 |
65.35461 | 65.4375 | 0.08289 | 65.34273 | -0.01188 |
70.54241 | 70.6875 | 0.14509 | 70.52161 | -0.0208 |
75.40949 | 75.625 | 0.21551 | 75.38579 | -0.0237 |
80.41012 | 80.75 | 0.33988 | 80.42811 | 0.017987 |
85.26303 | 85.6875 | 0.42447 | 85.27961 | 0.016576 |