ADC Fault Detection (not tested yet)

This commit is contained in:
Noah Piqué
2021-11-17 16:27:30 +01:00
parent d4516f83d2
commit 8c54032298
3 changed files with 15 additions and 6 deletions

View File

@ -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;
}