diff --git a/Core/Drivers/ADCD_AdcDriver.c b/Core/Drivers/ADCD_AdcDriver.c index 1dff24e..6310ed4 100644 --- a/Core/Drivers/ADCD_AdcDriver.c +++ b/Core/Drivers/ADCD_AdcDriver.c @@ -73,7 +73,10 @@ #define CONFIG_1SHOT (1<<5) #define CONFIG_3WIRE (1<<4) #define CONFIG_24WIRE (0<<4) -// Fault Detection not implemented yet +#define CONFIG_FAULTCYCLE_NO (0<<2) +#define CONFIG_FAULTCYCLE_AUTO (1<<2) +#define CONFIG_FAULTCYCLE_MANUAL1 (2<<2) +#define CONFIG_FAULTCYCLE_MANUAL2 (3<<2) #define CONFIG_FAULTSTATCLEAR (1<<1) #define CONFIG_FILT50HZ (1<<0) #define CONFIG_FILT60HZ (0<<0) @@ -85,7 +88,7 @@ #define FAULT_RTDINLOW 0x08 #define FAULT_OVUV 0x04 -#define CONFIG (U8)(CONFIG_VBIAS_ON | CONFIG_MODE_OFF | CONFIG_24WIRE | CONFIG_FILT60HZ) // enable Vbias; autoconvert off; 4-wire; 60Hz; +#define CONFIG (U8)(CONFIG_VBIAS_ON | CONFIG_MODE_OFF | CONFIG_24WIRE | CONFIG_FAULTCYCLE_AUTO | CONFIG_FILT60HZ) // enable Vbias; autoconvert off; 4-wire; Fault detection auto 60Hz; #define EVENT_ENABLE ((U32)(1<<0)) #define EVENT_DISABLE ((U32)(1<<1)) @@ -207,10 +210,14 @@ BOOL ADCD_boInitializeModule( VOID ) DIPO_vSetOutput(DIPO_eCS_C); boOK &= boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE); + boOK &= boWriteReg(REG_HIGH_FAULT_MSB, (U16) 0x5b12 , TRUE); + boOK &= boWriteReg(REG_LOW_FAULT_MSB, (U16) 0x2690 , TRUE); DIPO_vResetOutput(DIPO_eCS_C); DIPO_vSetOutput(DIPO_eCS_H); boOK &= boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE); + boOK &= boWriteReg(REG_HIGH_FAULT_MSB, (U16) 0x5b12 , TRUE); + boOK &= boWriteReg(REG_LOW_FAULT_MSB, (U16) 0x2690 , TRUE); DIPO_vResetOutput(DIPO_eCS_H); osMutexRelease( m_pstMutexID ); @@ -271,9 +278,10 @@ BOOL ADCD_dReadData(ADCD_EnTemps eChannel, PU8 pu8Error, PU16 pu16Data) osMutexAcquire( m_pstMutexID, osWaitForever ); DIPO_vSetOutput(CS); boOK &= boReadReg(REG_FAULT_STATUS, &u16Data, FALSE); + boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE); DIPO_vResetOutput(CS); osMutexRelease( m_pstMutexID ); - //boWriteReg(REG_CONFIG, (U16) CONFIG | CONFIG_FAULTSTATCLEAR, FALSE); + *pu8Error |= u16Data & 0xFC; return 0; } diff --git a/Core/Drivers/ANPI_AnalogPortsIn.c b/Core/Drivers/ANPI_AnalogPortsIn.c index d225294..f3d0f7f 100644 --- a/Core/Drivers/ANPI_AnalogPortsIn.c +++ b/Core/Drivers/ANPI_AnalogPortsIn.c @@ -33,12 +33,13 @@ #include "../PDEF_ProjectDefinitions.h" #include "ANPI_AnalogPortsIn.h" +#include "PECO_PeltierController.h" + //Application //#include "../Application/ELOG_ErrorLogger.h" // Toolbox #include "../Toolbox/UTIL_Utility.h" -#include "DIPO_DigitalPorts.h" // include STM32 drivers #include "stm32l4xx_hal.h" @@ -298,7 +299,7 @@ VOID ANPI_vTask( PVOID arg ) for(U16 u16Cnt = 0; u16Cnt < ANPI_eInNumberOfInputs; u16Cnt++ ) { - if(u16Cnt == ANPI_eOutputVoltage){ + if(u16Cnt == ANPI_eOutputVoltage && !PECO_isEnabled()){ m_aflValues[u16Cnt] = 0.0f; continue; } diff --git a/Core/Drivers/PECO_PeltierController.c b/Core/Drivers/PECO_PeltierController.c index a0010a5..8b6b6b4 100644 --- a/Core/Drivers/PECO_PeltierController.c +++ b/Core/Drivers/PECO_PeltierController.c @@ -163,7 +163,7 @@ BOOL PECO_boInitializeModule( VOID ) { BOOL boOK = TRUE; - //boOK &= ((m_pstThreadID = osThreadNew( PECO_vTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE; + boOK &= ((m_pstThreadID = osThreadNew( PECO_vTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE; boOK &= ((m_pstEventID = osEventFlagsNew( &stEventAttribute )) == NULL) ? FALSE : TRUE; boOK &= (m_pstUpdateTimer = osTimerNew( vEventCallback, osTimerPeriodic, (PVOID)EVENT_TIMER_UPDATE, &stTimerAttribute )) == NULL ? FALSE : TRUE;