www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SHT75 liest komische Werte


Autor: Andreas B. (baitronic)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas B. (baitronic)
Datum:

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

Autor: Uwe Nagel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas B. (baitronic)
Datum:

Bewertung
0 lesenswert
nicht 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

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.