Forum: Mikrocontroller und Digitale Elektronik HIH-6130 mit einem RP6 auslesen


von Big-G (Gast)


Lesenswert?

Im Netz habe ich ein Beispiel Code vom arduino gefunden:
http://www.phanderson.com/arduino/hih6130.html

Datenblatt:
http://www.farnell.com/datasheets/1676947.pdf



Ich habe einen RP6 an dem ich über I2C einen Feuchtesesnor angeschlossen 
habe, den HIH-6130. Die kommunikation zwischen RP6 und HIH-6130 läuft, 
jedoch erhalte ich keine Werte. Der Status Bit sagt "01", laut 
Datenblatt heißt das:

>When the two status bits read “01”, “stale” data is indicated.
>This means that the data that already exists in the sensor’s
>output buffer has already been fetched by the Master, and has
>not yet been updated with the next data from the current
>measurement cycle. This can happen when the Master polls
>the data quicker than the sensor can update the output buffer.

Die Erklärung zum Feuchtesensor:
http://www.phanderson.com/arduino/I2CCommunications.pdf

Ich verstehe das nicht warum dort alte Werte sein sollen :-S kann mir da 
jemand vielleicht weiterhelfen. Meine vrmutung ist das "Measurement 
Request", aber das habe ich in meiner Programmierung bedacht. Hier mein 
Code vom RP6:
1
#include "RP6ControlLib.h"
2
#include "RP6I2CmasterTWI.h"
3
4
int main(void)
5
{
6
  initRP6Control();
7
  I2CTWI_initMaster(100);
8
  
9
  while(true)
10
  {
11
    uint8_t honeywell[4];
12
    
13
    I2CTWI_transmitByte(0x4E,0x00);
14
    mSleep(50);
15
    I2CTWI_readBytes(0x4F, honeywell, 4);
16
      
17
    writeString_P("\nFeuchtH: ");
18
    writeInteger(honeywell[0], DEC);
19
    writeString_P("\nFeuchtL: ");
20
    writeInteger(honeywell[1], DEC);
21
    writeString_P("\nTempH: ");
22
    writeInteger(honeywell[2], DEC);
23
    writeString_P("\nTempL: ");
24
    writeInteger(honeywell[3], DEC);
25
        
26
    writeChar('\n');  
27
    mSleep(100);
28
  }
29
  return 0;
30
}

Als ergebniss erhalte ich immer:
01       für das Status
  000000 für feuchte high
00000000 für feuchte low
00000000 für temp high
000000   für temp low
      10 "Do not care" lauf Datenblatt

von Big-G (Gast)


Angehängte Dateien:

Lesenswert?

Würde sagen es hängt mit dem MR zusammen. Aber wie kann ich so eine i2c 
kommunikation mit dem rp6 erzeigen, damit der feuchtesesnor anfängt zu 
messen?

von Big-G (Gast)


Lesenswert?

Hat keiner eine Idee für mich???

von Tobias (Gast)


Lesenswert?

Hast du mal versucht noch länger zu warten? Also die Wartezeit vor abruf 
der Daten von 50ms mal auf 500ms verlängern

von Big-G (Gast)


Lesenswert?

Hab den Fehler gefunden. Nach I2CTWI_transmitByte(0x4E,0x00); muss der 
SCK Takt aufhören und nach 50ms kann man i2c wieder ausbauen und den 
Wert abfragen. Ich sag nur: NIE WIEDER EIN SENSOR VON HONEYWELL :-S was 
soll man mit einem Sensor ohne richtigem Datenblatt.

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.