Index: firmware/App/Controllers/DrainPump.c =================================================================== diff -u -reeac2a1df1afbdcf4d1775b62cc810582472404d -r3752a2ac9779b6183c034d0d39c147d02198f912 --- firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision eeac2a1df1afbdcf4d1775b62cc810582472404d) +++ firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision 3752a2ac9779b6183c034d0d39c147d02198f912) @@ -87,6 +87,7 @@ #define DRAIN_PUMP_FORWARD_DIR 1 ///< Drain pump forward direction. #define DRAIN_PUMP_DIR_BIT_MASK 0x80 ///< Drain pump direction bit clear mask. #define DRAIN_PUMP_DIR_ERROR_CNT_BIT_MASK 0x3F ///< Drain pump direction error count bit mask. +#define DRAIN_PUMP_MIN_RPM_FOR_DIR_CHECK 100 ///< Drain pump minimum RPM for direction check. #define MAX_FPGA_DRAIN_PUMP_DIRECTION_FAULT_WINDOW_MS ( 1 * SEC_PER_MIN * MS_PER_SECOND ) ///< FPGA drain pump direction fault window #define MAX_FPGA_DRAIN_PUMP_DIRECTION_FAULT_FAILURES 10 ///< FPGA drain pump direction fault failures per MAX_FPGA_DRAIN_PUMP_DIRECTION_FAULT_WINDOW_MS @@ -396,7 +397,7 @@ U32 rpmMaxon = getDrainPumpMeasuredRPM( DRAIN_PUMP_MAXON_SNSR_FB ); BOOL isRPMOutOfRange = FALSE; U32 direction = getDrainPumpMeasuredDirection(); - BOOL isDirInvalid = ( ( direction != DRAIN_PUMP_FORWARD_DIR ) && ( rpmMaxon > 0 ) ? TRUE : FALSE ); // Make sure the pump is running prior to checking the direction error + BOOL isDirInvalid = ( ( direction != DRAIN_PUMP_FORWARD_DIR ) && ( rpmMaxon > DRAIN_PUMP_MIN_RPM_FOR_DIR_CHECK ) ? TRUE : FALSE ); // Make sure the pump is running prior to checking the direction error U32 rpmHallDiff = abs( getDrainPumpTargetRPM() - rpmHall ); U32 rpmMaxonDiff = abs( getDrainPumpTargetRPM() - rpmMaxon ); @@ -413,7 +414,7 @@ { U32 direction = getDrainPumpMeasuredDirection(); U32 rpmMaxon = getDrainPumpMeasuredRPM( DRAIN_PUMP_MAXON_SNSR_FB ); - BOOL isDirInvalid = ( ( direction != DRAIN_PUMP_FORWARD_DIR ) && ( rpmMaxon > 0 ) ? TRUE : FALSE ); + BOOL isDirInvalid = ( ( direction != DRAIN_PUMP_FORWARD_DIR ) && ( rpmMaxon > DRAIN_PUMP_MIN_RPM_FOR_DIR_CHECK ) ? TRUE : FALSE ); checkPersistentAlarm( ALARM_ID_DG_DRAIN_PUMP_DIRECTION_INVALID, isDirInvalid, (F32)direction, DRAIN_PUMP_FORWARD_DIR ); }