www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Erfahrungswerte Dig. Thermometer DS18B20?


Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe gerade einen DS18B20 mit einem PIC16C745 verheiratet. Im
Datenblatt vom Thermometer ist eine Temperature Conversion Time von max
750ms bei 12Bit angegeben. Bei mir dauert die Convertierung aber nur
etwa 100µs.
Haben die in dem Datenblatt etwa ms mit µs vertauscht? Oder gibt es
einen neueren Typ der wesentilch schneller ist? Was für eine Zeit habt
Ihr gemessen?

Würde mich über ein feedback sehr freuen :-)

Danke und Grüße

Jörg

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

ich habe schon einen DS1820 (sollte in dieser Zeit gleich sein) zum
Testen gehabt. Im Testprogramm waren auch 750ms vorgeschrieben. Damit
funktionierte das Auslesen. Allerdings habe ich das mit einem C51
gemacht.

Grüße

Matthias

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da stimmt was nicht, die Wandlung dauert bei voller Auflösung 750
Millisekunden, pro ein bit kleinerer Auflösung jeweils die Hälfte.

Schau mal, es gibt bestimmt viel Beispielcode für dem PIC.
Mir fällt www.sprut.de ein, aber auch hier im Forum.

Du kannst zwar in 100µs die Daten auslesen, aber entweder es kommt der
Defaultwert (wenn noch keine Wandlung seit dem Einschalten stattfand),
oder der Wert der letzten Wandlung.

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, vielleicht ist es der Letzte Wert den ich auslese denn die
Temperaturwerte die ich rausbekomme machen Sinn!
Laut Datenblatt soll man nach dem Convert T (44h) Befehl mit "Read
time slots" abfragen ob die Umwandlung fertig ist. Der DS gibt lauter
Nullen zurück solange die Wandlung dauert und bei Beendigung sendet er
eine "1". Genau das Macht mein Programm -frägt ab solange der DS eine
"0" zurückgibt und sendet dann den "Read Scratchpad" Befehl um die
Temperatur auszlesen. Und das Ganze geht merkwürdigerweise sehr viel
schneller als im Datenblatt angeben ist. Sehr Merkwürden....

Grüße

Jörg

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg!
Genau so habe ich es auch gemacht und abgefragt, wann die Wandlung
fertig ist. Das klappt in sehr kurzer Zeit und präzise Werte liefert es
auch. Mein BASCOM Prg. habe ich vor einiger Zeit in die Codesammlung
gestellt und sehr viel Schmäh geerntet. Macht aber nichts- es
funktioniert nämlich.

MfG Paul

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So jetzt wollte ich`s genau wissen und habe mal mit dem Support von
Dallas telefoniert.
Die Angabe im Datenblatt ist die maximale Zeit! Das heißt aber nicht,
dass es nicht auch schneller geht. Sie garantieren eben nur, dass
spätestens nach 750ms die Konvertierung fertig ist. Wörtlich:" Was
stört Sie daran, dass es schneller geht?". Na ja, eigentlich bin ich
sehr froh das es so schnell funktioniert.
Und das es funktioniert hat ja auch Paul beobachtet.

In diesem Sinne

Jörg

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg

"Na ja, eigentlich bin ich sehr froh das es so schnell
funktioniert."

Aber definitiv nicht in 100µs. D.h. da ist was faul an Deiner
Endeerkennung.

Und wenn der Sensor an Luft ist, sollte man auch nicht schneller als
jede 5s messen, da sonst eine merkbare Eigenerwärmung auftritt.


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Paul

"sehr viel Schmäh geerntet"

Du hast eine wirklich sehr merkwürdige Auffassung von "Schmäh".

Wenn Dich gutgemeinte Tips stören, wie man die Anzeige gleichmäßiger
hinkriegt usw., dann solltest Du wirklich nichts veröffentlichen.

In meinem Verständnis sind Codebeispiele ja gerade dazu da, um was zu
lernen und nicht, um kritik- und gedankenlos abgekupfert zu werden.


Peter

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nicht das hier ein Missverständis entsteht - ich messe nicht alle 100µs
die Temperatur, sondern die Wandlung dauert so lange. Ich habe nochmal
nachgemessen und 100µs stimmt nicht ganz -sorry. Laut dem Oszi brauche
ich drei "read time slots" bis der DS die Konvertierung als beendet
zurückgibt. Da ein slot 60µs dauert macht das 180µs - immer noch viel
schneller als erwartet!
Daneben habe ich den DS18B20 gegen die Version DS18S20 ausgetauscht.
Die "S" Version liefert die selbe Wandlungszeit.

Ich habe eine neue Theorie woher die 750ms herkommen. Da der Sensor
auch nur über zwei Leitungen betrieben werden kann "parasitär power"
könnte es doch sein, dass nur in diesem Betriebszustand diese Lange
Wandlungszeit benötigt wird -oder?

Grüße

Jörg

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die 750ms sind der Maximalwert.
D.h. wenn du zufällig einen super super sauschnellen DS18B20 hast,
könnte der durchaus schon in 500ms fertig sein.
Größere Toleranzen sind extrem unwarscheinlich.


Ändere mal schnell die Temperatur und schaue, in welchen Abständen
wirklich auch ein neuer Wert angezeigt wird.


Der Fehler liegt mit Sicherheit in Deinem Programm.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.