Forum: Mikrocontroller und Digitale Elektronik BMA020 Schaltung Beschaltung Beschleunigungssensor ELV PLATINE korrekt


von Bernhard S. (bernhard)



Lesenswert?

Geschätztes Forum,

schaut Euch bitte mal meine Beschaltung dieses XYZ BMA020-Moduls
(Beschleunigungssensor) von ELV an, ist sie korrekt?

Es soll I2C / TWI Modus betrieben werden.

Die Informationen von ELV sind aus meiner Sicht etwas dürftig.

http://www.elv.de/3-achsen-beschleunigungssensor-3d-bs-komplettbausatz.html

Hab versucht mit dem Datenblatt von BOSCH die Beschaltung zu ergründen.


Fragen:

- Darf dieses Modul mit 5V betrieben werden?

- Muss der Enable-PIN beschaltet werden?

- Wozu dient der UPulUp-Pin?

- Gibt es einen Schaltplan / Prinzipschaltung von diesem Modul ?

- Wie hoch ist der Strombedarf dieses Moduls bei 5V Versorgungsspannung?


Gibt es schon praktische Erfahrungen mit der Genauigkeit des BMA020, 
würde gern z.B:

- die Motorleistung eines Autos ermitteln

- die Höhe eines Objektes (z.B. eines Schrankes)

- die Geschwindigkeit eines Aufzuges usw.


Bernhard

: Bearbeitet durch User
von Timmo H. (masterfx)


Lesenswert?

Bis auf die letzten 3 fragen steht alles im Datenblatt.

Motorleistung bestimmen... Nein, dazu bedarf es etwas mehr Informationen 
als nur die Beschleunigung zu messen.

Zur Berechnung von zurückgelegter Strecke (doppelte Integration) bzw 
bestimmen der Geschwindigkeit (einfache Integration) sind 
beschleinungssensoren alleine nicht sonderlich gut geeignet, da 
insbesondere die Ausrichtung und rauschen extrem ungünstig auf das 
Ergebnis auswirken.  Um sowas zu realisieren sind komplexe 
Filteralgorithmen (Kalman etc) notwendig, die aber auch zumindest noch 
ein gyro brauchen um einigermaßen realistische Werte zu liefern. Dazu 
gibt es tonnenweise Artikel im Netz.

von Bernhard S. (bernhard)


Lesenswert?

>Bis auf die letzten 3 fragen steht alles im Datenblatt.

Ich sehe das etwas anders, bei allem Respekt,
z.B. "Darf dieses Modul mit 5V betrieben werden".
Diese Frage bezog sich nicht auf den BMA020-Chip, sondern auf das 
angebotene Modul von ELV.


>Motorleistung bestimmen... Nein, dazu bedarf es etwas mehr Informationen
>als nur die Beschleunigung zu messen.

Ich gehe davon aus, dass die Masse / Gewicht des Fahrzeuges hinreichend 
genau bekannt ist.

>Zur Berechnung von zurückgelegter Strecke (doppelte Integration) bzw
>bestimmen der Geschwindigkeit (einfache Integration) sind
>beschleinungssensoren alleine nicht sonderlich gut geeignet...

Hochwertige Messsysteme areiten mit diesen Verfahren z.B. Systeme von 
der Firma Henning Gmbh.


Timmo, danke für Deine Zeilen, brachten uns aber nicht weiter.

: Bearbeitet durch User
von Timmo H. (masterfx)


Lesenswert?

Bernhard S. schrieb:
>>Bis auf die letzten 3 fragen steht alles im Datenblatt.
>
> Ich sehe das etwas anders, bei allem Respekt,
> z.B. "Darf dieses Modul mit 5V betrieben werden".
> Diese Frage bezog sich nicht auf den BMA020-Chip, sondern auf das
> angebotene Modul von ELV.
>
...und stellt für die einfache Einbindung in eigene Applikationen einen 
2,5-V-Spannungswandler sowie fünf Pegelwandler bereit....

>>Motorleistung bestimmen... Nein, dazu bedarf es etwas mehr Informationen
>>als nur die Beschleunigung zu messen.
>
> Ich gehe davon aus, dass die Masse / Gewicht des Fahrzeuges hinreichend
> genau bekannt ist.
>
>>Zur Berechnung von zurückgelegter Strecke (doppelte Integration) bzw
>>bestimmen der Geschwindigkeit (einfache Integration) sind
>>beschleinungssensoren alleine nicht sonderlich gut geeignet...
>
> Hochwertige Messsysteme areiten mit diesen Verfahren z.B. Systeme von
> der Firma Henning Gmbh.
>
Und hochwertige Messsysteme arbeiten auch mit 3€ Sensoren und haben 
Filter eingebaut die jeder Hans und Franz in ein paar Stunden 
programmieren kann.

