Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r74a520858974bcbc9a08a900823d84698e734412 -r0bb9cd0b4e437097ae2fe188f98a4a70723d2642 --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 74a520858974bcbc9a08a900823d84698e734412) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 0bb9cd0b4e437097ae2fe188f98a4a70723d2642) @@ -623,11 +623,10 @@ *************************************************************************/ static TEMPSENSORS_SELF_TEST_STATES_T handleSelfTestADCCheck ( void ) { - processTempSnsrsADCRead ( TEMPSENSORS_INLET_PRIMARY_HEATER, getFPGATPiTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); - processTempSnsrsADCRead ( TEMPSENSORS_OUTLET_PRIMARY_HEATER, getFPGATPoTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); + S32 const tpiADC = (S32)getFPGATPiTemp(); - BOOL const isLessThanZero = tempSensors[ TEMPSENSORS_INLET_PRIMARY_HEATER ].rawADCReads[0] < 0; - BOOL const isGreaterThanFullScale = tempSensors[ TEMPSENSORS_INLET_PRIMARY_HEATER ].rawADCReads[0] > TEMP_SENSORS_ADC_MAX_COUNT; + BOOL const isLessThanZero = tpiADC < 0; + BOOL const isGreaterThanFullScale = tpiADC > TEMP_SENSORS_ADC_MAX_COUNT; if ( isLessThanZero || isGreaterThanFullScale ) { tempSensorsSelfTestResult = SELF_TEST_STATUS_FAILED; @@ -649,8 +648,21 @@ *************************************************************************/ static TEMPSENSORS_SELF_TEST_STATES_T handleSelfTestConsistencyCheck ( void ) { - F32 const tempDiff = fabs(tempSensors[ TEMPSENSORS_INLET_PRIMARY_HEATER ].temperatureValues.data - - tempSensors[ TEMPSENSORS_OUTLET_PRIMARY_HEATER ].temperatureValues.data); + S32 const tpiConvertedADC = ( (S32)getFPGATPiTemp() & MASK_OFF_U32_MSB ); + F32 const tpiTemperature = getADC2TempConversion( tpiConvertedADC, + (U32) tempSensors[ TEMPSENSORS_INLET_PRIMARY_HEATER ].gain, + (U32) tempSensors[ TEMPSENSORS_INLET_PRIMARY_HEATER ].refResistance, + (U32) tempSensors[ TEMPSENSORS_INLET_PRIMARY_HEATER ].zeroDegreeResistance, + tempSensors[ TEMPSENSORS_INLET_PRIMARY_HEATER ].twoTempConversionCoef ); + + S32 const tpoConvertedADC = ( (S32)getFPGATPoTemp() & MASK_OFF_U32_MSB ); + F32 const tpoTemperature = getADC2TempConversion( tpoConvertedADC, + (U32) tempSensors[ TEMPSENSORS_OUTLET_PRIMARY_HEATER ].gain, + (U32) tempSensors[ TEMPSENSORS_OUTLET_PRIMARY_HEATER ].refResistance, + (U32) tempSensors[ TEMPSENSORS_OUTLET_PRIMARY_HEATER ].zeroDegreeResistance, + tempSensors[ TEMPSENSORS_OUTLET_PRIMARY_HEATER ].twoTempConversionCoef ); + + F32 const tempDiff = fabs(tpiTemperature - tpoTemperature); if ( tempDiff > MAX_ALLOWED_TEMP_DELTA_BETWEEN_SENSORS ) { tempSensorsSelfTestResult = SELF_TEST_STATUS_FAILED; SET_ALARM_WITH_1_U32_DATA ( ALARM_ID_TEMPERATURE_SENSORS_INCONSISTENT, TEMPSENSORS_SELF_TEST_CONSISTENCY_CHECK );