DS75-Temperatursensor von Dallas

Irgendwie grabe ich momentan alte (in die Tonne getretene) Projekte wieder aus, um es noch einmal zu versuchen.
Nachdem ich mich mit dem Nokia-LCD austobte (und es tötete :( ), gab es wieder Langeweile. Irgendwo im Regal lagen noch zwei DS75 von Dallas/Maxim herum.

Also schnell wieder das Datenblatt von dem IC besorgen und es noch einmal durchlesen...
Die Ansteuerung sieht schon sehr nach I²C aus, ist es aber nicht.
Irgendwie macht Dallas da sein eigenes Ding: SMBus. Bei manchen Computerfreaks dürfte es jetzt klingeln - SMBus wird auch bei PC-Diagnose (Spannungen, Temperaturen, Lüfter, ...) eingesetzt.

Der Unterschied zwischen I²C und SMBus ist (zumindest beim DS75) nicht groß. Es gibt neben ACK (Acknowledge) noch NACK. Mehr nicht.

Noch ein paar Eckdaten, weil's so schön ist:
- Messbereich -55°C bis +125°C
- ±2°C Toleranz zwischen -25°C und +100°C
- 9 (Standard) bis 12 Bit Auflösung (0.5°C und 0.0625°C)
- Betriebsspannung zwischen 2.7 und 5.5V
- Stromaufnahme: 1µA (Standby), 100µA (Kommunikation) und 1mA (Messung)
- sehr kleine Bauform ("Hühnerfutter")

Wenn man will, kann man 8 der ICs gemeinsam über die gleiche Leitung agieren lassen - folglich muss man den IC adressieren.
Ist aber halb so schlimm, wie man denkt. Schlimmer ist nur die Bauform des ICs:
Ich habe mir vor einem Jahr unwissend DS75U (µMAX-Gehäuse) bestellt.
Was kam an? eine kleine Plastikbox mit noch kleineren ICs. Gerade einmal 5x5mm groß. Lochraster: nein, lieber nicht - etwas vernünftiges musste her!
Ich selbst bin immer noch zu "blöd" zum ätzen aber zum Glück fielen bei Robert (IRC) wieder ein paar Bauten an und er ätze mir freundlicherweise ein paar Platinen mit.

Das Layout war sehr schnell entworfen, die Lötpads sind stinknormale Leiterbahnen, für die Adressierungen sind Brücken, die danach weggefräst werden können, vorhanden. Damit der Sensor nicht unnötig zu schwingen anfängt, sitzt neben ihm ein 100nF-Kondensator.
Trägerplatine für DS75
Anschlussbelegung (von unten nach oben): VDD, GND, SCL, SDA. Rechts neben SDA ist noch ein Pad für den Alarmausgang, der für den Betrieb am PC allerdings nicht zwingend notwendig ist.
Hier das Board als Eagle-Datei: DS75.brd (19,3 KB)
Aber Vorsicht bei der Eagle-Datei - die einzelnen Platinchen sind sehr eng beieinander, mit 0.7mm breiten Trennscheiben kommt man gerade noch durch!

Natürlich wird der das ganze wieder am Parallelport betrieben - alles andere ist für Warmduscher :>

Anschlussbelegung an den Parallelport (Sub-D):
SCL an Pin 1
SDA an Pin 14
SDA über 470-Ohm-Widerstand an Pin 10
Vcc an Pin 9
GND an Pin 18-25

Zum Softwareteil gibt es eigentlich nicht viel zu sagen.
Der Aufbau ist ähnlich wie bei meinen anderen Modulen, nur dass dieses mal (noch) die Portauswahl fehlt.

Da ich an der alten Version schade fand, dass die Sensoren nicht automatisch erkannt wurden und mir ein paar Feature fehlten, habe ich eine neue (noch nicht fertige) Version geschrieben.
Die Bedienung ist ähnlich einfach wie bei der alten Version:
Es wird signalisiert, welcher Sensor angeschlossen ist (grau: nicht vorhanden, grün: vorhanden, blau: Frostwarnung - in Zukunft selbstdefinierbar)
Über einen Rechtsklick auf den Sensortitel kann selbiger geändert werden, bei einem normalen Klick wird die Temperatur zusätzlich unten angezeigt
Vor der gemessenen Temperatur befindet sich jetzt eine Tendenzanzeige. Damit die Anzeige nicht bei jedem hundertstel Grad reagiert, habe ich eine Toleranz von 0,05K eingebaut.
Rechts oben an dem Temperatur-Rahmen befindet sich ein kleiner Pfeil, mit dem die Anzeige der Extremwerte ein- und ausgeschaltet werden kann.
Die Minimal- sowie Maximalwerte können durch einen Klick auf den jeweiligen Wert gelöscht werden. Bei einem Klick auf das X unten werden alle Minimal- bzw. Maximalwerte gelöscht.
Der Button Optionen ist wohl selbsterklärend ;)
Momentan fehlt noch die Protokollierung, wird aber noch kommen... ...irgendwann...

Download:
Modul: DS75 I2C (Code-Highlighting, DS75.bas und I2C.bas befindet sich im Beispiel)
Programmbeispiel: DS75-Beispiel (VB6)