MPU-3050 Incorrect Temperature Readings

By 6shiyi , 1 August 2013

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

Image removed.

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!

phpbb Topic ID
15501