Forum: Analoge Elektronik und Schaltungstechnik BMP085 starkes Rauschen


von Jansen (Gast)


Lesenswert?

Hallo!

Ich experimentiere momentan mit einem BMP085-Drucksensor herum, aber 
kriege leider immer sehr starke Schwankungen in den Druckmessungen. Der 
Sensor sollte ja bei OSS=2 ein maximales Rauschen von 5 Pa haben, ich 
habe bei all meinen Messungen jeweils ein Noise-Level von 30 Pa.

Ich verwende die Code-Beispiele hier aus dem Forum bzw. eine auf den 
Code von JeeLab basierenden Version. Temperatur & Luftdruck stimmen zwar 
im "Groben" (d.h. auf hPa) Ebene gut mit realen Werten überein, aber da 
ich Höhenänderungen messen will ist das Rauschen mein Problem. Selbst 
die "rohen" Messwerte (vor dem Umrechnen in den realen Luftdruck) 
unterliegen diesen starken Schwankungen.

Wo dran könnte dieses Rauschen liegen? Ich habe schon versucht einige 
Kondensatoren verschiedener Größe direkt an die Spannungsversorgung des 
Sensors zu packen, und auch die ganze Schaltung nur über eine 3.3V 
Lithium Batterie zu versorgen. Alle Versuche irgendwelche "störenden" 
Wechselströme (PWM, ...) zu deaktivieren, haben auch nicht geholfen.

Ist der Sensor einfach defekt, oder überseh ich irgend etwas? Ich würde 
mich über Ratschläge & Ideen freuen!

von Martina (Gast)


Lesenswert?

>Der Sensor sollte ja bei OSS=2 ein maximales Rauschen von 5 Pa haben, ich
>habe bei all meinen Messungen jeweils ein Noise-Level von 30 Pa.

5Pa ist ein Effektivwert. Der Peak-Peak-Wert ist dagegen 6,6 x 5Pa = 
33Pa.

Warum machst du denn kein Software Averaging?

von Jansen (Gast)


Lesenswert?

Mach ich; aber bei 8 Samples/Messung läuft leider dennoch auf recht 
starke Schwankungen hinaus. Hmm.

von Martina (Gast)


Lesenswert?

Zeig mal deine Schaltung und das Layout.

von XMEGA (Gast)


Lesenswert?

Hallo,

Jansen schrieb:
> oder überseh ich irgend etwas

schau dir mal die Stromversorgung an:

http://www.pixelproc.net/pic24bmp085lcd.html


Gruß XMEGA

von Tom (Gast)


Lesenswert?

Was willst du genau erreichen? Höhenbestimmung? Wie schnell so das 
System reagieren? 30 Pa ist doch in Ordnung. Das entspricht einer 
Höhenänderung von ca. 25 cm. Besser kannst du das nur mit einen 
Mittelwert über mehr Werte erreichen. Wenn du die Höhenänderung genauer 
und schneller willst, darfst du eben keinen Drucksensor nehmen...

von Jansen (Gast)


Lesenswert?

Hi!

Danke für alle eure Antworten. Entspricht in Nähe des Meeresspiegels 
(0-500m) eine Änderung von 11,7 Pa einer Höhenänderung von 1m? Da sind 
3m "Rauschen" schon ganz schön viel. Ich möchte im Endeffekt wirklich 
wie bei einem Variometer Höhen-Änderungen messen. Die grobe Tendenz 
bekomm ich zwar auch hin, aber das Rauschen zerstört die Messwerte 
einfach komplett.

Ich bin leider deshalb mit dem ganzen Problem auch noch nicht wirklich 
weiter. Selbst wenn ich über eine Sekunde lang Messwerte sample, erhalte 
ich immer noch ein Rauschen von etwa 3 Pa, also 26cm. Das ist zwar 
selber nun in einem akzeptablen Rahmen, aber 1 Hz ist nicht gerade die 
gewünschte Abtastrate ..

