Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -rb49fcf5c295e49f7133ea07398c54b083bf65d49 -r20535cdea80fac7a48eb84d47c9ec4a1968051c5 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision b49fcf5c295e49f7133ea07398c54b083bf65d49) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 20535cdea80fac7a48eb84d47c9ec4a1968051c5) @@ -7,8 +7,8 @@ * * @file WatchdogMgmt.c * -* @author (last) Dara Navaei -* @date (last) 14-Apr-2022 +* @author (last) Darren Cox +* @date (last) 11-Aug-2022 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -49,13 +49,11 @@ // ********** private data ********** -static U32 lastWatchdogPetTime = 0; ///< Previous watchdog pet timestamp (in ms). - +static U32 lastWatchdogPetTime; ///< Previous watchdog pet timestamp (in ms). static OVERRIDE_U32_T watchdogTaskCheckedIn[ NUM_OF_TASKS ]; ///< Array of flags indicating whether individual tasks have checked in with watchdog manager. - static WATCHDOG_SELF_TEST_STATE_T watchdogSelfTestState; ///< Watchdog self-test current state. static SELF_TEST_STATUS_T watchdogSelfTestStatus; ///< Watchdog self-test status. -static U32 watchdogSelfTestTimerCount = 0; ///< Watchdog self-test timer count. +static U32 watchdogSelfTestTimerCount; ///< Watchdog self-test timer count. // ********** private function prototypes ********** @@ -75,17 +73,18 @@ { U32 i; - lastWatchdogPetTime = 0; - watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_START; - watchdogSelfTestStatus = SELF_TEST_STATUS_IN_PROGRESS; - watchdogSelfTestTimerCount = 0; + lastWatchdogPetTime = 0; + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_START; + watchdogSelfTestStatus = SELF_TEST_STATUS_IN_PROGRESS; + watchdogSelfTestTimerCount = 0; + // initialize task check-ins to false for ( i = 0; i < NUM_OF_TASKS; i++ ) { - watchdogTaskCheckedIn[ i ].data = FALSE; - watchdogTaskCheckedIn[ i ].ovData = FALSE; + watchdogTaskCheckedIn[ i ].data = FALSE; + watchdogTaskCheckedIn[ i ].ovData = FALSE; watchdogTaskCheckedIn[ i ].ovInitData = FALSE; - watchdogTaskCheckedIn[ i ].override = OVERRIDE_RESET; + watchdogTaskCheckedIn[ i ].override = OVERRIDE_RESET; } } @@ -107,7 +106,7 @@ allTasksCheckedIn = haveAllTasksCheckedIn(); // if all monitored tasks checked in, pet watchdog and clear the slate - if ( ( TRUE == allTasksCheckedIn ) && ( didTimeout( lastWatchdogPetTime, MIN_WATCHDOG_PET_INTERVAL_MS ) ) ) + if ( ( TRUE == allTasksCheckedIn ) && ( TRUE == didTimeout( lastWatchdogPetTime, MIN_WATCHDOG_PET_INTERVAL_MS ) ) ) { petWatchdog(); resetWDTaskCheckIns(); @@ -175,7 +174,7 @@ // Verify 24V is down when w.d. expired if ( v24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 2.0, v24 ); + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 2.0F, v24 ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } } @@ -195,14 +194,15 @@ { F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); - // Verify 24V is down when w.d. recovered TODO - ask EE team why 24V does not quite recover all the way to 22.6V even after 750 ms. How long should it take? -// if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 3.0, v24 ); -// watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// else + // 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? + if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 3.0F, v24 ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + else + { watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; } }