Nun zum DS1620 von Dallas. Dieser Temperatursensor ist im PDIP-Gehäuse verfügbar, was ihn für den Basteleinsatz empfiehlt.

Er erfasst einen sehr großen Temperaturbereich in 0,5°C Schritten. Die Wandlungszeit für eine Temperatur beträgt etwa 200ms. Zusätzlich bringt er noch Termostatfähigkeiten mit. Die Kommunikation mit dem MC geschieht über ein 3-Wire-Interface, wie es im Datenblatt heißt.

Die Thermostatfunktion kennt eine obere und eine untere Temperaturschwelle. Diese können durch den Anwender definiert werden. Bei über- bzw. unterschreiten der jeweiligen Schwelle gibt es am jeweils korrespondierenden Pin des DS1620 ein Schaltsignal.
Die Temperatur wird durch einen 9-Bit Wert repräsentiert, welcher in Zweierkomplement-Darstellung ausgegeben wird. Der Sensor arbeitet zwischen +125 und -55°C. Alle vom Anwender festgelegten Einstellungen (Thermostat) werden in einem nichtflüchtigen Speicher gesichert. Sie bleiben somit auch nach Unterbrechung der Spannungsversorgung erhalten.

Pin-Nr. Bezeichnung Beschreibung
1 DQ Ein- bzw. Ausgang
2 CLK Takteingang
3 /RST Reset
4 GND Masse
5 TCOM Thermostat
6 TLOW Thermostat
7 THIGH Thermostat
8 VDD +5V

Auf die Termostatfähigkeiten des Sensors werde ich hier nicht näher eingehen, da die Bewertung der Temperaturverläufe von der Software des AVRs vorgenommen wird. Auf die interne Logik des IC kann verzichtet werden.

3-Wire Kommunikation

Die für den 3-Wire Bus benötigten Leitungen sind /RST, CLK und DQ. Jegliche Kommunikation beginnt dadurch, dass /RST auf H-Pegel gesetzt wird. Ein Setzen auf Low beendet die Kommunikation. Ein Taktzyklus besteht aus einer fallenden gefolgt von einer steigenden Flanke. Daten werden vom Sensor mit der steigenden Flanke übernommen. Die Datenausgabe erfolgt mit der fallenden Flanke und kann bis zur steigenden Flanke übernommen werden. Die Datenübertragung erfolgt mit dem niederwertigsten Bit (LSB) voran.
Es sollten nur die folgenden Befehle an den Sensor gesendet werden, das Senden von nicht spezifizierten Befehlen kann eine Beschädigung des Sensors verursachen (steht zumindest im Datenblatt...). Ich habe im folgenden nur die Standardbefehle aufgelistet, die Thermostatfeatures können dem Datenblatt entnommen werden.

Befehl Wert Beschreibung
Read Temperature AAh Liest das Ergebnis der letzen Temperaturkonvertierung aus. Während der folgenden 9 Taktzyklen wird es ausgegeben.
Start Convert T EEh Starten einer Temperaturwandlung. Je nach Inhalt des Konfigurations-/Status-Registers wird eine einzelne Wandlung gestartet bzw. eine Dauerkonvertierung initiiert.
Stop Convert T 22h Stoppen jeglicher Konvertierung.
Write Config 0Ch Nach dem Senden des Befehls wird mit den nächsten 8 Taktzyklen der in das Konfigurationsregister zu schreibende Wert übernommen.
Read Config ACh Nach dem Senden des Befehls wird mit den nächsten 8 Taktzyklen der im Konfigurationsregister befindliche Wert gesendet.

Das Konfigurations-/Status-Registers

DONE THF TLF NVB 1 0 CPU 1SHOT

DONE
Wenn dieses Bit gleich 1 ist, so wurde eine Wandlung abgeschlossen. Andernfalls ist der Sensor gerade dabei.

THF, TLF
Thermostatfunktionen

NVB
Indikator dafür, ob gerade ein Schreibvorgang auf dem internen EEPROM vorgenommen wird. Ein solcher kann bis zu 10ms dauern.

CPU
Muss in unserem Fall immer eins sein, da der Sensor mit dem MC über das 3-Wire-Interface kommunizieren soll.

1SHOT
Ist dieses Bit 1, so führt der Sensor immer nur eine Temperaturwandlung durch (Start Convert T). Ist es gleich 0, so werden ständig Wandlungen durchgeführt. Das Benutzen dieser Modi hängt davon ab, ob die Zielapplikation über ausreichende Energieressourcen verfügt. Logischerweise kostet eine Dauerwandlung mehr Energie, als eine zu bestimmten Zeitpunkten durchgeführte Wandlung, da der Sensor in der Zwischenzeit in eine Art Standby-Modus wechselt.

Das von mir hier bereit gestellte Beispielprojekt hat bei weitem nicht alle Fähigkeiten des Sensors implementiert. Vielmehr beschränkt es sich darauf, den Sensor korrekt zu konfigurieren (CPU-Mode, Dauerwandlung + Start der Dauerwandlung) und die gewonnene Temperatur auszugeben. Wer die anderen Features des Sensors nutzen möchte, dem kann das Projekt und die darin enthaltene gut kommentierte Bibliothek als Basis für die restlichen zu implementierenden Funktionen dienen. Das Archiv ist, wie alle meine Projekte, auch unter der Rubrik Programme verfügbar.

 

Zurück zur Startseite.