32.10.8.2.2 Using Linear Interpolation

For concise equations, we’ll use the following notations:

  • (ROOM_TEMP_VAL_INT, ROOM_TEMP_VAL_DEC) is denoted tempR
  • (HOT_TEMP_VAL_INT, HOT_TEMP_VAL_DEC) is denoted tempH
  • ROOM_ADC_VAL is denoted ADCR, its conversion to Volt is denoted VADCR
  • HOT_ADC_VAL is denoted ADCH, its conversion to Volt is denoted VADCH
  • ROOM_INT1V_VAL is denoted INT1VR
  • HOT_INT1V_VAL is denoted INT1VH

Using the (tempR, ADCR) and (tempH, ADCH) points, using a linear interpolation we have the following equation:

V ADC V ADCR temp temp R = V ADCH V ADCR temp H temp R

Given a temperature sensor ADC conversion value ADCm, we can infer a coarse value of the temperature tempC as:

[Equation 1]

temp C = temp R + ADC m 1 2 12 1 ADC R INT 1 V R 2 12 1 temp H temp R ADC H INT 1 V H 2 12 1 ADC R INT 1 V R 2 12 1

Note 1: in the previous expression, we’ve added the conversion of the ADC register value to be expressed in V

Note 2: this is a coarse value because we assume INT1V=1V for this ADC conversion.

Using the (tempR, INT1VR) and (tempH, INT1VH) points, using a linear interpolation we have the following equation:

INT 1 V INT 1 V R temp temp R = INT 1 V H INT 1 V R temp H temp R

Then using the coarse temperature value, we can infer a closer to reality INT1V value during the ADC conversion as:

INT 1 V m = INT 1 V R + INT 1 V H INT 1 V R temp C temp R temp H temp R

Back to [Equation 1], we replace INT1V=1V by INT1V = INT1Vm, we can then deduce a finer temperature value as:

[Equation 1bis]

temp f = temp R + ADC m INT 1 V m 2 12 1 ADC R INT 1 V R 2 12 1 temp H temp R ADC H INT 1 V H 2 12 1 ADC R INT 1 V R 2 12 1