Temperature Sensor Accuracy on MKL05Z

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Temperature Sensor Accuracy on MKL05Z

2,199件の閲覧回数
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?

ラベル(2)
7 返答(返信)

1,563件の閲覧回数
egoodii
Senior Contributor III

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

On-chip temperature Calculations

1,563件の閲覧回数
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 件の賞賛
返信

1,563件の閲覧回数
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 件の賞賛
返信

1,563件の閲覧回数
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 件の賞賛
返信

1,563件の閲覧回数
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 件の賞賛
返信

1,563件の閲覧回数
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 件の賞賛
返信

1,563件の閲覧回数
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 件の賞賛
返信