mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik BMP085 starkes Rauschen


Autor: Jansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Martina (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jansen (Gast)
Datum:

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

Autor: Martina (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig mal deine Schaltung und das Layout.

Autor: XMEGA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Jansen schrieb:
> oder überseh ich irgend etwas

schau dir mal die Stromversorgung an:

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


Gruß XMEGA

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Jansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martina (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jansen (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jansen (Gast)
Datum:

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

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Malte Ibs (maltomat)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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_not...
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

Autor: Malte Ibs (maltomat)
Datum:

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

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Malte Ibs (maltomat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, danke. (stimmt aber nur bei normalverteilten Werten...)
Gruß, M.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Gerd E. (robberknight)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.