Forum: Mikrocontroller und Digitale Elektronik SHT11 falscher Rückgabewert


von chrigu (Gast)


Lesenswert?

Hallo zusammen,
ich betreibe den SHT11 an einem AtMega16, leider gibt es ein Problem 
beim auslesen der Messwerte.
Nachdem der Sensor die Messung gemacht hat, zieht er die Data Leitung 
gegen GND. Danach lese ich die Werte aus.
Die ersten beiden Bits sind immer auf "0", die nachfolgenden alle auf 
"1". Da ich in der zwischenzeit nichts am Port des uC ändere(weder 
Zustand noch DDR) kann das Problem nur beim Sensor liegen.
Ich habe die Vermutung, dass der Sensor die Messung nicht durchführt. 
Was könnte der Grund sein? Ist er defekt? Hat vieleicht jemand die 
gleiche Erfahrung gemacht?
Der Befehl zur Messung der Temperatur hat der Sensor mit einem ACK 
quittiert!
Mit freundlichen Grüssen
chrigu

von Joerg X. (Gast)


Lesenswert?

Im Datenblatt steht, dass der µC die Daten vom Sensor nach jedem Byte 
mit ACK bestätigen muss, "[ ... ]the controller may terminate the 
communication after the measurement data LSB by keeping ack high."
und dass die ersten 2 Bytes 0 sind ist auch logisch: der sensor liefert 
max. 14Bit "right-aligned", d.h. zwei Mal 0 vor dem eigentlichen Wert. 
(Alle Informationen aus dem Datenblatt )

von chrigu (Gast)


Lesenswert?

Hallo Joerg,
danke für deine Antwort,
das mit den 2 Nullen am Anfang dachte ich mir. Und das ACK schicke ich, 
oder besser gesagt der Mikrocontroller auch schön brav nach jedem Byte. 
Trotzdem, die restlichen Bits, die der SENSOR schickt, sind auf High, 
egal ob Temperatur oder Feuchtigkeitsmessung.
Gibts noch andere Ideen, woran es liegen könnte?
Gruss & Danke

von Joerg X. (Gast)


Lesenswert?

Kannst du mal Sourcecode posten? wahrscheinlich ist da der Fehler.. ;)

von chrigu (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Joerg,
hier poste ich mal den Sourcecode, den ich verwende. Das h-file befindet 
sich am Ende des humid.c Files.
im main rufe ich die Funktion
TemperatureSHT11Func()
auf.

Ich möchte nochmals die Frage in die Runde werfen:
wenn der Sensor ein ACK zurückschickt, nachdem der uC den Befehl 
gesendet hat, ist das eine Garantie, dass der Sensor den Befehl korrekt 
erhalten hat?

Ausserdem ist mir aufgefallen, dass das Data Signal nach dem ACK des 
Sensors langsam (innerhalb ca. 10ms) auf 2.5V sinkt.


Danke für eure Bemühungen
chrigu

von chrigu (Gast)


Lesenswert?

Hallo Joerg,
du musst dich nicht mehr weiter bemühen, den Fehler zu finden. Der 
Fehler war beim Sensor, respektive bei der Verkabelung. Die Speisung war 
nicht sauber gelötet, leider habe ich nie direkt am Pin gemessen, daher 
fand ich es nicht von Anfang an raus. Das erklährt dann auch den 
Spannungsabfall an der Data Leitung!
Trotzdem danke für deine Hilfe!
mit freundlichen Grüssen
chrigu

von Joerg X. (Gast)


Lesenswert?

:)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.