Auf kurze Zeit-Intervalle und bei hinreichend großer Beschleunigung 
bezogen auf den Messbereich des Sensors kann man mit solchen Sensoren 
durchaus nicht ganz verkehrte Werte bekommen. Beim Fahrstuhl denke ich 
dass es schon möglich ist die endgeschwindigkeit zu bestimmen, da hier 
nicht allzu lange beschleunigt wird. Je länger beschleunigt wird um umso 
kleiner die Beschleunigung umso mehr versaut dir das rauschen das 
Ergebnis. Probier es doch einfach mal aus, ist ja schnell gemacht

: Bearbeitet durch User
von Mike (Gast)


Lesenswert?

Timmo H. schrieb:
> Je länger beschleunigt wird um umso kleiner die Beschleunigung umso mehr
> versaut dir das rauschen das Ergebnis.

Eine einfache Integration zur Bestimmung der Geschwindigkeit aus der 
Beschleunigung wird wohl eher unter dem Offset leiden. Das Rauschen wird 
durch die Mittelung unterdrückt.

von stefanus (Gast)


Lesenswert?

Die Beschaltung ist richtig.
Und ja, das Modul kann mit 5V bterieben werden. Das iost ja gerade der 
Sinn des Moduls, da diese Sensoren alle für deutlich weniger Spannung 
ausgelegt sind. ELV hat den kompletten Schaltplan als PDF bereit 
gestellt.

von Bernhard S. (bernhard)


Lesenswert?

@stefanus

>Die Beschaltung ist richtig

Danke



>ELV* hat den kompletten Schaltplan als PDF bereit