@XMega: Danke, das muss ich mir mal näher anschauen. Ich hab leider 
momentan keine passenden Drosseln/.. hier, aber eigentlich dürfte da 
auch kein so starkes Rauschen auf der Spannungsleitung sein -- 
schließlich hängt an dieser Schaltung zum Testen wirklich nur ein 
Lithium 3.3V Akku, und ein ATMega8L. Es könnte höchstens sein, dass der 
zum Testen verwendete UART Max232 noch ein Rauschen reinbringt. Hmm. Hab 
leider aber auch kein Oszilloskop hier.

von Martina (Gast)


Lesenswert?

Naja, wenn du uns Schaltplan und Layout nicht zeigst, können wir auch 
nicht helfen!

>@XMega: Danke, das muss ich mir mal näher anschauen. Ich hab leider
>momentan keine passenden Drosseln/.. hier, aber eigentlich dürfte da
>auch kein so starkes Rauschen auf der Spannungsleitung sein --
>schließlich hängt an dieser Schaltung zum Testen wirklich nur ein
>Lithium 3.3V Akku, und ein ATMega8L.

Natürlich kann da schon zu sarkes Rauschen sein! Spendiere dem VDDA 
Eingang wenigstens versuchshalber eine zusätzliche Siebung mit 10...100R 
und 47µF. Schirme das Teil außerdem vor Zugluft und Vibrationen ab.

von Jansen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo nochmal!

Ich habe jetzt einige Zeit mit dem Sensor selber rumprobiert. Sowohl auf 
zwei verschiedenen Platinen, als auch auf Breadboardschaltungen und 
ähnlichem; mit Spannungsreglern, und ohne Spannungsreglern direkt an 
Batterien, ... - Unter die ~30 Pa Noise (Min <->) Max kommt man 
scheinbar nicht.

Das ganze dient dem Bau eines kleinen Solarvarios, und funktioniert 
inzwischen auch ganz brauchbar. Das mit dem Noise stört jedoch schon. 
Ich frage mich nun, welches der beste Software-Averaging-Algorithm ist 
-- Alle haben scheinbar ihre Vor- und Nachteile.

Entweder ich habe selbst bei gleichbleibender Höhe ständiges 
unterschiedliches Piepsen (also "Höhenschwankungen"), oder das 
Variometer reagiert sehr träge (d.h. erst nach 1-2 Sekunden). Wie lösen 
die professionellen Variometer das Problem?

Momentan verwendee ich einen Algorithmus, der das Ganze in drei 
Schritten glättet:

(a) über 995ms Samples aufnehmen, und anschließend den Durchschnitt aus 
Minimal und Maximalwert errechnen, d.h. p = (max+min)/2. Ich nehme diese 
Version, da ich hier auf ein geringeres Rauschen komme (Kann das 
eigentlich überhaupt?)

(b) Eine kleine I-D-Stufe, welche die Änderungsgeschwindigkeit misst, 
und diese mit Averaging auch noch einbringt.

(c) Als letzter Schritt pDiffNeu = (pDiffAlt + pDiffNeu)/2

Hat jemand schon einmal damit rumexperimentiert und bessere Ideen?

von Jens G. (jensig)


Lesenswert?

>(a) über 995ms Samples aufnehmen, und anschließend den Durchschnitt aus
>Minimal und Maximalwert errechnen, d.h. p = (max+min)/2. Ich nehme diese
>Version, da ich hier auf ein geringeres Rauschen komme (Kann das
>eigentlich überhaupt?)

Was Du damit effektiv machst, ist Bandbreitenbegrenzung. Also nix 
anderes als ein Tiefpaß. Und sowas reduziert natürlich das Rauschen.

von Jansen (Gast)


Lesenswert?

Aber warum ist es effektiver als einfach den Durchschnitt der Datenmenge 
zu nehmen? Welche Noise-Reduction-Verfahren sind generell bei soetwas zu 
bevorzugen?

von Jens G. (jensig)


Lesenswert?

Ich kenne kein Verfahren, was besser oder schlechter ist. Alles, was ich 
kenne, basiert auf Verringerung der effektiven Bandbreite. Klar kann man 
Spezialbehandlungen durchführen, wie z.B. extreme Ausreiser ignorieren, 
was quasi einer zeitlich begrenzten Verringerung der Bandbreite 
gleichkommen würde.

