Consumer and commercial thermal applications all rely on temperature sensors. Simpler applications, such as electronic thermometers monitoring outdoor temperatures or temperature monitors inside vehicles, only report ambient temperatures. More complex applications may use temperature data in a control loop, taking actions based on the data. For example, HVAC systems control heating and air-conditioning units to achieve desired indoor temperatures; battery systems control battery charge currents to prevent overcharging of batteries; optical transceivers control laser outputs; and computer memory modules employ thermal management techniques. These are just some of the many applications in which temperature sensor accuracy is vital for performance. Let’s examine the accuracy and interfaces of currently available integrated, discrete and active temperature sensors that address an operating range of –25 to +100 °C.
Integrated Temperature Sensors
By addressing board space and bill of materials (BOM) cost constraints, a microcontroller (MCU) with an integrated temperature sensor can provide a cost-effective, single-chip solution for obtaining temperature data. Temperature sensors integrated into MCUs will likely share similarities with the architecture shown in Figure 1, where a temperature sensor connects internally to one of the multiple inputs of an MCU's analog-to-digital converter (ADC). The voltage across the temperature sensor varies with temperature according to Equation 1. Firmware interfaces to the temperature sensor by reading the ADC output register and applies Equations 1 and 2 to calculate the temperature.
The accuracy of these systems in units of degrees Celsius is usually not readily apparent because it is not explicitly listed in the MCU data sheet. Instead, the data sheet specifies the temperature sensor characteristics in terms of slope, slope error, offset and offset error. Additionally, these error sources are exacerbated by errors in the ADC voltage reference. For example, let us assume an MCU has a 10-bit ADC and the following characteristics:
- Temperature sensor slope = 2.8 ± 0.03 mV/°C
- Temperature sensor offset = 770 ± 9 mV
- ADC voltage reference = 2.4 ± 0.05 V
If the temperature sensor, ADC and voltage reference are considered ideal and without error, the ADC output will be 329 at 0 °C and 448 at 100 °C, using Equations 1 and 2. Accounting for error, an ADC output of 329 can correspond to approximately 0 ± 9 °C, and an ADC output of 448 can correspond to approximately 100 ± 12 °C.
In applications where error on the order of ±12 °C is not acceptable, three calibration techniques can be used to minimize the error. First, address the ADC voltage reference error by measuring the ADC voltage reference with an external voltmeter. Save this measurement so that software can use it in future computations of Equation 2.
Second, address the temperature sensor offset error by performing a one-point calibration. Place the MCU at a known, fixed temperature and take an ADC measurement. After applying Equations 2 and 1, the calculated temperature may differ from the known temperature. Save this difference so that firmware can adjust the offset accordingly in future calculations of Equation 1.
Third, firmware can address the temperature sensor slope error by performing a two-point calibration. First, perform the one-point calibration. Then, repeat the one-point calibration at a different temperature. These two data points will provide the slope according to Equation 3. Save this slope so firmware can use it in future computations of Equation 1.
All three calibration techniques should be used once on each MCU since errors will vary from device to device. The MCU temperature sensor is much more accurate, but the product production test increases in time and complexity.
Discrete Temperature Sensors
Temperature sensors are traditionally available as discrete components with tight tolerances to reduce problems with test time and complexity presented by integrated temperature sensors. Resembling the block diagram of the temperature sensor integrated into an MCU (Figure 1), firmware interfaces to the temperature sensor by reading the ADC output register as shown in Figure 2. The temperature sensor is now a discrete component external to the MCU and can be positioned at a distance, allowing the sensor to operate across a wider temperature range than the MCU. Discrete temperature sensors may require amplification to use the full scale of the ADC. Any additional components for amplification and filtering (not shown in Figure 2) will further increase BOM cost.
The voltage across the discrete sensor varies with temperature, but the variation is not guaranteed to be linear, as is the case with resistance temperature devices (RTDs) and thermistors. Thus, firmware should perform a linearization algorithm. In addition to errors in the amplifier and the sensor’s inherent nonlinearity, the ADC voltage reference remains an applicable source of error. With discrete temperature sensors, higher accuracy is traded for an increased BOM cost, additional code space and execution time for linearization, and additional board real estate.
Active Temperature Sensors
Active temperature sensors offer a variety of outputs. Figure 3 shows a voltage output that is linear to temperature, resembling an integrated temperature sensor. The output may require amplification to use the full scale of the MCU’s ADC. The active temperature sensor’s data sheet explicitly states accuracy on the order of ±2 °C. However, systems with this type of sensor are subject to errors from the amplifier and the ADC voltage reference. Therefore, the developer should use the previously discussed technique to calibrate the ADC voltage reference.
Another active temperature sensor reports temperatures via an industry-standard communications protocol such as SMBus or I2C. Figure 4 shows an MCU interfacing to this type of active temperature sensor. The sensor reports the temperature in degrees Celsius, and firmware is not needed to convert and linearize ADC output values. Accuracy is on the order of ±2 °C and does not require the linearization or calculation algorithms of both discrete and integrated sensors. Firmware only requires the routines to send commands and fetch information over the communication interface. With this type of active temperature sensor, higher accuracy is traded for increased BOM cost and additional board area.
An Ideal Temperature Sensor Solution
Temperature sensors are available with different interfaces and varying degrees of accuracy. High accuracy is achievable if BOM cost, production test time and complexity, code space, execution time and board area are not strict design constraints. An ideal solution would provide high accuracy, an accessible interface and none of the drawbacks of integrated, discrete and active temperature sensors. One such solution is the C8051F39x MCU family from Silicon Labs. These highly integrated, 8051-based MCUs contain an on-chip temperature sensor with °C resolution and ±2 °C accuracy across –40 to +105 °C without user calibration. Temperature is reported in degrees Celsius as a 2s complement number to a register for ease of access by firmware.
MCUs with integrated temperature sensors help minimize BOM costs in applications that require accurate temperature sensing, such as optical transceiver modules, HVAC systems and motor control systems. Mixed-signal MCUs containing highly-accurate temperature sensors can be used to enhance temperature compensation routines, resulting in more reliable, higher quality end products. Integrated temperature sensors with best-in-class accuracy also help reduce manufacturing costs by minimizing the need for user calibration.
About the Author
Stephen To is an applications engineer supporting Silicon Labs’ microcontroller product line. He joined Silicon Labs in 2008 and holds a BSEE from the University of Texas at Austin.
Related Content: Silicon Labs unveils MCU plus temperature sensing