Temperaturdiode des AMD XP

Von Arne

Der AMD XP Prozessor hat eine interne Temperaturdiode die direkt die Kern Temperatur misst. Leider können nur sehr wenige Mainboards diese auslesen, nahezu alle Mainboards haben eine Temperatur Sensor unter der CPU, im Sockel, dieser ist natürlich sehr ungenau und vor allem zu träge, im Falle eines Kühlerausfalls steigt die CPU Temperatur rapide, während sich der Sensor im Sockel nur mäßig erwärmt.

In diesem Artikel geht es nun darum, diese Temperatur der CPU direkt auszulesen, und zwar so, dass man sie mit dem Motherboard-Monitor (MBM) auslesen kann.

Taktfrequenzen, Spannungen, und Temperaturen werden im PC über den sog. SMBus (System Management Bus, www.smbus.org) übertragen und können dann von MBM ausgelesen werden. Der SMBus ist eine Weiterentwicklung des I²C Bus der aber mittlerweile so gut wie ausgestorben ist. Der SMBus besteht aus zwei Leitungen, eine Überträgt das Taktsignal des SMBus (Clock) und die andere die Daten (Data). Die verschiedenen angeschlossenen Geräte haben eine eigene Adresse, so werden Konflikte vermieden. Der SMBus arbeitet mit einer Taktfrequenz von 10-100 kHz.



Man benötigt nun einen speziellen IC, der die Daten der Internen Temperatur Diode ausliest und in den SMBus einspeist. Solch eine gibt es von MAXIM (Dallas Semicondutor, www.maxim-ic.com ). Es eignet sich z.B. der MAX 6657. Der MAX 6657 kann eine remote Temperatur (z.B. Temperatur Diode des XP) und eine lokale Temperatur (im IC selbst) messen. Die Lokale Temperatur würde dann z.B. der Gehäuse Temperatur entsprechen.

Die Schaltung

Zuerst einmal die Schaltung:



R1, R2 = 100 Ohm

C1, C2 = 100nF

C3 = 2200 pF

Die 5 Volt Versorgungsspannung bekommt man entweder direkt aus dem Netzteil (Rotes und Schwarzes Kabel) oder aber wie ich aus dem IR Anschluss des Mainboards.
Vom Prozessor kommen drei Kabel und zwar DXP, DXN und GND (Ground, Masse). Zur bestmöglichen Abschirmung nimmt man am besten ein Audiokabel vom CD-Rom Laufwerk.
Zum SMBus gehen zwei Kabel, SMBCLK (Clock Signal) und SMBDATA (Daten Leitung).

Die Kabel vom Prozessor muss man hinten am Mainboard an die Lötstellen vom Sockel anlöten, die Kabel zum SMBus entweder an den Ram Sockel oder aber man hat ein Mainboard mit SMBus Anschluss, dann entfällt hier das Löten.

Die beiden Widerstände (R1, R2) dienen zum einen der Reduzierung der Eingangsspannung (Arbeitsbereich MAX 6657 ca. 3-5 Volt), wären aber eigentlich nicht nötig, die Schaltung funktioniert auch ohne. Zusammen mit den Beiden Kondensatoren (C1, C2) erhält man jedoch Filter, die wunderbar alle Störungen aus der Versorgungsspannung herausfiltern.

Der Kondensator C3 dient zur Glättung des Messsignals, ohne ihn kann es durchaus zu Schwankungen von bis zu 100% kommen und man sollte auf keinen Fall auf ihn verzichten.

Der Praktische Teil

Zuerst wird die Schaltung gelötet, mit ein bisschen Löterfahrung sollte man die Schaltung auf einer Lochraster-Platine gut hinbekommen. Einzige Schwierigkeit bereitet hier der MAX 6657, da dieser ein SMD (Surface Mounting Device) Bauteil ist. Ich habe mich entschieden einfach dünne Kabel an den MAX 6657 zu löten und diese dann auf die Platine zu löten.

Hier ein paar Bilder der fertigen Platine:





Die Masse Leitung ist relativ großzügig ausgelegt, da dieses die Schaltung störunanfälliger machen soll.

Anschluss an die CPU

Nun zu den etwas komplizierteren Teilen. Zuerst muss man die Pins am CPU Sockel identifizieren. Dieses sind die Pins :THDA (Anode) und THDC (Kathode) und die GND leitung lötet man an einen der vier in der Nähe befindlichen VSS Pins. Als GND Leitung dient die schwarze Leitung des CD-Audio Kabels, da dies die Abschirmung des Kabels ist. Die Lage der Pins ergibt sich aus dem Datenblatt des XP Prozessors.



Leider streikte die Digitalkamera während der Löt-Aktion, so das es kein Bild vom CPU-Sockel gibt.

Hier zwei Bilder aus dem Datenblatt um das auffinden der Pins zu ermöglichen:

zuerst eine grobe Übersicht:



