DS18S20 Temperature Sensor

Erfahrungen mit der Hardware und der "digitemp" Software für Win / Linux

   

 
Der Temperatur Sensor Dallas DS1820 mit dem "1-Wire"-Protokoll wird sehr häufig eingesetzt für intelligente Temperaturmessungen mit Rechnern. Gerade der Anschluss an PC- oder ähnliche Rechner über die RS232-serielle Schnittstelle ist weit verbreitet. Das Bauteil ist kalibriert, liefert eine absolut gemessene Temperatur auf 1/2 Grad genau und erlaubt rechnerisch eine höhere Auflösung. Die Kabellänge kann bis zu 5-20 m bertragen.

Das Innenleben des DS1820 wurde kürzlich geändert, von der Genauigkeit verbessert und ist heute (2004+) nur noch als DS18S20 erhältlich. Die im Web publizierte passive Adapterschaltung DS9097 (hier oder hier) ist einfach aber funktioniert gerade mit dem neuen Bauteil nicht immer. In meinem Fall erkannte das SW-Paket "digitemp" immer dias Bauteil und die Bauteil-ID (auch mehrere) zeigte als Temperatur aber immer nur "85C" an (aka "Ich messe Mist")..

In den Dallas Product Informationen wird erwähnt, dass während der Temperaturwandlung der DS18S20 "merklichen Strom" zieht (~ 2mA) und dabei ziemlich sensibel ist für Spannungsänderungen oder Störungen auf der DATA/DQ-Leitung, besonders im 'parasitic mode' (Zweidraht-Anschluss). Die einzige Lösung, eine Messung zum Laufen zu bringen war der Einbau einer zusätzlichen Versorgung des VDD-Anschlüsses des DS18S20, weiterentwickelt aus einer veröffentlichten Idee von Marcel Tränhard..

.

Die Schaltung ist nur geringfügig aufwändiger als die Standard-Schaltung DS9097. Der Widerstand R3 verursacht einen zusätzlichen Spannungsabfall in der DTR-Leitung. Die R4 - C4 Kombination lädt den Tantal-Kondensator C1 auf etwa 4 Volt (DC) auf, genug um den Baustein DS18S20 durchgehend mit Spannung zu versorgen. Der Widerstand R2 dient zur Anpassung an die Leitungsimpedanz RXD und kann auch durch eine Drahtbrücke ersetzt werden, wenn Kostenrahmen, Leitungslänge oder -qualität es erlauben.

Bei dem Betrieb der Interface-Schaltung an der RS232-Schnittstelle eines Laptop oder tragbaren Computers kann es zu Fehlfunktionen kommen, weil die Pegelspannungen der Schnittstelle zu gering sind. Legal darf der Pegel auch +/- 5 Volt anstelle der vorgesehenen +/- 12 Volt betragen ("V24" - Schnittstelle), die zum Betrieb wie hier dargestellt nicht ausreicht.


  Stückliste /Bill of Materials:


Unten ein Bild des nun funktionierenden Prototyps. Zur Verbesserung der thermischen Reaktionszeit wurde in den Deckel des Gehäuses eine Nickelmünze eingeklebt und der Sensor auf der Innenseite mit 5-Min-Epoxy befestigt.

Die Win-Version von digitemp erkennt den Sensor und liefert eine interpolierte Temperaturmessung..


Tips zur Auswertung der Ergebnisse der Digitemp Messungen gibt es hier

neu: USB-to-1-wire Adapter und Schaltungsdetails

Bei der standard USB Versorgungsspannung eines Computers von 4.5 ...5.5 Volts ist die direkte Verwendung mit einem Pullup-Widerstand zur Versorgung des "1-wire bus" möglicherweise unzureichend. Ein solcher Pullup-Widerstand liefert bei dem Bus-"High"-Signal nur noch wenig bis keinen Strom. Deswegen ist hier ein 100 kHz Oszillator aus ein paar Gattern eines 74HC14 sechsfach Inverters vorgesehen, der eine Rechteckspannung liefert, die gleichgerichtet und zur USB-Betriebsspannung addiert wird, womit gerade knapp 10 Volt Spannung entstehen. Die gleichgerichtete Spannung wird mit einem C-R-C-Filter mit Tantal-Elkos gefiltert und stabilisiert. Für einen Pulldown-Strom "Low" von 2,5 mA wird ein Widerstand von 3,9 kOhm eingesetzt..

 
Die 3-5 uH Spule dient zur Strombegrenzung in der Gleichrichterschaltung und der Verringerung der Hochfrequenzstörungen. Bei dieser niedrigen Spannung und hohen Frequenz ist der Einsatz von Schottky-Diodes für den Gleichrichter angeraten.
Die Versorgung der "1-wire"-Schnittstelle aus einer höheren als Nominalspannung bringt höhere Ströme für die an den Bus angeschlossenen Bauteile bei einem "high"-Pegel. Eine Stromquelle würde bei allen Bus-Spannungen 100% Strom liefern, diese Schaltung noch ca. 50% des Pulldown-Stromes beim "high"-Pegel. Hinzu kommt eine saubere Form der steigenden Pulse-Flanke am Bus.

Am DQ Ausgangsknoten begrenzt eine Serienschaltung aus Schottky- und Zenerdiode die maximale "1-wire"-Bus-Spannung auf etwa 5,3 Volt. Die umgekehrt angeschlossene pn-Diode 1N4148 verhindert negative Eingangsspannungen bei Störimpulsen von der Leitung. Die Gatter des 74HC14 erkennen die Bus-Signale, kehren sie ggfs. um und liefern sie an den USB-Baustein.. Das 47 Ohm/ 470 pF Tiefpass-Filter verringert Störungen und bildet eine Art Busabschluss.Der 22 Ohm Widerstand dient auch zum Busabschluss und begrenzt die Spitzenströme bei Impulsstörungen..

Der BS170 Transistor bildet die"TXD Sende-" Pulldown Stufe, die beim Daten-Senden vom Computer den "1-wire-Bus" auf null zieht.. Der 33 Ohm Gatter Widerstand verringert das Risiko von HF-Schwingungen..

In Verbindung mit Linux, ubuntu 10.04, opensuse 11.3 oder ähnlich, verlässt sich die Schaltung auf den eingebauten FTDI-Kernel-Treiber für den USB-Baustein,.der eine standard RS232 Schnittstelle nachbildet.Nach dem Einstecken der Schaltung in den USB-Anschluss wird der FTDI-Treiber automatisch aktiviert. Nach der Installation der neuesten digitemp-software muss man die Schaltung initialisieren (..-i..).Der FTDI Treiber installiert einen neuen nachgebildeten seriellen /dev/ttyUSB0 Port (..-s..). Eingabe an der Kommandozeile ...

user#: /usr/bin/digitemp_DS9097 -i -s/dev/ttyUSB0 -cdigitemp.conf

Vorausgesetzt das zeigt die Sensoren und Typnummern wird gemessen mit ..

user#: /usr/bin/digitemp_DS9097 -a -s/dev/ttyUSB0 -cdigitemp.conf

Hilfe gibt es bei /usr/bin/digitemp_DS9097 -h (help)


 

zurück zur Leitseite


Bei Lese- oder Druckerschwierigkeiten kurze email an:  m.hamann_at_ostfalia.de
last revision 06.05.2011 mhn