Forum: Mikrocontroller und Digitale Elektronik EOC Pin von BMP085 immer High


von St. S. (clean-energy)


Lesenswert?

Hallo,

ich schreibe gerade eine Bibliothek für den BMP085. Es funktioniert auch 
schon alles bis auf eine Sache.

Ich wollte zum Schluss noch die delays für das Warten bis Ende 
Konvertierung (ADC BMP085) durch die Abfrage des EOC Pins ersetzten. 
Leider habe ich nun festgestellt, dass der EOC-Pin des BMP085 immer auf 
High liegt und nicht wie im Datenblatt steht während der Konvertierung 
auf Low geschaltet wird.
Hättet ihr eine Idee an was das liegen kann.
Habe schon versucht mit und ohne internen Pullup (Atmega32). Leider 
keine immer das Gleiche.
1
.
2
.
3
.
4
//Send Stop on the Bus
5
if (*error_code==0){
6
 *error_code=i2cSendStop();
7
}
8
9
while(!(PINC & (1<<PC2))){
10
_delay_us(1);
11
};
12
  
13
/*_delay_ms(16);*/  // min time is 15ms
14
  
15
if (*error_code==0){
16
 pressure = bmp085ReadShort(0xF6,error_code);
17
 pressure = pressure << 8;
18
 pressure = pressure >> (8-OSS);
19
}
20
.
21
.
22
.

Könnte es sein, dass der Sensor beim löten etwas abbekommen hat. Mit 
delay funktioniert er allerdings ohne Probleme.

Wäre sehr dankbar, falls jmd. noch eine Idee hätte was ich probieren 
könnte. (Ich leider nur Multimeter keine Oszi)

Vielen Dank im Voraus!

Beste Grüße,

von Tom (Gast)


Lesenswert?

Bei mir funktioniert es mit ausgeschalteten Pullups. Den Pin natürlich 
auf Eingang schalten.
Wenn das nicht klappt, evlt. die Pins am BMP085 nachlöten (am besten, 
wenn vorhanden, mit einer Heißlufstation).
Empfindlich ist der Sensor übrigends nicht. Hab meinen schon mehrmals 
Ein- und Ausgelötet.

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.