I have a MPU-3050 gyroscope installed in the Evaluation Board. I have it hooked up as an I2C slave. I simply read the following registers in a single burst read:
0x1B - Temperature MSB
0x1C - Temperature LSB
0x1D - Gyro X Rate MSB
0x1E - Gyro X Rate LSB
0x1F - Gryo Y Rate MSB
0x20 - Gyro Y Rate LSB
0x21 - Gryo Z Rate MSB
0x22 - Gyro Z Rate LSB
When I merge these registers together into their 16-bit words and use a 2's complement conversion to get a decimal number, I turn to the following chart for conversion factors:
*On page 12 of the Product Specification https://invensense.tdk.com/mems/gyro/documents/PS-MPU-3000A.pdf
The rate data seems pretty accurate using the correct sensitivity, however the temperature is wayyyyy off.
I am consistently reading Temperature decimal values around -16800. Using the information in the table above, I divide -16800/280 LSB/degree C = -60 degrees C. I then take this -60 degrees C and add the room temperature offset of 35 degrees to get -25 degrees C.
There is no possible way my relatively room-temperature room is below freezing. Something has to be off hear.
Another thing that confuses me is with the Temperature Offset, they give me a value of 35 degrees C and a typical decimal value of -13200. If you convert -13200 to degrees using the 280 LSB/degree C you get -13200/280 = -47.14 degrees C. 47 is wayyy larger than 35.
The numbers just don't seem to add up. Does anyone know I am misunderstanding this document or if there is some way to correct these faulty readings/calculations?
Thanks in advance for your help!
- Log in to post comments
phpbb Topic ID
15501