Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -re12f1b3d41ae133bc0975fcb126e431c2bedda59 -re5e7a37f5f1e2942630f748be23eac9f452af3aa --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision e12f1b3d41ae133bc0975fcb126e431c2bedda59) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision e5e7a37f5f1e2942630f748be23eac9f452af3aa) @@ -29,13 +29,14 @@ // ********** private definitions ********** -#define MIN_WATCHDOG_PET_INTERVAL_MS 45 ///< Minimum watchdog pet interval. +#define MIN_WATCHDOG_PET_INTERVAL_MS 45 ///< Minimum watchdog pet interval. -#define WATCHDOG_POST_TIMEOUT_MS 500 ///< Watchdog POST timeout in ms. -#define WATCHDOG_RECOVERY_TIME_MS 750 ///< Watchdog recovery time in ms. +#define WATCHDOG_POST_TIMEOUT_MS 500 ///< Watchdog POST timeout in ms. +#define WATCHDOG_RECOVERY_TIME_MS 750 ///< Watchdog recovery time in ms. -#define MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED 5.0F ///< Maximum voltage on 24V line when watchdog is expired. // TODO - check w/ Systems. Takes time for V to bleed off. Had to raise to 5V. -#define MIN_24V_LEVEL_ON_WATCHDOG_RECOVER 22.6F ///< Minimum voltage on 24V line when watchdog is recovered. +#define MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED 5.0F ///< Maximum voltage on 24V line when watchdog is expired. // TODO - check w/ Systems. Takes time for V to bleed off. Had to raise to 5V. +#define MAX_ISOLATED_24V_LEVEL_ON_WD_EXPIRED 22.6F ///< Maximum voltage on isolated 24V line when watchdog is expired. 10% of 24V. +#define MIN_24V_LEVEL_ON_WATCHDOG_RECOVER 22.6F ///< Minimum voltage on 24V line when watchdog is recovered. /// List of watchdog states. typedef enum Button_Self_Test_States @@ -160,7 +161,7 @@ switch ( watchdogSelfTestState ) { case WATCHDOG_SELF_TEST_STATE_START: - watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_IN_PROGRESS; + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_IN_PROGRESS; watchdogSelfTestTimerCount = getMSTimerCount(); // no break here so we pass through directly to in progress processing @@ -171,7 +172,8 @@ } if ( PIN_SIGNAL_LOW == getCPLDWatchdogExpired() ) { - F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); + F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); + F32 isolatedV24 = getMonitoredLineLevel( MONITORED_LINE_24V_POWER_PRIM_HTR_V ); // Verify 24V is down when w.d. expired if ( v24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) @@ -186,15 +188,16 @@ watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } watchdogSelfTestTimerCount = getMSTimerCount(); - watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_RECOVER; + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_RECOVER; break; case WATCHDOG_SELF_TEST_STATE_RECOVER: if ( TRUE == didTimeout( watchdogSelfTestTimerCount, WATCHDOG_RECOVERY_TIME_MS ) ) { if ( PIN_SIGNAL_HIGH == getCPLDWatchdogExpired() ) { - F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); + F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); + F32 isolatedV24 = getMonitoredLineLevel( MONITORED_LINE_24V_POWER_PRIM_HTR_V ); // Verify 24V is down when w.d. recovered TODO - If issue persisted // ask EE team why 24V does not quite recover all the way to 22.6V even after 750 ms. How long should it take?