Forum: Mikrocontroller und Digitale Elektronik BMP085 und MSP430G2553


von Matthias B. (matbhe)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich baue momentan mit einem MSP430 Launchpad und einem BMP085 - 
Drucksensor eine kleine Steuerung zum Auslösen der Fallschirme einer 
Modellrakete.
Nun ärgere ich mich schon seit Tagen mit dem BMP085 rum - meine 
Sensordaten sind schrecklich: Einerseits habe ich starke Drifts und 
andererseits urplötzlich auftretende Ausreisser. Um die auftretenden 
Probleme zu verdeutlichen habe ich zwei Dateien angehängt (Plot vom 
Druck unkompensiert):

* error.JPG: Ausreisser (sehr selten und nicht reproduzierbar)
* graph.JPG: Drift (Treppen sind vom Bewegen des Sensors)

Zum Aufbau:
Ich habe den BMP085 (Sparkfun - Breakout) direkt am MSP430 
angeschlossen. Die Spannungsversorgung kommt ebenfalls vom Launchpad 
(welches per USB am PC angeschlossen ist).

Was könnte die Ursache meiner Probleme sein? Kommt dieses Verhalten 
jemandem bekannt vor? Ich weiss langsam nicht mehr weiter...

Danke für eine Antwort.
Mit freundlichen Grüssen

Matthias

von Wolfgang-G (Gast)


Lesenswert?

linkes Bild sieht evtl. nach Wackelkontakt aus

von Matthias B. (matbhe)


Lesenswert?

Hallo Wolfgang-G

An den Fehler mit dem Wackelkontakt habe ich auch schon gedacht. Da ich 
aber zwei verschiedene MSP430<->BMP085 mit sehr ähnlichem Verhalten 
habe, schliesse ich dieses Problem eher aus. Komisch finde ich auch, 
dass diese Ausschläge immer symmetrisch sind...

Freundliche Grüsse
Matthias

von Hakin (Gast)


Lesenswert?

Was sind das für Einheiten auf den Diagrammen?

von Matthias B. (matbhe)


Lesenswert?

Hallo Hakin

Hier die Einheiten:
Y-Achse = BMP085 - Sensorwert ("Roh/unkompensiert")
x-Achse = Samplenummer

M.f.G. Matthias

von Erik (Gast)


Lesenswert?

wenn ich das Datenblatt richtig lese bzw. übersetze
BMP85 von Bosch I2C schnittstelle ..

schreiben die was von Lichtempfindlichkeit am Eingang

Ansonsten mit Batteriebetrieb probieren .

mfg Erik

von Gerhard G. (g_g)


Lesenswert?

Hallo,


das schau mir eher nach einem Timing Problem aus(I2C). Wartest du die 
Zeiten des AD-Wandlers ab? Versuch es mal mit dem EOC-Ausgang.


Gruß G.G.

von Matthias B. (matbhe)


Lesenswert?

Hallo zusammen

Ich habe den Code noch einmal angeschaut und einiges korrigiert.
Der aus dem Netz kopierte Code hatte so einige Fehler...
Der Drift und die Genauigkeit scheinen jetzt i.O. zu sein.
Nun habe ich noch ein Problem: Wenn ich in einem Loop immer wieder die 
Temperatur und den Druck lese, dann kommt bei jedem zweiten "Read" vom 
Druck ein fehlerhaftes Resulat raus. Das erste Resultat ist i.O. und 
reagiert schön auf Druckveränderungen (25cm). Das zweite Resultat drift 
irgendwie und reagiert kaum auf solche Druckveränderungen. Die für OSS=3 
erforderlichen 25ms warte ich immer schön ab vor dem Lesen. Bei den 3 
Bytes die ich für den Druck lese ist das erste Byte immer gleich. Das 
zweite Byte toggelt (gut, falsch, gut, etc.). Hat jemand von euch eine 
Ahnung was das Problem sein könnte? Würde jemand in den Code schauen 
wenn ich ihn posten würde?

Danke für eure Hilfe!

Matthias

von Matthias B. (matbhe)


Lesenswert?

Hallo G. G.

Taugt das Warten von 25ms nicht? Sollte ich den EOC - Pin verwenden?

Freundliche Grüsse
Matthias

von Gerd E. (robberknight)


Lesenswert?

Das wird vermutlich ein Bug im Code sein. Schau Dir vielleicht mal mit 
nem Logicanalyzer den I2C-Traffic an.

Erfahrungen zu Drift & Genauigkeit siehe hier:
Beitrag "BMP085 driftet"

von Tom P. (booner)


Lesenswert?

Hei,

solche Drucksensoren sind auch gern mal empfindlich auf 
Beschleunigungen.
Das solltest Du checken. Gerade "symmetrische" Ausschläge deuten auf so 
etwas...


Grüße,

Tom

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.