Index: firmware/App/Drivers/InternalADC.h =================================================================== diff -u -r35de566c96433689821b7a21f731df26b40d67ae -r88b5435baa604c699d2d4b752667fa055ed5574a --- firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision 35de566c96433689821b7a21f731df26b40d67ae) +++ firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision 88b5435baa604c699d2d4b752667fa055ed5574a) @@ -53,7 +53,7 @@ INT_ADC_PROCESSOR_1_2_VOLTS, ///< DG internal ADC DG processor 1.2 volt supply channel INT_ADC_SENSORS_3_3_VOLTS, ///< DG internal ADC DG sensors 3.3 volt supply channel INT_ADC_SENSORS_5_VOLTS, ///< DG internal ADC DG sensors 5 volt supply channel - INT_ADC_MAIN_24_VOLTS, ///< DG internal ADC DG sensors 6 volt supply channel + INT_ADC_MAIN_24_VOLTS, ///< DG internal ADC DG 24 volt supply channel INT_ADC_LOGIC_5_VOLTS, ///< DG internal ADC DG logic 5 volt supply channel INT_ADC_3_3_VOLTS, ///< DG internal ADC DG 3.3 volt supply channel INT_ADC_REFERENCE_VOLTAGE, ///< DG internal ADC reference voltage channel Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -ra8d919375cdb830f52e82e2d1c72c8153f5f58ca -r88b5435baa604c699d2d4b752667fa055ed5574a --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision a8d919375cdb830f52e82e2d1c72c8153f5f58ca) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 88b5435baa604c699d2d4b752667fa055ed5574a) @@ -15,7 +15,8 @@ * ***************************************************************************/ -#include "CPLD.h" +#include "CPLD.h" +#include "InternalADC.h" #include "SystemCommMessages.h" #include "Timers.h" #include "WatchdogMgmt.h" @@ -28,9 +29,11 @@ // ********** private definitions ********** #define MIN_WATCHDOG_PET_INTERVAL_MS 45 ///< Minimum watchdog pet interval. -#define WATCHDOG_POST_TIMEOUT_MS 100 ///< Watchdog POST timeout in ms. +#define WATCHDOG_POST_TIMEOUT_MS 500 ///< Watchdog POST timeout in ms. #define WATCHDOG_RECOVERY_TIME_MS 250 ///< Watchdog recovery time in ms. +#define MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED 5.0 ///< 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. + /// List of watchdog states. typedef enum Button_Self_Test_States { @@ -163,7 +166,18 @@ } if ( getCPLDWatchdogExpired() == PIN_SIGNAL_HIGH ) { - watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; + F32 v24 = getIntADCVoltageConverted( INT_ADC_MAIN_24_VOLTS ); + + // Verify 24V is down when w.d. expired + if ( v24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_WATCHDOG_POST_TEST_FAILED, 2.0, v24 ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + else + { + watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; + } } else {