Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -rb170a68ce18b6654fb3abad7d5611f0b681f1278 -r38dba816c24745193bc78134920e558adf53eff4 --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision b170a68ce18b6654fb3abad7d5611f0b681f1278) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 38dba816c24745193bc78134920e558adf53eff4) @@ -73,7 +73,6 @@ #define HEATERS_INTERNAL_TEMP_SENSOR_FAULT 0x01 ///< Heaters internal temperature sensor fault. #define TEMP_SENSORS_DATA_PUBLISH_INTERVAL (500 / TASK_PRIORITY_INTERVAL) ///< Temperature sensors publish data time interval. -#define MAX_TEMPERATURE_SENSOR_FAILURES 5//10 ///< Maximum number of temperature sensor errors within window period before alarm. #define MAX_TEMPERATURE_SENSOR_FAILURE_WINDOW_MS (10 * MS_PER_SECOND) ///< Temperature sensor error window. /// Temperature sensor self-test states. @@ -253,10 +252,6 @@ tempSensors[ TEMPSENSORS_INTERNAL_TDI_RTD ].conversionCoef = 1.0 / 13584.0; tempSensors[ TEMPSENSORS_INTERNAL_COND_TEMP_SENSOR ].conversionCoef = 1.0 / 13584.0; - // Windowed time count for FPGA temperature sensor error - initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_TEMPERATURE_SENSOR_ERROR, MAX_TEMPERATURE_SENSOR_FAILURES, - MAX_TEMPERATURE_SENSOR_FAILURE_WINDOW_MS ); - // Persistent alarms for inlet water high/low temperature initPersistentAlarm( PERSISTENT_ALARM_INLET_WATER_HIGH_TEMPERATURE, ALARM_ID_INLET_WATER_HIGH_TEMPERATURE, TRUE, INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT, INLET_WATER_TEMPERATURE_PERSISTENCE_COUNT ); @@ -399,10 +394,10 @@ if ( fabs( adcConversionCoeff ) < NEARLY_ZERO ) { - // R(RTD) = R(ref) * ( adc – 2^(N - 1) ) / ( G * 2^(N - 1) ); + // R( RTD ) = R( ref ) * ( adc – 2^( N - 1 ) ) / ( G * 2^( N - 1 ) ); F32 resistance = ( refResistance * ( avgADC - tempEquationResistorCalc ) ) / ( gain * tempEquationResistorCalc ); - // T = (-A + √( A^2 - 4B * ( 1 - R_T / R_0 ) ) ) / 2B - F32 secondSqrtPart = 4 * tempEquationCoeffB * (1 - ( resistance / zeroDegResistance ) ); + // T = ( -A + √( A^2 - 4B * ( 1 - R_T / R_0 ) ) ) / 2B + F32 secondSqrtPart = 4 * tempEquationCoeffB * ( 1 - ( resistance / zeroDegResistance ) ); temperature = ( -tempEquationCoeffA + sqrt( pow( tempEquationCoeffA, 2 ) - secondSqrtPart ) ) / ( 2 * tempEquationCoeffB ); } else @@ -574,10 +569,7 @@ } else { - if ( TRUE == incTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_TEMPERATURE_SENSOR_ERROR ) ) - { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_TEMPERATURE_SENSORS_FAULT, sensorIndex ); - } + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_TEMPERATURE_SENSORS_FAULT, sensorIndex ); } return isADCValid;