Verzweiflung mit HTU21D & ESP8266

OP #4500967
Lesenswert?

Hallo,

Versuche derzeit einen HTU21D Humi & Temp mit einem ESP8266 zu koppeln. 
Mit einem Atmega8 habe ich das auch schon problemlos hinbekommen. Mit 
der i2c_master implementierung von Espressif will das ganze jedoch 
irgendwie nicht tun. Weshalb ist mir noch nicht wirklich klar.

Der Sensor fühlt sich schon gar nicht angesprochen beim beginn (Siehe 
Oszi Screenshot). Es wird jedoch genau dieselbe Adresse angesprochen..

Hat evtl. jemand hier schonmal etwas ähnliches realisiert und kennt 
evtl. einen Fallstrick o.ä. welcher mir gerade widerfährt?

Verwendete C Code auf dem ESP8266:
1
  
2
system_soft_wdt_stop();
3

4
char status;
5
  
6
i2c_master_start();
7
i2c_master_writeByte(0b10000000);
8
status = i2c_master_getAck();
9
i2c_master_writeByte(0xE3);
10
status = i2c_master_getAck();
11
i2c_master_stop();
12
  
13
i2c_master_start();
14
i2c_master_writeByte(0b10000001);
15
status = i2c_master_getAck();
16
  
17
byte1 = i2c_master_readByte();
18
i2c_master_setAck(1);
19
byte2 = i2c_master_readByte();
20
i2c_master_setAck(1);
21
byte3 = i2c_master_readByte();
22
i2c_master_setAck(0);
23
i2c_master_stop();
24

25
system_soft_wdt_restart();

Verwendete C Code auf dem Atmega:
1
//Start temp meassurement
2
i2c_start();
3
i2c_transmit(0b10000000);
4
i2c_transmit(0xE3);
5
i2c_stop();
6
     
7
i2c_start();        
8
i2c_transmit(0b10000001);
9
data1 = i2c_read(1);    
10
data2 = i2c_read(1);
11
data3 = i2c_read(0);
12
i2c_stop();

Benjamin
Angehängte Dateien:

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