www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR mit 3V, DS18S20 mit 5V


Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

an meinem ATMEGA644P soll ein DS18S20 angeschlossen werden.
Die Board-Spannung beträgt 3V, liegt also an der untersten Grenze des 
DS1820. Da ich festgestellt habe, dass dass der DS zwar ansprechbar ist, 
jedoch keine Temperaturmessung mehr vornimmt, will ich ihn mit 5V, die 
ich auch noch zur Verfügung stehen hab, versorgen.

Mein Problem:
Wie soll ich den DS mit dem AVR verbinden?

Zur Zeit mache ich es direkt, ich weiß aber nicht ob das auf dauer 
vielleicht schlecht für den AVR ist, da im Datenblatt als max. 
Eingangsspannung Vcc + 0.5V steht.

Viele Grüße
Richi

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen DS18x20 seit vielen Jahren bei 3,0V im Einsatz. Funzt.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Sensor zieht nur runter, nicht hoch, und ist non-parasitär betrieben 
mit Vih=2,2V zufrieden. Wenn der Pullup-R also an 3V hängt, dann darf 
der DS mit 5V betrieben werden.

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deinen Hilfe, das habe ich wohl im Datenblatt übersehen.

Ein weiteres Problem hätte ich noch:

Wenn ich den Convert_T Befel an den DS sende, dann kann man ja laut 
Datenblatt erkennen, wann fertig gemessen ist. Nur wenn ich ein Bit 
lese, ist das sofort 1, was fertig symbolisiert. Beim Ausesen der 
Temperatur kommt immer der Standardwert 85°C.

Kann es sein, dass man vor dem Bit-lesen noch was machen muss?


Viele Grüße
Richi

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richard W. schrieb:

> Kann es sein, dass man vor dem Bit-lesen noch was machen muss?

Dem DS sagen dass er gemeint ist. Sonst hört der nicht zu. Dass die 
Leitung 1 ist besagt i.d.R. nichts, denn das ist sie im Ruhezustand 
immer.

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"If the DS18S20 is powered by an external supply, the master can issue 
read-time slots after the Convert T command and the DS18S20 will respond 
by transmitting 0 while the temperature conversion is in progress and 1 
when the conversion is done."

So steht es im Datenblatt.

Vor dem Bit-Lesen wird der Convert T Befehl gesendet. Muss ich dann 
wirklich neu adressieren? Welchen Befehl muss ich dann vor dem Bit-Lesen 
senden?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manual:

Step 1. Initialization
Step 2. ROM Command
Step 3. DS18S20 Function Command

Zu 2: Wenns nur einer ist, dann SKIP ROM.

Insgesamt wird die obige Sequenz zweimal fällig:

A: Messen (Function Command CONVERT T)
-750ms warten-
B: Auslesen (Function Command READ SCRATCHPAD)

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> A: Messen (Function Command CONVERT T)
> -750ms warten-
> B: Auslesen (Function Command READ SCRATCHPAD)

Ich will es eben ohne 750ms warten machen, es ist ja der max-Wert.

Ich meine was ich nach dem CONVERT T machen muss, damit er mir sagt, ob 
er fertig ist.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richard W. schrieb:
>> A: Messen (Function Command CONVERT T)
>> -750ms warten-
>> B: Auslesen (Function Command READ SCRATCHPAD)
>
> Ich will es eben ohne 750ms warten machen, es ist ja der max-Wert.
>
> Ich meine was ich nach dem CONVERT T machen muss, damit er mir sagt, ob
> er fertig ist.

Vergiss das nachfragen. In der Zeit in der du nachfragst ist der IC auch 
schon fertig.

Nach dem CONVERT_T wartest du eine Zeit lang und holst einfach das 
Ergebnis ab. Kommando READ_SCRATCHPAD.

Natürlich musst du den Chip addressieren oder eben einen SKIP-ROM 
schicken, wenn du nur einen hast.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ist zwar für einen normalen DS1820, d.h. die Auswertung musst du unter 
Umständen anpassen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:

