Forum: Mikrocontroller und Digitale Elektronik Verzweiflung mit HTU21D & ESP8266


von Benjamin M. (berkutta)


Angehängte Dateien:

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

: Bearbeitet durch User
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.