how to calculate on chip temperature?

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

how to calculate on chip temperature?

1,149 Views
anotherone
Contributor I

I have got below data from KEA128RM. But I still don't know how to get real chip temperature.

Pls help it.

The ADC module integrates an on-chip temperature sensor. Following actions must be

performed to use this temperature sensor.

• Configure ADC for long sample with a maximum of 1 MHz clock

• Convert the bandgap voltage reference channel (AD23)

• By converting the digital value of the bandgap voltage reference channel using

the value of VBG, the user can determine VDD.

• Convert the temperature sensor channel (AD22)

• By using the calculated value of VDD, convert the digital value of AD22 into a

voltage, VTEMP

Labels (1)
0 Kudos
3 Replies

660 Views
egoodii
Senior Contributor III
0 Kudos

660 Views
jeremyzhou
NXP Employee
NXP Employee

Hi Earl,

I've had a brief look through the Temp sensor reading on MKL16ZxxM4 and Re: K70 Temperature reading - Slopes.

In general, I agree with you. The Eqn 1 can work when VDD=3V, however when the VDD becomes 3.6V, the VTEM25 can't be as same as when the VDD is 3.0V according to the Figure 1.

So I think the key point is guaranteeing the VDD is 3V.

Have a great day,

Ping

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

0 Kudos

660 Views
egoodii
Senior Contributor III

Depends on what you mean by 'reading'.  Figure 1 looks at readings in ADC counts, and while that IS what you get from the basic hardware, my process immediately dispenses with ADC counts by direct conversion to mV, which of course DOES require inclusion of the 'reference voltage', WHATEVER the value, as a necessary means to find mV/LSB.  So I use 3000/65536 from my 3V reference and 16-bit AtoD mode, others use Vref=3300mV, and certainly you could use 3600mV, which on 16 bits would simply indicate .055mV/LSB.  A sample 738mV would come in as 13,435 counts, and that times 3600 is some 48million, thence divided by 65536 is back to 738.  There are probably 'minor effects' of Vdd on the measured voltage to the extent THAT possibly varies the 'current source' used to drive the Vbe measurement of this on-chip temperature sense, but only as a VERY MINOR secondary effect.  In ANY case, without further calibration efforts this process will net you +/-10C at best, including datasheet tolerance on Vtemp25 and other sources.

But once the equations reduce to mV, then the final (integer) "25000-(Vtemp-Vtemp25)*inverse_slope" is the single equation to return temperature in mC.  The on-chip temperature voltage is an absolute voltage varying with temperature only.  Hence, the datasheet spec that Vtemp25 is an 'absolute' (nominal) 716mV and an (inverse) slope of 617mC/mV (recent K60 data).  So using the previous sample-example, 25000-(738-716)*617 yields 11,426mC or 11C.

For a reference on the absolute-voltage-nature of on-chip-temp-sense, see also:

Silicon bandgap temperature sensor - Wikipedia, the free encyclopedia

0 Kudos