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.

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)