BMP085 an Raspberrypi B+ funktioniert nicht

Gast #3952707
Lesenswert?

Hallo,

ich habe den Sensor BMP085 an einen Raspberrypi B+ angeschlossen.

Die Pins sind wie folgt miteinander verbunden:
1
BMP085         RPI B+
2

3
SDA            SDA1 (GPIO2)
4
SCL            SCL1 (GPIO3)
5
VCC            3,3 V (externe Spannungsversorgung) 
6
GND            GND (externe Spannungsversorgung)
GND (PIN 6) des RPI B+ habe ich mit GND der externen Spannungsversorgung 
verbunden. Sonst hängt kein externer Sensor am I2C Bus.

Ich bin nach folgendem Tutorial vorgegangen,
http://willy-tech.de/luftdrucksensor-bmp085-raspberry-pi-anschliessen

und bekomme nach Eingabe des Befehls i2cdetect -y 1 folgenden output:
1
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
2
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
3
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
4
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
5
30: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
6
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
7
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
8
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
9
70: -- -- -- -- -- -- -- --
An Adresse 0x77 wird kein Sensor erkannt. Die Verdrahtung habe ich 
mehrere Male überprüft und das Tutorial bin auch mehrere Male 
durchgegangen. Der Sensor wird einfach nicht erkannt. Ich habe das 
Internet schon durchsucht aber es funktioniert nichts.


Kann es sein, dass der Sensor "ne Macke" hat? Wie kann ich den Sensor 
prüfen? Weiß noch jemand einen Rat?


Gruß
kwi
Gast #3952855
Lesenswert?

Schaltplan liefere ich nachher nach.

Software habe ich noch keine, weil ich schon daran scheitere, das der 
Sensor vom Raspbian erkannt wird. Wie im Tutorial beschrieben, habe ich 
folgende Pakete nachinstalliert:

     sudo apt-get install python-smbus i2c-tools

Mit dem Befehl i2cdetect hätte er dann auf Adresse 0x77 was anzeigen 
müssen.

Das Raspbian selbst habe ich Gestern erst aktualisiert, mit den 
Befehlen:

     sudo apt-get update und
     sudo apt-get upgrade

Da in dem Tutorial keine Pullup Widerstände erwähnt wurden, habe ich die
auch nicht angeschlossen, bzw. aktiviert.

Einen Logik analyzer oder ein Oszi habe ich leider nicht.
Gast #3953516
Lesenswert?

Ich habe den Schaltplan angehängt. Der RPi ist über ein USB Netzteil 
(2A) angeschlossen. In der Software, mit der ich den Schalplan erstellt 
habe, war leider nur ein Schaltbild eines alten RPi verfügbar. Die 
beiden betroffenen GPIOs SDA und SCL sind bei dem RPi B+ an Pin 3 und 
Pin 5. Als OS ist das Raspbian Debian Wheezy Image vom Dezember 2014 und 
den Updates vom 5.1 installiert.

Zum Testen ob der Sensor erkannt wird benutze ich i2cdetect. Pullup 
Widerstände habe ich jetzt angeschlossen und i2c-bmc2708 und i2c-dev 
aktiviert.

Oszi und Logik Analyzer habe ich nicht. Was ich gemacht habe ist, mit 
einem Multimeter an EOC die Spannung gemessen. Nach jedem beendeten 
Messzyklus des Sensors soll dort ein High Pegel anliegen. Bei mir liegen 
dort ständig 2,4 Volt an.
Angehängte Dateien:
Gast #3955113
Lesenswert?

Der Chip wird aber nicht am I2C Bus des RPi erkannt. Eigentlich müsste 
er die Adresse 0x77 haben. Da ist aber keine Adresse zu sehen, wenn ich 
i2cdetect ausführe. Der Pin (EOC) des Chips, an dem ich die 2,4 Volt 
messe, ist nicht für das Datenauslesen gedacht. Laut Datenblatt liegt 
ein High Pegel an EOC an, wenn der Messzyklus beendet ist.
#3955308
Lesenswert?

Die Pullups sind die 4k7 Widerstände auf dem Modul. Einfach ablöten.

