CN0153: USB Based Temperature Monitor Using the ADuC7122 Precision Analog Microcontroller and an External Thermistor

Разработаны. Протестированы. Готовы к интеграции.Узнать больше


Преимущества и особенности
  • Typical temperature range of -90 C to +150 C
  • Thermistor temperature monitor
  • Single chip solution with ARM 7 processing core
  • Контроллеры температуры
  • Датчики и интерфейсы датчиков
  • Высокотемпературные продукты


This circuit shows how the ADuC7122 precision analog microcontroller can be used in an accurate thermistor temperature monitoring application. The ADuC7122 integrates a multichannel 12-bit SAR ADC, twelve 12-bit DACs, a 1.2 V internal reference, as well as an ARM7 core, 126 kB flash, 8 kB SRAM, and various digital peripherals, such as UART, timers, SPI, and two I2C interfaces. The ADuC7122 is connected to a 4.7 kΩ thermistor.

Due to the small form factor of the ADuC7122 (7 mm × 7 mm, 108-ball BGA package) the entire circuit will fit on an extremely small PCB, thus further reducing cost.

Similar in function to an RTD, thermistors are low cost temperature sensitive resistors and are constructed of solid semiconductor materials, which exhibit a positive or negative temperature coefficient. Thermistors are inexpensive and have high sensitivity. They detect small variations in temperature, which could not be observed with an RTD or a thermocouple. However, thermistors are highly nonlinear; thus, they are limited to applications with very narrow temperature ranges if linearization techniques are not applied. Circuit linearization techniques can be accomplished in software; however, that will not be discussed here.

Despite the powerful ARM7 core and high speed SAR ADCs, the ADuC7122 still provides a low power solution. With the ARM7 core running at 326.4 kHz and the primary ADC active and measuring the external temperature sensor, the entire circuit typically consumes 7 mA. Between temperature measurements, the ADC and/or the microcontroller can be switched off to further save on power consumption.

Figure 1. ADuC7122 Used As a Temperature Monitor Interfaced to a Thermistor (Simplified Schematic, All Connections Not Shown)


The circuit shown in Figure 1 is powered entirely from the USB interface. The 5 V supply from the USB is regulated to 3.3 V using the ADP3333 3.3 V low dropout linear regulator. The regulated 3.3 V supplies the DVDD voltage to the ADuC7122. The AVDD supply to the ADuC7122 has additional filtering as shown. A filter is also placed on the USB supply at the input of the linear regulator.

