Hello,
I'm confused about ADC temperature conversion. I think there is some contradiction between conversion parameter values used in the SDK example "lpcxpresso55s69_lpadc_temperature_measurement" and the values written in the User Manual (UM11126) on page 770. I use device revision 1B.
Parameter A: SDK: 744.6 <-> UM: 804
Parameter B: SDK: 313.7 <-> UM: 280
Parameter Alpha: SDK: 11.5 <-> UM: 8.5
Which parameter set should I use? I think the conversion results more belivable data with SDK values.
Hi @mate ,
We recommend the usage of the values located at the User Manual, but that does not mean that the SDK values are not valid or will not work, the developers of the SDK examples use the values that adjust the most to their boards. Those boards can be a part number that was not released or as demo boards. But thar=t does not mean that the SDK values won't work it will depend on your application and work decision which values you are more comfortable with.
In lieu of studying the LPC55S69 datasheet I extrapolate from other MCUs here ...
Have you seen this are all different parameters (A, B, Alpha) ?
The user manual supposedly documents the equation to calculate the temperature as well, using this parameters and the ADC conversion result.
Hi,
The User Manual writes the exact parameter values. UM11126, page 770:
"3. An equation can be used to convert these results into the final temperature sensor
reading: A*[alpha*(Vbe8-Vbe1)/(Vbe8 + alpha*(Vbe8-Vbe1))] - B.
4. Depending on the device revision, following Alpha., A and B values are needed to
achieve +/- 4 C temperature accuracy. For device revision 0A: Alpha=9.5, A=770 and
B = 289.4. For device revision 1B: Alpha= 8.5, A=804 and B = 280."
Since my device has 1B revision number, I have to use parameter values in the equation written in point 3: Alpha=8.5, A=804 and B=280.
But the SDK is using a different parameter set: Alpha=11.5, A=744.6, B=313.7.
Which parameter set (Alpha, A, B) should the programmer use?
> 3. An equation can be used to convert these results into the final temperature sensor
reading: A*[alpha*(Vbe8-Vbe1)/(Vbe8 + alpha*(Vbe8-Vbe1))] - B.
This is obviously an equation involving the internally measured voltages. The temperature sensor is usually a diode in forward direction, or in this case the base-emitter junction of a BJT (effectively the same). Thus the terms Vbe.
You might either check out how this Vbe8/Vbe1 voltages relate to the involved ADC channels and measuring points (which should be documented as well).
Or, try the SDK code and see if it makes sense.
Since internal temperature sensor "sits" on the silicon die and heats up with the whole MCU, the values is of limited use anyway.
I know the limitations of the temperature sensor that is on the silicon die. My question remains and can be generalized: What should the programmer do if the SDK contradicts the user manual? I think these should be synchronized.