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:
Given a temperature sensor ADC conversion value ADCm, we can infer a coarse value of the temperature tempC as:
[Equation 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:
Then using the coarse temperature value, we can infer a closer to reality INT1V value during the ADC conversion as:
Back to [Equation 1], we replace INT1V=1V by INT1V = INT1Vm, we can then deduce a finer temperature value as:
[Equation 1bis]