Temperature Sensor Accuracy on MKL05Z

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

Temperature Sensor Accuracy on MKL05Z

1,610 Views
rampsr
Contributor III

I need good accuracy in the 75°C to 100°C range.

Reading through Freescale's (NXP) Application Note AN3031, I see the following table:

pastedImage_1.png

I am uncalibrated and using fixed-point. Say my "actual" temperature is 82°C. So what exactly does this ±18°C mean?

1) Does this ±18°C represent an error across the entire temperature range, or just the extremities (25C has much less error whereas 85C has ±18°C)???

2) Is this accuracy within the same chip (my sampled readings can range from 64°C to 100°C when the actual temperature is 82°C), or does it represent the error from chip to chip, or even reel to reel?

7 Replies

974 Views
egoodii
Senior Contributor III

You might also look at my 'consolidated' post regarding on-chip temp:

On-chip temperature Calculations

974 Views
rampsr
Contributor III

Thank you for an excellent write up.

I am worried about how I am using the onboard temperature sensor, which tries to regulate a heat source several millimeters away. I may be too decoupled from the heat source and think I ought to use a thermistor right up against the heat source for a much more accurate and precise PI controlling mechanism.

Currently, in my application I am not calibrating anything. I am not using the bandgap value in any way. I use processor expert to set up my AD signals. My current set up is the following:

A/D Resolution: 12 Bits

Conversion Time: 3.548387 µs

Low-Power Mode: Disabled

High-speed conversion mode: Enabled

Asynchro clock output: Disabled

Sample time: 0 = short

System Clocks

Core clock: 47.972352 MHz

Bus clock: 23.986176 MHz

All I do is take a AD measurement every 50 milliseconds and run the returning 12 bit value into a PI controller routine where the setpoint for my routine is set as a number to compare against the OnBoard Temperature Sensor AD reading.

I have an excel table with a long set of possible AD values for the temperature sensor. In the adjacent column are the temperature values representing those AD values. I am assuming a fixed Vref of 3.2V (I know this can vary and is the cause for much of my accuracy, but let's ignore that for now and assume ±0V tolerance on my reference).

So if my AD value is 838, my temperature on the sensor should be 62.5°C ±X°C. I don't know my X.

Temp = 25 - [(Vtemp - Vtemp25) / m)]

Vtemp = 838 * 3.2V / 4096

Vtemp = 0.654688

Temp = 25 - [(0.654688 - 0.719) / 0.001715]

Temp = 62.5°C

So in my code I just set my setpoint to 838 for the PI controller.

Now if I have several devices with this algorithm running, they all settle out at different powers but all have the same setpoint value. Therefore I believe that from device to device the microcontroller in each interprets the AD reading of 838 as different temperatures. I have not established the accuracy of my on board temperature sensor.

I believe if I move to using a thermistor right next to my heat source, then I am no longer restrained to the accuracy of my reference voltage since my voltage supplying power through the thermistor would be an output from the microcontroller and a 1% resistor for my thermistor divider. This way it is nothing more than a ratio of my voltage reference for specific temperatures.

Any comments or suggestions?

Thanks

0 Kudos

974 Views
egoodii
Senior Contributor III

For all the reasons you mention, I would personally go with the close-to-heat-point 1% thermistor with a matching 1% resistor of about the same resistance at the setpoint temperature, and be VERY happy with the full-ratiometric measurement process you describe.

0 Kudos

974 Views
egoodii
Senior Contributor III

I have noted before how 'difficult' AN3031 is in working with the on-chip temperature bandgap.  The 'error bands' are just as misleading.  Clearly, on a 32-bit processor the integer-math can be 'scaled' (I do it in mV/mC, you might want tenths of mV/mC) to be JUST as accurate, or better, than 'floating point'.

You might glean some details from my analysis in:

Kinetis K22 Measure Temperature Using ADC

That all being said, your 'actual accuracy' will depend HIGHLY on at least the 'consistency' of your ADC reference, AND for any such 'real accuracy' a full 2 or 3 point calibration for EVERY unit individually.

0 Kudos

974 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,

Thank you for your interest in NXP Semiconductor products and the opportunity to serve you.

1) Does this ±18°C represent an error across the entire temperature range, or just the extremities (25C has much less error whereas 85C has ±18°C)???

I think it means the extremities.

2) Is this accuracy within the same chip (my sampled readings can range from 64°C to 100°C when the actual temperature is 82°C), or does it represent the error from chip to chip, or even reel to reel?

The table illustrates the different data process algorithm affect the accuracy of the temperature sensor implementation for the HCS08, however it doesn't suit for other devices likes the Kinetis series.
Have a great day,
Ping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

974 Views
rampsr
Contributor III

If the data in the table only describes the HCS08 and not the Kinetis, then Freescale/NXP need to correct their literature.

This is from page 458 of the "KL05 Sub-Family Reference Manual" for the "KINETIS" microcontrollers

pastedImage_0.png

Well, I'm seeking "more information on using the temperature sensor".

If the Kinetis is different, then can someone from Freescale/NXP answer the question?

0 Kudos

974 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,

Even in the series of the Kinetis, the ADC module is also not same.

And the ADC operation modes are great variety too.

It's impossible to illustrate parameters in a table which can be suit to all ADC operation modes.

So I think the table in the AN3031 is more mean to compare the differ ways to calculate the temperature.

Hope it helps.
Have a great day,
Ping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos