AVR mit 3V, DS18S20 mit 5V

OP #2029453
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
OP #2029587
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
OP #2029614
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?
#2029641
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.
#2029652
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.
OP #2029670
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.
#2029675
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.
#2029711
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren