Tip zum Auslesen des DS1820-Temperatursensor

Sep 08, 2005 7 Replies

Hallo,



Ich möchte ein Steuerung programmieren, welche unter anderen die Temperatur über einen Sensor DS1820 ermitteln soll. Der Sensor ist über RS232 mit dem PC verbunden. Im Internet gibt es einige fertige Software in C. Ich will aber gern die Auslesesoftware in Pascal in mein Komplettsystem umsetzen. Nach Studium der Datenblätter ist mir das Auslesen immer noch nicht ganz klar. Kann jemand ein ganz ganz kleines Beispiel für ein einfaches Auslesen der Temperatur des DS1820 bereitstellen, aus dem man das Prinzip erkennt?



Bei Maxim/Dallas gibt es Pseudocode, den sollte man in C umsetzen koenne,

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Bei Maxim/Dallas gibt es Pseudocode, den sollte man in C umsetzen koenne, wenn man das Rad neu erfinden will...

formatting link

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Hallo Michael,

Das geht aber nur wenn auf dem PC keine Interrupts dazwischen funken. Also nix mit Windows. Das Timing am DS1820 muss auf ein paar Mikrosekunden genau sein.

Es gibt einige Apllikationsschriften dazu auf der Dallas Webseite. Nicht nur nach DS1820 suchen, sondern auch nach 1-wire. Leider sind nicht alle AppNotes fehlerfrei, insbesonder die AppNote162 enthält übelste Fehler (zumindest war es noch vor 8 Wochen so):

-- Die Delay-Routine ist natürlich stark compiler-abhängig und muss unbedingt überprüft werden.

-- Seite 11: Die Zeile delay(5) MUSS ersetzt werden durch for( ;read_bit() == 0 ; );

Gruss Michael

Man kann die serielle Schnittstelle das Timing fuer das One-Wire Protokoll erzeugen lassen. Dann ist es voellig timingunkritisch...

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Hallo Uwe,

ok, schreiben könnte ich mir noch vorstellen, aber wie soll das lesen funktionieren? Meinst du RXD und TXD direkt verbunden?

Gruss Michael

formatting link

Wenn man die +-/12 Volt Signale der PC Schnittstelle hat, braucht man noch einen MAX232 o.ae., um auf die 5 Volt fuer die OWI (One-Wire-Interface) Bausteine zu kommen, oder eine anderer trickreiche Schaltung.

Am Mikrokontroller hat man TXD und RXD mit 5 Volt Pegeln. Laeuft bei mir hier mit einem ATmega und avr-gcc.

Tschuess

Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------

Das stimmt ganz sicher nicht, es gibt SW die unter Windows läuft, z.B. pointsix opc, die spricht fast alle 1-Wire Chips an, das Timing für die Chips wird dabei vom RS2321-Wire Wandler(von Maxim) erzeugt.

Ernst

Was ist TOFU? Wieso finden die anderen meine Artikel schwer zu lesen? TOFU steht für "Text Oben, Fullquote Unten". Das ist eine Unart, die einen nicht nur in dieser Newsgroup, sondern im ganzen Netz unbeliebt macht. Lies "Wie zitiere ich im Usenet?": http://www.afaik.de/usenet/faq/zitieren/.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required