PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Datenblatt für Beschleunigungssensor



Unregistriert
04.02.2015, 15:15
Hallo liebe Leute,


ich habe Probleme damit die Spezifikationen im Datenblatt für einen MPU-6050 ( http://www.invensense.com/mems/gyro/mpu6050.html ) zu verstehen.

Der Sensor hat einen maximalen Messbereich von 16g und eine Auflösung für 16 Bit. Also ist meine Auflösung (16g)/2^(16) richtig?

Was genau sagt mir die Auflösung dann für eine Beschleunigungsmessung, beziehungsweise inwiefern unterscheidet sich die Auflösung von der Sensitivität/Empfindlichkeit, die 2048 LSB/g beträgt?



Ich hoffe ihr könnt mir helfen

RoboHolIC
04.02.2015, 22:27
Der Sensor hat einen maximalen Messbereich von 16g und eine Auflösung für 16 Bit. Also ist meine Auflösung (16g)/2^(16) richtig?
Nicht ganz. Der Sensor löst -/- 16g mit 16 Bit auf, also 16g mit 15 Bit, also "nur" 16g/(2^15).


Was genau sagt mir die Auflösung dann für eine Beschleunigungsmessung, beziehungsweise inwiefern unterscheidet sich die Auflösung von der Sensitivität/Empfindlichkeit, die 2048 LSB/g beträgt?
Diese beiden Werte sind genau reziprok zueinander. Mit der kleinen Korrektur, die ich beschrieb, stimmt das dann auch ganz genau zueinander.

Das sind quasi zwei Seiten einundderselben Medaille, nicht etwa widersprüchliche Aussagen.

Peter(TOO)
04.02.2015, 22:49
Hallo,

ich habe Probleme damit die Spezifikationen im Datenblatt für einen MPU-6050 ( http://www.invensense.com/mems/gyro/mpu6050.html ) zu verstehen.

Der Sensor hat einen maximalen Messbereich von 16g und eine Auflösung für 16 Bit. Also ist meine Auflösung (16g)/2^(16) richtig?
Falsch.
Das interne Register hat 16 Bit Auflösung.

Laut Datenblatt, werden ADC nach dem Delta-Sigma Prinzip verwendet. Bei diesem Typ kann die Auflösung über die Frequenz und das Timing, theoretisch, frei gewählt werden. Praktisch wird die maximale Auflösung durch Rauschen, Leckströme, Frequenzkonstanz usw. begrenzt.
http://de.wikipedia.org/wiki/Delta-Sigma-Modulation

Auf den Chip befindet sich aber noch eine Art MicroController (DMP), die Werte die du auslesen kannst sind schon linearisiert, also aus den ADC-Werten umgerechnet.
Von den 16-Bit ist eines aber das Vorzeichen, welches die Richtung angibt. Folglich bleiben für den absoluten Messwert nur noch 15-Bit übrig.

Dies entspricht dann bei 2g-Fullscale den 2g/2^15

http://www.invensense.com/mems/gyro/documents/PS-MPU-6000A-00v3.4.pdf
Seite 13


Was genau sagt mir die Auflösung dann für eine Beschleunigungsmessung, beziehungsweise inwiefern unterscheidet sich die Auflösung von der Sensitivität/Empfindlichkeit, die 2048 LSB/g beträgt?

Die 2'048 LDB/g gelten bei der 16g Skalierung.

http://invensense.com/mems/gyro/documents/RM-MPU-6000A-00v4.2.pdf
Seite 29

Sie Tabelle sagt nichts anderes als:
bei 16g Einstellung entsprechen 2'048 Einheiten 1g
bei 8g Einstellung entsprechen 8'192 Einheiten 1g
bei 4g Einstellung entsprechen 4'096 Einheiten 1g
bei 2g Einstellung entsprechen 16'384 Einheiten 1g

MfG Peter(TOO)

Unregistriert
05.02.2015, 09:29
Hallo,

super! Vielen Dank für eure Antworten :)


Eine dämliche Frage hätte ich noch...




[...]
Die 2'048 LDB/g gelten bei der 16g Skalierung.

http://invensense.com/mems/gyro/documents/RM-MPU-6000A-00v4.2.pdf
Seite 29

Sie Tabelle sagt nichts anderes als:
bei 16g Einstellung entsprechen 2'048 Einheiten 1g
bei 8g Einstellung entsprechen 8'192 Einheiten 1g
bei 4g Einstellung entsprechen 4'096 Einheiten 1g
bei 2g Einstellung entsprechen 16'384 Einheiten 1g

MfG Peter(TOO)

Das mit den oben genannten Einheiten ist mir noch nicht ganz klar. Entspricht das der Anzahl von Messwerten, die der Sensor dann erfasst bei einer Messung?

Wenn ich also ein Objekt auf bis zu 16g beschleunige und der Sensor auf dem Objekt sitzt und die Beschleunigung messen würde, würde ich dann 16 * 2048 Messwerte bekommen? Nimmt der Sensor dann immer nach (16/2^(15))g einen Messwert auf?

Entschuldigt die doofen Fragen, aber wie man vielleicht merkt, ich habe keinen Ahnung...

Vielen Dank schon Mal.

Peter(TOO)
05.02.2015, 10:54
Hallo,


Das mit den oben genannten Einheiten ist mir noch nicht ganz klar. Entspricht das der Anzahl von Messwerten, die der Sensor dann erfasst bei einer Messung?

Wenn ich also ein Objekt auf bis zu 16g beschleunige und der Sensor auf dem Objekt sitzt und die Beschleunigung messen würde, würde ich dann 16 * 2048 Messwerte bekommen? Nimmt der Sensor dann immer nach (16/2^(15))g einen Messwert auf?

Im 16g Bereich ist die Auflösung 1/2048 g
Du musst also den Wert im ADC-Register durch 2'048 teilen um den Wert in g zu bekommen.

Im 2g Bereich musst du entsprechend durch 16'384 Teilen.

MfG Peter(TOO)

Unregistriert
05.02.2015, 12:42
Hallo,

danke für deine Antwort. Leider komme ich damit immer noch nicht so richtig weiter...

Ich benutze den Sensor nämlich nicht in Wirklichkeit, sondern ich will den Sensor bei Matlab simulieren. Ich muss also dafür wissen, wie das Sensorverhalten ist und wie und wann er Daten erfasst. Nur leider kriege ich das aus dem Datenblatt nicht ermittelt.

Misst der Sensor einfach soundso viele Messwerte in einem bestimmten Zeitintervall oder ist die Messung an die Veränderung der Beschleunigung gekoppelt?

Vielen Dank schon Mal

RoboHolIC
05.02.2015, 22:39
Lies mal nach auf Seite 11 + 12 über den Sample Rate Divider und suche im PDF zum Begriff 'Sample Rate'.
Der Baustein misst im Sub-Millisekundenbereich und liefert zyklisch aktualiserte Momentanwerte - ob man sie ausliest oder nicht. Optional scheint es auch einen FIFO-Speicher für Messwerte zu geben. Das Vorliegen neuer Messwerte kann auch via INT-Pin aussen angezeigt werden.
Wenn der Sensor ruht, werden eben im eingestelten Zeitraster (bis auf das Rauschen) konstante Werte geliefert, immer wieder aufs Neue.