The following features of the ADuC7122 are used in this application:

  • 12-bit SAR ADC
  • ARM7TDMI® core: The powerful 16-/32-bit ARM7 core with integrated 126 kB flash and SRAM memory runs the user code that configures and controls the ADC, processes the ADC conversions from the thermistor sensor, and controls the communications over the UART/USB interface.
  • UART: The UART was used as the communication interface to the host PC.
  • Two external switches\buttons (not shown) are used to force the part into its flash boot mode: By holding DOWNLOAD low and toggling the RESET switch, the ADuC7122 will enter boot mode instead of normal user mode. In boot mode, the internal flash may be reprogrammed through the I2CWSD tool utilizing the USB interface.
  • BUF_VREF: The band gap reference also connects through buffers to the BUF_VREF1 and the BUF_VREF2 pins, which can be used as a reference for other circuits in the system. A minimum of 0.1 μF capacitor should be connected to these pins to reduce noise.
  • The thermistor used in the circuit is a 4.7 kΩ resistor, model number NCP18XM472. It is available in a 0603 surface-mount package. The thermistor used in the circuit in Figure 2 has the following specifications at 25°C: β = 3500 (the β parameter describes resistance as a function of temperature), resistance (R25) = 4.7 kΩ

    The USB interface to the ADuC7122 is implemented with an FT232R UART to USB transceiver, which converts USB signals directly to the UART protocol.

    In addition to the decoupling shown in Figure 1, the USB cable itself should have a ferrite for added EMI/RFI protection. The ferrite beads used in the circuit were Taiyo Yuden, BK2125HS102-T, which have an impedance of 1000 Ω at 100 MHz.

    The circuit must be constructed on a multilayer PC board with a large area ground plane. Proper layout, grounding, and decoupling techniques must be used to achieve optimum performance (see Tutorial MT-031, Tutorial MT-101, and the ADuC7122 Evaluation Board layout).

    The input thermistor circuit in Figure 2 is designed to produce accurate temperature measurements from 0°C to 90°C. Note that this system contains no temperature calibration. This circuit contains a simple thermistor circuit that does not contain circuit linearization. If this circuit employed linearization techniques, it could function over a broader range of temperatures; however, this would decrease the resolution of the sensor

    Figure 2. Simple Temperature Sensor Circuit Implemented with the ADuC7122

    The circuit in Figure 2 is setup in a voltage divider configuration. This will allow us to transform the ADC result, D, into a measurement of the resistance of RTH (thermistor) using the following formulas:


    Once the resistance of the thermistor has been calculated, the Steinhart-Hart equation can be used to determine the current temperature of the sensor.

    Using the following formula the ADuC7122 is able to determine the sensor temperature:



    T2 = unknown temperature

    T1 = 298K

    β = β parameter of the thermistor @ 298K or 25°C. β = 3500

    R25 = resistance of thermistor @ 298K or 25°C. R25 = 4.7 kΩ

    RTH = resistance of thermistor @ unknown temperature as calculated by formula above

    Figure 3 plots the response of the ADuC7122 to the thermistor sensor detailed in Figure 2 over temperature.

    Figure 3. ADuC7122 Thermistor Sensor Measured Output (Converted to Volts) with ADC0 vs. Temperature


    The source code and a HyperTerminal configuration file used to test the attached circuit can be downloaded as a zip file at

    The UART is configured for a baud rate of 9600, 8 data bits, no parity, no flow control. If the circuit is connected directly to a PC, a communication port viewing application such as HyperTerminal can be used to view the results sent by the program to the UART. See Figure 4. The source code is commented to make it easier to understand and manipulate. The code was compiled and tested using the Keil μVision 3 application.

    Figure 4. Output of HyperTerminal Communication Port Viewing Application


    The ADP3333 (3.3 V) can be replaced with the ADP120 (2.5 V), which has a wider operating temperature range (−40°C to +125°C) and consumes less power (typically 20 μA vs. 70 μA) but has a lower maximum input voltage range (5.5 V vs. 12 V). Note that the ADuC7122 can be programmed or debugged via a standard JTAG interface. For a standard UART to RS-232 interface, the FT232R transceiver could be replaced with a device such as the ADM3202, which requires a 3 V power supply.

    The thermistor circuit described here can be adapted to operate with other precision analog microcontrollers, such as the ADuC7020 series, the ADuC7023, and the ADuC7061 series.


    Products Description Available Product Models to Sample
    ADP3333 Прецизионный LDO-стабилизатор anyCAP® с крайне низким Iq, выходной ток 300 мA ADP3333ARMZ-2.5-R7 ADP3333ARMZ-5-R7 ADP3333ARMZ-3.15R7 ADP3333ARMZ-1.8RL7 ADP3333ARMZ-3.3-R7
    ADUC7019 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7019BCPZ62I
    ADUC7020 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7020BCPZ62 ADUC7020BCPZ62I
    ADUC7021 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7021BCPZ62I ADUC7021BCPZ32 ADUC7021BCPZ62
    ADUC7022 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7022BCPZ62 ADUC7022BCPZ32
    ADUC7023 Прецизионный аналоговый микроконтроллер, 12-битная подсистема аналогового ввода/вывода, ядро МК ARM7TDMI ADUC7023BCPZ62I ADUC7023BCP6Z62I
    ADUC7024 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7024BSTZ62 ADUC7024BCPZ62I ADUC7024BCPZ62
    ADUC7025 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7025BCPZ32 ADUC7025BCPZ62 ADUC7025BSTZ62
    ADUC7026 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7026BSTZ62 ADUC7026BSTZ62I
    ADUC7027 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7027BSTZ62 ADUC7027BSTZ62I
    ADUC7028 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7028BBCZ62
    ADUC7029 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI MCU ADUC7029BBCZ62 ADUC7029BBCZ62I
    ADUC7121 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI MCU ADUC7121BBCZ
    ADUC7122 Precision Analog Microcontroller, 12-Bit Analog I/O, ARM7TDMI® MCU ADUC7122BBCZ
    Оцените схему X
    content here.
    content here.

    Оцените схему