This circuit can be used to determine the core temperature of your PC’s CPU
and display it on a monitor (Fig. 1). Installing such a circuit can help to
ensure that your system’s cooling is adequate. If you’ve upgraded your CPU,
changed its operating frequency, or added a new card, your system may no
longer be operating at a safe temperature. It may require an additional
heatsink, better ventilation, or even active cooling . . . but how can you
tell?
Every current Intel CPU contains an on-chip thermal diode that’s
connected to the external package leads. All silicon diodes have an inherent
temperature dependency of approximately -2 mV/°C. This allows us to
determine the junction temperature by forcing a current through the diode
and then measuring the voltage developed across it.
The ADM1023 system temperature monitor provides a digital output based on
the temperature of the thermal diode with an overall accuracy of ±1°C. It
contains all of the currentforcing, signal conditioning, and
analog-to-digital conversion circuitry required to do so. Data is provided
in two’s complement format. Since the digital output is provided using an
I2C protocol, it can be easily interfaced to a microprocessor or
microcontroller.

In Figure 1, the digital output of the ADM1023 is connected to the PC
printer port through a 74HC05 buffer. The I2C protocol is implemented in
software. This circuit’s low power consumption allows it to be directly
powered from the printer port. Two output lines (6 and 7) are permanently
set high for this purpose. Data in (13), Data out (3), and CLK (2) provide
communication with the PC.
Connection to the CPU thermal diode is made using a twistedshielded-pair
cable such as Belden microphone cable. Such a shield is necessary to prevent
high-frequency clock noise from interfering with the sensitive
forward-voltage measurement. The thermal diode connections on the CPU socket,
THERMDP (anode) and THERMDN (cathode) are connected to D+ and D− pins on the
ADM1023.
For CPU slot 1 cartridge-type configurations using an SC242 connector,
the diode anode is B14 and the cathode is B15. For a PPGA-packaged CPU, the
anode is AL31 and the cathode is AL29. A ground connection on the shield
should be made at both ends of the cable to provide a ground reference for
the circuit.
If you are in any doubt as to whether you have the correct connections,
you can use a DMM diodecheck function to verify the correct pinout. As on a
regular silicon diode, the reading on the thermal diode should be 0.6 to 0.7
V.

The CPU temperature should be recorded while running some form of CPU-stressing
utility or CPU-intensive program. For good, long-term reliability, the CPU
temperature should be less than about 85°C. Figure 2 shows the CPU
temperature being plotted using a graphics utility. Temperature readings
also can be logged into an Excel file. An evaluation board and software are
available. (For more details and the link to this article, visit
www.elecdesign.com and click on the Ideas for Design icon).
It’s possible to expand the circuit, allowing for an additional cooling
fan to be enabled in case of excessive temperature. This may be achieved by
setting a limit register in the ADM1023. An interrupt output could then be
used to turn on the extra cooling fan.