Index: firmware/App/Drivers/SafetyShutdown.c =================================================================== diff -u -r9e5ee62245eb2a73b167eabd6c274a71a76a7b0e -r3115c2cfd605f3b1f9be3bb2064116b0cd15e9c7 --- firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 9e5ee62245eb2a73b167eabd6c274a71a76a7b0e) +++ firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 3115c2cfd605f3b1f9be3bb2064116b0cd15e9c7) @@ -126,10 +126,12 @@ case SAFETY_SHUTDOWN_SELF_TEST_STATE_IN_PROGRESS: if ( TRUE == didTimeout( safetyShutdownSelfTestTimerCount, SAFETY_SHUTDOWN_POST_TIMEOUT_MS ) ) { - 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_SAFETY_SHUTDOWN ) + if ( ( v24 > MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN ) && ( isolatedV24 > MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN ) ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED, 1.0, v24 ); safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; @@ -144,11 +146,13 @@ case SAFETY_SHUTDOWN_SELF_TEST_STATE_RECOVER: if ( TRUE == didTimeout( safetyShutdownSelfTestTimerCount, SAFETY_SHUTDOWN_RECOVERY_TIME_MS ) ) { - 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 - if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) // TODO - If issue persisted talk with systems why 24V does not recover fully. + if ( ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) && ( isolatedV24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) ) { + // TODO - If issue persisted talk with systems why 24V does not recover fully. SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED, 2.0, v24 ); safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; } Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -re12f1b3d41ae133bc0975fcb126e431c2bedda59 -r3115c2cfd605f3b1f9be3bb2064116b0cd15e9c7 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision e12f1b3d41ae133bc0975fcb126e431c2bedda59) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 3115c2cfd605f3b1f9be3bb2064116b0cd15e9c7) @@ -171,10 +171,11 @@ } 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 ) + if ( ( v24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) && ( isolatedV24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 2.0F, v24 ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; @@ -194,11 +195,12 @@ { 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? - if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) + if ( ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) && ( isolatedV24 < 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;