> Vergiss das nachfragen. In der Zeit in der du nachfragst ist der IC auch
> schon fertig.

Öhm, das sind ein paarhundert Millisekunden, nicht Nanosekunden, und der 
AVR ist ein bischen schneller als die ersten Zuses.

Laut Manual kann man bei nicht-parasitärem Betrieb den Sensorstatus 
pollen (1-Bit Leseoperation). Ist aber eher untypisch und ich würde 
nicht ausgerechnet damit anfangen.

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Datei Thermo.c wird auch nur gewartet, zwar nur 100ms (erscheint 
mir kurz).

Mir ist klar dass es mit 750ms warten getan wäre, aber die Methode mit 
dem Pollen dauert nicht so lang. Mit den 1-Bit-Lesevorgängen haut es bei 
mir nicht hin. Es kommt ja immer 1 obwohl der DS noch nicht fertig ist.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richard W. schrieb:

> In der Datei Thermo.c wird auch nur gewartet, zwar nur 100ms (erscheint
> mir kurz).

Das geht, wenn man den DS18B20 verwendet, und ihn auf 9-Bit Genauigkeit 
runterstellt.

> mir nicht hin. Es kommt ja immer 1 obwohl der DS noch nicht fertig ist.

Das passiert, wenn du den DS nicht korrekt ansprichst und er dich 
ignoriert.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> Karl heinz Buchegger schrieb:
>
>> Vergiss das nachfragen. In der Zeit in der du nachfragst ist der IC auch
>> schon fertig.
>
> Öhm, das sind ein paarhundert Millisekunden, nicht Nanosekunden, und der
> AVR ist ein bischen schneller als die ersten Zuses.

Du hast recht.
Der Grund warum das bei mir nie ein Problem war, besteht darin, dass ich 
mit der Sequenz

  while( 1 ) {

   read
   start Messung

   mache irgendwas anderes

  }

arbeite und den Chip sowieso nur alle 2 bis 3 Sekunden abfrage. 
Schneller brauch ich die Temperatur nicht und der Selbsterwärmung des IC 
ist es auch zuträglich, wenn er nicht ständig arbeiten muss.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richard W. schrieb:
> In der Datei Thermo.c wird auch nur gewartet, zwar nur 100ms (erscheint
> mir kurz).

Erhöhe die 100 auf 1000

Die Demo soll zeigen, wie man den IC anspricht und keine fertige 
Applikation sein.

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will weder 100ms warten, noch 1000ms warten.
Ich will das Feature des DS nutzen, mit dem man abfragen kann, ob er 
schon fertig ist!!!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich will, ich will, ich will - mit dem Fuss aufstampf ;-).

Dann mach es halt so, aber mach es richtig. Da keiner ausser dir weiss 
was du machst, weiss auch keiner was du falsch machst.

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am richtig machen scheiterts ja auch.
Ich habe mich jetzt dazu entschlossen, doch die 750ms zu warten.
Ist auch 750mal so leicht. Auf die 100 ms kommts jetzt auch nicht drauf 
an.

Vielen Dank an alle!!!


Gruß
Richi

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richard W. schrieb:
> Am richtig machen scheiterts ja auch.
> Ich habe mich jetzt dazu entschlossen, doch die 750ms zu warten.
> Ist auch 750mal so leicht. Auf die 100 ms kommts jetzt auch nicht drauf
> an.
>
> Vielen Dank an alle!!!
>
>
> Gruß
> Richi

[justMyTwoCents]

Im übrigen... ich habe nach frustrierenden 2 Tagen proggen, nochmal 1 
Tag schaltungsaufwand... und dann ärgern über "ab und zu" falsche Werte 
(7,5°) nach ca. einem halben Jahr "Nerven lassen" die DS18x20 in die 
Tonne getreten und bin auf DS75/ML75 umgestiegen.... Eine Leitung mehr 
opfen für ein gescheites TWI, war mir der ganze Ärger mit den DS18 
Dingern einfach nicht wert! ;)

[/justMyTwoCents]

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.