Ich finde ihn nicht :-(

Bernhard

von stefanus (Gast)


Lesenswert?

Ja, das ahben die gut versteckt. azu muss man wissen, dass dieses Ding 
mal in einem Artikel der Zeitschrift behandelt wurde. Und in dem steht 
alles drin, was Du wissen willst.

Unter der Artikelbeschreibung wird auf den Artikel verwiesen:
http://www.elv.de/controller.aspx?cid=726&detail=30764

Der Download kostetGeld. Wenn Du das Modul kaufst, bekommst Du einen 
Ausdruck des Artikels mit geliefert. So war das jedenfalls bei mir.

Und hier haben sie kostenlos verraten, wie der Pegelwandler aufgebaut 
ist:
http://www.google.de/imgres?imgurl=http%3A%2F%2Fwww.elv-downloads.de%2Fbilder%2Felvexpertenwissen%2Fbi_pegelwandler02.jpg&imgrefurl=http%3A%2F%2Fwww.elv.de%2Fcontroller.aspx%3Fcid%3D758%26detail%3D10%26detail2%3D7&h=248&w=540&tbnid=3XGrAKxTvQtmKM%3A&zoom=1&docid=XWWV2kw7NSewoM&ei=mlgdVIfpBKP4yQORq4CYBw&tbm=isch&client=ubuntu&iact=rc&uact=3&dur=1321&page=4&start=69&ndsp=24&ved=0CIkCEK0DMEw

von stefanus (Gast)


Lesenswert?

Zum Strombedarf: Ich weiss es nicht mehr genau, aber es waren auf jeden 
Fall nur wenige milliampere. Weniger als 10.

von Bernhard S. (bernhard)



Lesenswert?

>Wenn Du das Modul kaufst, bekommst Du einen
>Ausdruck des Artikels mit geliefert. So war das jedenfalls bei mir.

Und genauso war es auch bei mir, war nur temporär nicht auffindbar ^^

Dieser Tipp führte zum gewünschten Erfolg.

Ich abe mal einen Prinzip- Schaltplan / Schaltung vom BMA020 Modul mit 
angehängt.


>- Darf dieses Modul mit 5V betrieben werden?

ja

>- Muss der Enable-PIN beschaltet werden?

Nein, ein interner Pull-Up Widerstand sorgt dafür, daß das Modul im 
unbeschalteten Zustand aktiv ist. Zieht man diesen PIN gegen LOW, ist 
das Modul deaktiviert.

>- Wozu dient der UPulUp-Pin?

Man kann bei Bedarf die einzelnen interne Pull-Up Widerstände 
"dazuschalten" für die Pins CSB, SCK, SDI, SDO und INT.


>- Gibt es einen Schaltplan / Prinzipschaltung von diesem Modul ?

s. Anlage


>- Wie hoch ist der Strombedarf dieses Moduls bei 5V Versorgungsspannung?

kleiner 1mA lt. Beschreibung

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Die Daten vom Beschleunigungssensor lassen sich relativ einfach 
auslesen.

- I2C-START-Master-Transmitter
- x02 senden
- I2C-START-Master-Receiver-
- 6 Bytes empfangen (X,Y,Z)
- I2C-STOPP

- X,Y,Z 6 x nach rechts schieben (signiert)
- Rohdaten anzeigen

Die Rohdaten für X,Y,Z liegen (bei Ruhelage des Sensors) im 2g Modus
zwischen ca. -250...0...+250.

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Hmmm.. 3 verschiedene Ruhe-Lagen des Sensors, 3 verschiedene g-Werte,
im Idealfall wäre g bei jeder Lage des BMA020 immer konstant, wenn man 
den Einfluss des Mondes  (Erdtrabant) vernachlässigt.

g=Wurzel(X^2+Y^2+Z^2)

Ich vermute, die einzelnen Achsen müssen entsprechend kompensiert 
werden?

Bernhard

: Bearbeitet durch User
von Steffen T. (st32)


Lesenswert?

Bernhard S. schrieb:
> Hmmm.. 3 verschiedene Ruhe-Lagen des Sensors, 3 verschiedene g-Werte,

> Ich vermute, die einzelnen Achsen müssen entsprechend kompensiert
> werden?

versuch doch mal die Bandwidth herab zu setzen. lt Datenblatt startet 
das Teil immer mit der höchsten. Schau mal auf S.11

von stefanus (Gast)


Lesenswert?

> Ich vermute, die einzelnen Achsen müssen entsprechend kompensiert werden?

Ganz sicher. Laut Datenblatt muss man (bei Zero g) mit einem Offset von 
+/- 360mg rechnen, sowie einen temepraturbedingten Drift von +/-6mg.

von Bernhard S. (bernhard)


Lesenswert?

>versuch doch mal die Bandwidth herab zu setzen. lt Datenblatt startet
>das Teil immer mit der höchsten. Schau mal auf S.11

Stimmt, immer wenn der Sensor aus dem SLEEP-Modus erwacht, arbeitet er 
mit der höchsten Bandbreite, schaltet aber, wenn er genügend 
ADC-Messwerte gesammelt hat, mit der eingestellten (im Register 14h) 
Bandbreite weiter.

Wenn die Bandbreite sehr hoch eingestellt ist, zappeln die Messwerte 
kräftig +/- 5 LSB (bei meinem Exemplar).


Was ich noch nicht richtig heruslesen konnte:

Geht der Sénsor immer automatisch in den SLEEP-Modus?

Was bewirkt das WAKE_UP-BIT (15h,BIT-0)?


>Ganz sicher. Laut Datenblatt muss man (bei Zero g) mit einem Offset von
>+/- 360mg rechnen, sowie einen temepraturbedingten Drift von +/-6mg.


Wie könnte man den Offset-Wert ermitteln?

- Freifall-Bedingung ermöglichen (1m freier Fall ca. 0,5s Flugzeit) ?

- Sensor um jede Achse drehen und das MAXIMUM / MINIMUM ermitteln?

von Wolfgang (Gast)


Lesenswert?

Bernhard S. schrieb:
> Wie könnte man den Offset-Wert ermitteln?

Sensor auf den Kopf stellen und die Summe von Normallage und 
Kopfstandlage halbieren.

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Ist das Bit-5 im Register 15h (new_data_INT) gesetzt, entstehen folgende 
Impulse am INT-Ausgang des DMA020.

Wenn die 6-Daten-Bytes per I2C ausgelesen werden, wird ein Test-Ausgang 
am µC gegen LOW gezogen (blaue Linie).

>Sensor auf den Kopf stellen und die Summe von Normallage und
>Kopfstandlage halbieren.

Danke, eine sehr einfache Variante :-)

: Bearbeitet durch User
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.