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.