von Malte I. (maltomat)


Lesenswert?

Hallo,

ich weiss, der Thread ist schon alt. Ich habe aber genau das gleiche 
Problem mit dem BMP085 wie Jansen (starkes Rauschen trotz sauberer 
Betriebsspannung und korrekter Ansteuerung).

RMS Rauschen bei oss=2 sollte laut Datenblatt 5Pa sein. Peak-to-Peak 
wären das 5Pa * 1.4 = 7Pa. Ich sehe aber wie Jansen etwa 30Pa 
Peak-to-Peak Noise (Samplingrate 25Hz, kein Software-Averaging). Wenn 
ich das Loch vom Sensor mit einem Silikon-Oropax verschließe, verringert 
sich der Noise nur sehr geringfügig (etwa 10-20%). Betriebsspannung ist 
sauber (gemessen mit Oszi) und hat nach meinen Versuchen null Einfluß 
auf das Rauschen.

Gibt es vielleicht neue Ideen/Erkenntnisse hierzu?

Gruß, M.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Malte Ibs schrieb:
> Peak-to-Peak wären das 5Pa * 1.4 = 7Pa. Ich sehe aber wie Jansen
> etwa 30Pa Peak-to-Peak Noise (kein Software-Averaging).
> ich weiss, der Thread ist schon alt.
Ja, und hast du wenigstens den allerersten Antwortpost gelesen?
Martina schrieb:
>>>> 5Pa ist ein Effektivwert.
>>>> Der Peak-Peak-Wert ist dagegen 6,6 x 5Pa = 33Pa.

Hast du im Datenblatt gesehen, dass da als "Rauschwert" die 
Standardabweichung von 10 Messpunkten verwendet wurde? Du verwendest 
mit der Messmethode "Vergleich von Einzelwerten" den falschen Ansatz.

Hast du im Datenblatt den Abschnitt mit dem Verweis auf die Appnote
"noise in pressure sensor applications" gesehen?
Blöderweise findet man diese Appnote nicht, aber auch andere haben das 
Problem:
http://www.freescale.com/files/sensors/doc/app_note/AN1646.pdf
http://www.sensorica.ru/pdf/1_doc_15.pdf


Der BPM085 ist übrigens abgekündigt:
http://media.digikey.com/pdf/PCNs/Bosch/BMP085_Disc.pdf

von Malte I. (maltomat)


Lesenswert?

Danke für die Infos/Links.
Wie kommt man auf den Faktor 6,6?

von Anja (Gast)


Lesenswert?

Malte Ibs schrieb:
> Wie kommt man auf den Faktor 6,6?

Simple Wahrscheinlichkeitsrechnung.
Damit liegen 99,9% aller Messungen innerhalb der Grenzen.
Wenn Du den Faktor 5 nimmst den man auch oft liest sind es nur 99,0%.

Gruß Anja

von Malte I. (maltomat)


Lesenswert?

ok, danke. (stimmt aber nur bei normalverteilten Werten...)
Gruß, M.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Malte Ibs schrieb:
> (stimmt aber nur bei normalverteilten Werten...)
Davon gehen die Jungs bei Bosch offenbar aus. Sonst wäre die 
Standardabweichung ohne weitere Angaben ein ungeeignetes Werkzeug...

von Gerd E. (robberknight)


Lesenswert?

Malte Ibs schrieb:
> Gibt es vielleicht neue Ideen/Erkenntnisse hierzu?

andere Forumsteilnehmer haben das Problem auch, hier findest Du ein paar 
Messwerte:

Beitrag "BMP085 driftet"

Der von Bosch im DB angegebene Wert ist wie schon angemerkt zum einen 
die Standardabweichung, zum anderen ist der Wert nur "typical", wird 
also nicht garantiert.

Wie ich im obigen Thread schon geschrieben habe, ist das Teil sehr 
empfindlich für Temperaturdifferenzen. Wenn da was warmes in der Nähe 
ist, geht das Rauschen sofort hoch.

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.