Die roten Ecken sind die Ecken der CPU an der keine Pins sind. Die Ansicht ist eine Ansicht von UNTEN, da ihr ja von hinten aufs Mainboard schaut.

Wenn ihr die beiden Ecken ohne Pins identifiziert habt kann es weitergehen, eine Vergrößerung:



Die Lage ist die selbe wie im oberen Bild. In der Ecke oben sieht man noch die Ecke ohne Pins, nun kann man abzählen, wo die Pins sitzen. Gesucht sind die eingekreisten Pins, die Belegung ist noch weiter oben im Artikel auf dem Ausschnitt zu erkennen.

Außerdem kann man ruhig noch einen Blick ins Datenblatt werfen und sich die Seite ausdrucken. Benutzt werden die oben angegebenen Pins, also THDA , THDC , VSS.

Wobei:

THDA (CPU) an DXP (MAXIM) ,

THDC (CPU) an DXN (MAXIM) ,

VSS (CPU) an GND (Schaltung)

angeschlossen wird.

Anschluss an den SMBus

Der Anschluss an den SMBus erfolgt am DDR RAM Sockel , denn hier weiss man, dass der SMBus vorhanden ist und funktioniert, sonst würde der Rechner nicht booten, denn das Bios bezieht hier Informationen über den RAM. Laut einem Datenblatt über DDR Ram (Auszug siehe unten) sind die Pins 91 und 92 die hier nötigen.



Pin 91 = SDA (RAM) = SMBus DATA (Maxim) (im Bild = schwarz)
Pin 92 = SCL (Ram) = SMBus Clock (Maxim) (im Bild = rot )

Hier ein Bild:



Die Pins für den SMBus sind an jedem Ram Slot vorhanden. Man sieht auf dem Bild die angelöteten Kabel und am Slot daneben habe ich die Pins markiert. Der Rote Pin ist Pin 92 , also das CLOCK Signal, der schwarze Pin ist Pin 91, also die DATA Leitung.

Es ist also egal an welchen Slot man die Kabel anlötet, da die Pins sowieso alle verbunden sind (also alle 91er und alle 92er für sich) Die Markierung oben ist nur zur Verdeutlichung am Slot daneben. Was auf dem Bild nicht zu erkennen ist, ist dass es sich um die Seite des DDR RAM Slots handelt, die weniger Pins hat, die kurze Seite. Dies wird aber auch sofort klar wenn man einen Blick in ein DDR Ram Datenblatt wirft.

Auslesen der Temperaturen

Nach dem man die Schaltung nun richtig angeschlossen hat kann man mit dem Motherboard Monitor (MBM) oder ähnlichen Programmen versuchen die Temperaturen auszulesen. Dies stellte bei mir kein Problem dar, da MBM den Maxim Chip sofort erkannte. Man hat zwei Temperaturen zur Auswahl : Lokal und Remote. "Lokal" ist die Temperatur am Maxim selbst, da dieser aber keine Wärme entwickelt, handelt es sich um die Gehäusetemperatur. "Remote" ist in unserem Fall die Temperatur des XP Prozessors.

Hier ein Screenshot von MBM:



CPU und Case sind die Temperaturen vom Maxim. Sockel und Mainboard die vom Mainboard vorgesehenen Sensoren. Meistens zeigen CPU und Sockel die selbe Temperatur an , nur bei Last-Wechseln der CPU reagiert die interne Diode schneller und der Fühler im Sockel ist sehr träge. Die "Mainboard" Temperatur ist höher als die "Case" Temperatur, weil der Sensor auf dem Mainboard schlecht platziert ist und nicht die Lufttemperatur im Gehäuse misst, sondern noch Wärmestrahlung von der Grafikkarte abbekommt.

Benötigte Teile

1x Maxim MAX6657
1x 2200pF Kondensator Typ MKT
2x 100nF Kondansator Typ Keramik
2x 100 Ohm Widerstände
1 Stück Lochrasterplatine (Raster 2,54mm)
1x CD Audio Kabel
1x Steckerleiste (Raster 2,54mm) vergoldet , 10 Pins
1 (langes) Stück normales Kabel, evtl. mit Stecker dran (2,54mm)

(für den Anschluss an den IR-Port für 5V eignet sich ein 4 poliger Stecker, 2,54mm, für den Anschluss an den SMBus (beim RAM) eignet sich am besten ein verdrilltes Kabel)

außerdem noch:
1 Lötkolben mit kleiner Spitze, Lötzinn, Werkzeug (z.B. Seitenschneider) und viel Geduld, besonders beim löten des Maxim.

Zeitaufwand:
ca. 3 - 4 Stunden mit durchlesen der Datenblätter und Ein- und Ausbau des Mainboards.

Datenblätter:
...gibts im Internet

 


 

Vielleicht auch interessant:


Über den Autor

Wenn Arne keine Artikel für planet-rcs schreibt dann programmiert er Webanwendungen in Python und trainiert mit dem Fahrrad für die Vattenfall-Cyclassics.

Feedback