Funktioniert so bei mir mit dem Raspi B. Der i2cdetect gibt ja etwas 
aus, insofern ist das von der Software beim Raspi ok.

Der Raspi hat schon Pullups auf dem Board, daher dürfen keine weiteren 
Pullups vorhanden sein (siehe Schematic in der Anlage).
Angehängte Dateien:
Gast #3955621
Lesenswert?

Vielen vielen Dank an alle für euere Antworten.


foo schrieb:
> P.S.:
> Warum verwendest du überhaupt eine externe 3,3V-Quelle?
> Diese Spannung kannst du dir doch auch am RPi-Board abholen.

Weil ich den RPi nicht überlasten will. Es soll nicht nur das eine Modul 
betrieben werden. Es folgen noch ein paar Sachen, wie z.B. ein Servo, 
ein Display, Motoren, Ultraschallsensoren und ein Port extender. Für 
alle diese Bauteile wollte ich gerne eine separate 3,3V-Quelle.

foo schrieb:
> Schließ doch mal einen anderen IIC-Chip dort an. Vielleicht funktioniert
> ja noch nicht einmal dieses "i2cdetect".

Ich habe leider keinen anderen I2C Chip. Ich habe bisher nur SPI Module 
verwendet.

Pete K. schrieb:
> Die Pullups sind die 4k7 Widerstände auf dem Modul. Einfach
> ablöten.
Sind das die 2 schwarzen SMD Bauteile links oder die helleren rechts 
daneben?

> Funktioniert so bei mir mit dem Raspi B. Der i2cdetect gibt ja etwas
> aus, insofern ist das von der Software beim Raspi ok.
OK

> Der Raspi hat schon Pullups auf dem Board, daher dürfen keine weiteren
> Pullups vorhanden sein (siehe Schematic in der Anlage).
D.h. nach meinem Schaltplan sind jetzt 4 Pullups verbaut. Was passiert, 
wenn zu viele verbaut sind?
Müssen die Pullups der beiden GPIOs des RPi extra aktiviert werden, wenn 
I2C konfiguriert ist oder macht das der RPi durch die I2C Konfiguration 
selbst?
#3956797
Lesenswert?

Die Pullups auf dem BMP085 Modul sind schwarz und mit 4k7 beschriftet. 
Du solltest SMD Widerstände von Kondensatoren unterscheiden lernen :-)

Der Raspi kann die Pullups nicht ausschalten, weil sie wie im Schaltplan 
ersichtlich diskret aufgebaut sind, d.h. es sind reale Widerstände auf 
der Platine vorhanden.

Also bitte auf dem BMP-Modul ablöten (eine Seite reicht, dann den 
Widerstand etwas anheben. So bleibt der Widerstand mit einer Seite auf 
dem Modul kleben und geht nicht verloren).

Trau Dich :-)

P.S.: Nach Deinem Schaltplan sind 6 Pullups verbaut. 2 auf dem BMP085, 2 
auf dem Raspi und 2 von Dir.
Gast #3956883
Lesenswert?

Pete K. schrieb:
> Die Pullups auf dem BMP085 Modul sind schwarz und mit 4k7
> beschriftet. Du solltest SMD Widerstände von Kondensatoren unterscheiden
> lernen :-)
Mache ich. Ich lerne nie aus.

> Der Raspi kann die Pullups nicht ausschalten, weil sie wie im Schaltplan
> ersichtlich diskret aufgebaut sind, d.h. es sind reale Widerstände auf
> der Platine vorhanden.
Danke

> Also bitte auf dem BMP-Modul ablöten (eine Seite reicht, dann den
> Widerstand etwas anheben. So bleibt der Widerstand mit einer Seite auf
> dem Modul kleben und geht nicht verloren).
>
> Trau Dich :-)
Mache ich.
>
> P.S.: Nach Deinem Schaltplan sind 6 Pullups verbaut. 2 auf dem BMP085, 2
> auf dem Raspi und 2 von Dir.
Oh man. Wer rechnen kann ist klar im Vorteil.

Vielen Dank für die Hilfe.

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