How do I calibrate the temperature in FXOS8700CQ?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How do I calibrate the temperature in FXOS8700CQ?

Jump to solution
1,161 Views
dougturnbow
Contributor II

I'm wondering if the temperature sensor data from the FXOS8700CQ is usable for us.

The datasheet includes this caveat for register 0x51 "Please note that the temperature sensor is uncalibrated and its output for a given temperature will vary from one device to the next."

Is there any guidance on how to perform a calibration? 

Is a reading at a single temperature sufficient, or are 2 or more readings needed in order to calibrate the temperature data?

Is it sufficient to do the calibration once, or should we expect it to change over time (requiring periodic recalibration)?

Further explanation:

I want to use register 0x51 to know what the temperature is (in degrees C).  I understand from the datasheet that if I place 10 FXOS8700CQ chips in the same room at the same temperature, when I read register 0x51 I may get 10 different readings from the 10 chips. 

Let's assume the room is at 25C and let's say for 3 of the chips I get 0x51 register values of 10, 14 and 20. 

I'd want to record somewhere that for unit 1 a reading of 10 equals 25C, but for unit 2 a reading of 14 equals 25C, etc.  So now I know how to translate the readings of register 0x51 to actual temperatures in degrees C. 

(This relationship would be stored in non-volatile memory in our device)

So this is something we could theoretically do in the M-Test (Manufacturing test).

We would have a separate thermometer that provides the local temperature, then we would store that temperature along with the reading of register 0x51 as calibration data.

The datasheet also describes the register 0x51 value as "Eight-bit 2’s compliment sensor temperature value with 0.96°C/LSB resolution".  Let's pretend it 1.00C/LSB for discussion.  In the Unit 1 example a register 0x51 reading of 10 would translate to 25C, a reading of 11 would translate to 26C, a reading of 15 would translate to 30C, etc.

Is that all that is needed, or do we need to check the register 0x51 values at 2 or more temperatures and do some kind of linear regression? (may not be practical for us to do on every unit)

Should we expect the calibration to change with time? (may not be practical for us to support)

Labels (3)
1 Solution
1,064 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi Doug,

The temperature offset is not factory trimmed, so the readings are usually way off. Simple one-time offset calibration at a known temperature is needed for a precise absolute measurement.

Yes, the sensitivity is 0.96°C/LSB, so one count in the TEMP register corresponds to 0.96°C.

Best regards,

Tomas

View solution in original post

1 Reply
1,065 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi Doug,

The temperature offset is not factory trimmed, so the readings are usually way off. Simple one-time offset calibration at a known temperature is needed for a precise absolute measurement.

Yes, the sensitivity is 0.96°C/LSB, so one count in the TEMP register corresponds to 0.96°C.

Best regards,

Tomas