Forum: Mikrocontroller und Digitale Elektronik SHT75 liest komische Werte


von Andreas B. (baitronic)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe betreibe hier an einem Atmega16 (1 Mhz) einen SHT75. Die
Kommunikation scheint zu funktionieren, ich habe zum großen Teil den
C-Code von Sensirion benutzt und ihn modifizert (für Keil geschrieben,
ich nutze gcc).

Nun bekomme ich bei meinen Messungen irgendwie seltsame werte, die sich
(je nach Erwärmung) auch ändern, allerdings nur in regelmäßigen
Schritten - ich habe hier im Forum auch schon einen ähnlichen Beitrag
dazu gelesen, allerdings hat mir der nicht weitergeholfen.

Lt. datenblatt wird der messwert (die ersten 14 Bit) folgendermaßen
berechnet:

Messwert * 0,01 - 40 = Temperatur

Messwert [errechnete Temperatur]
- 0xE2FF [49,59] (Zimmertemperatur)
- 0xE37F [50,87] (leicht erwärmt)
- 0xE3BF [51,51] (leicht erwärmt)
- 0xE4FF [54,71] (mit Fön erwärmt)
- 0xE4BF [54,07] (mit Fön erwärmt)

Die Werte unterscheiden sich immer genau in Vielfachen von 0,64...

Kann sich das jemand erklären? Habe ich irgendetwas übersehen? Wäre
nett wenn mal jemand einen Blick auf den Code werfen könnte.

Gruß und Danke,

Andreas

von Andreas B. (baitronic)


Lesenswert?

Sorry es sind natürlich nicht die "ersten 14 Bit" sondern die
"letzten" 14 Bit des Messwertes

von Uwe Nagel (Gast)


Lesenswert?

Ein Ausrufezeichen zu viel...
In sht_measure(...) steht:
  while(!SHT_DATA_IN){
     asm volatile ("nop");
  }
Im Datenblatt aber:
Measurement is finished when the SHTxx pulls down the DATA line.

Vermutlich liest du dadurch schon aus, wenn der SHT den ACK vom
Wandelbefehl ausgibt.

Ich habe diesen Democode auch mal angepasst. Das ist eine der wenigen
Stellen, die bei mir deutlich anders sind. Ausserdem hast du ein paar
sehr lange Delays drin, aber ich nehme an nur zu Testzwecken.

Gruß Uwe

von Andreas B. (baitronic)


Lesenswert?

ARRRRRGH klatsch - das war der Fehler, jetzt reagieren die messungen
auch lange nicht mehr so "träge" wie vorher und ich bekomme auch
vernünftige CRC Werte... Ich dachte es läge am Timing...

Danke und Gruß,

Andreas

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.