/**************************************************************************//** * \file Analog_Circuits.h * \brief Analog signal processing algorithm library header file * \details * \author Zhang Xuan * \version V1.0.0 * \date 19-Sep-2018 * \par History: * V1.0.0 Initial release * \par Copyright: * (c) Heilongjiang TYW Electronics co., LTD ******************************************************************************/ #ifndef _ANALOG_CIRCUITS_H_ #define _ANALOG_CIRCUITS_H_ /* Includes ------------------------------------------------------------------*/ /* C binding of definitions if building with C++ compiler */ #ifdef __cplusplus extern { #endif /* Exported types ------------------------------------------------------------*/ typedef struct { uint32_t u32Res1; uint32_t u32Res2; uint32_t u32Res4; uint32_t u32Res5; }ADC_Res_List_st_t; typedef uint16_t (*ADC_Circuit_Calc_Func)(uint16_t u16Voltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /* Exported constants --------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/ /* Exported functions ------------------------------------------------------- */ /******************************************************************************* *******************************************************************************/ extern uint16_t ADC_Input_Voltage_Calc(uint16_t u16ADCSample, uint16_t u16ADCRes, uint16_t u16VRef); extern uint16_t ADC_VRef_Calibrate(uint16_t u16ADCSample, uint16_t u16ADCRes, uint16_t u16ActVoltage); extern uint16_t ADC_Data_Calibrate(uint16_t u16Value, uint8_t u8CalMode, uint16_t u16CalData); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Voltage_Calc_Circuit1 | | | | +---------- | | | | | | MCU | | | | | | | | Vin >----------------------->| ADC In | | | | | | | | | | | | | | +---------- | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Voltage_Calc_Circuit101(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Voltage_Calc_Circuit2 | | | | Vin >------------+ | | | | | +-+ +---------- | | | | | | | | | Res1 | MCU | | +-+ | | | | | | | +---------->| ADC In | | | | | | +-+ | | | | | | | | | | Res2 | | | +-+ +---------- | | | | | | | | --- | | /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Voltage_Calc_Circuit102(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit1 | | | | VRes | | --- | | | | | | | | +-+ +---------- | | | | | | | | | Res4 | MCU | | +-+ | | | | | | | +----------------------->| ADC In | | | | | | +-+ | | | | | | | | | | Res5 | | | +-+ +---------- | | | | | | | | | | | +-+ | | | | Res | | | | Sensor | | +-+ | | | | | | | | --- | | /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit101(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit2 | | | | VRes | | --- | | | | | | | | +-+ +---------- | | | | | | | | | Res4 | MCU | | +-+ | | | | | | | +------------+---------->| ADC In | | | | | | | +-+ | | | | | | | | | | | | Res5 | | | | +-+ | +---------- | | | | | | | +-+ | | | | | | | +-+ | | Res2 | | | | Res +-+ | | | | Sensor | | | +-+ | | | | | | | | | | | --- --- | | /// /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit102(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit3 | | | | VRes | | --- | | | | | | | | +-+ | | | | | | | | Res4 | | +-+ | | | | | +------------+ | | | | | | +-+ +-+ +---------- | | | | | | | | | | | Res5 | | Res1 | MCU | | +-+ +-+ | | | | | | | | | +---------->| ADC In | | | | | | | +-+ +-+ | | | | | Res | | | | | | | Sensor | | Res2 | | | +-+ +-+ +---------- | | | | | | | | | | --- --- | | /// /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit103(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit1 | | | | VRes | | --- | | | | | | | | +-+ | | | | Res | | | | Sensor | | +-+ | | | | | | | | | | | +-+ +---------- | | | | | | | | | Res5 | MCU | | +-+ | | | | | | | +----------------------->| ADC In | | | | | | +-+ | | | | | | | | | | Res4 | | | +-+ +---------- | | | | | | | | --- | | /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit201(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit1 | | | | VRes | | --- | | | | | | | | +-+ | | | | Res | | | | Sensor | | +-+ | | | | | | | | | | | +-+ +---------- | | | | | | | | | Res5 | MCU | | +-+ | | | | | | | +------------+---------->| ADC In | | | | | | | +-+ +-+ | | | | | | | | | | | | Res4 | | Res2 | | | +-+ +-+ +---------- | | | | | | | | | | --- --- | | /// /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit202(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit1 | | | | VRes | | --- | | | | | | | | +-+ | | | | Res | | | | Sensor | | +-+ | | | | | | +----+ | | | | | | | +-+ | +-+ +---------- | | | | | | | | | | | | Res5 | | | Res1 | MCU | | +-+ | +-+ | | | | | | | | | +-------+ +---------->| ADC In | | | | | | | +-+ +-+ | | | | | | | | | | | | Res4 | | Res2 | | | +-+ +-+ +---------- | | | | | | | | | | --- --- | | /// /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit203(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit1 | | | | VRes | | --- | | | | | | | | +-+ +---------- | | / | \ Current | | | \ V / Source | MCU | | +-+ | | | | | | | +----------------------->| ADC In | | | | | | +-+ | | | | | | | | | | Res5 | | | +-+ +---------- | | | | | | | | | | | +-+ | | | | Res | | | | Sensor | | +-+ | | | | | | | | --- | | /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit301(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit1 | | | | VRes | | --- | | | | | | | | +-+ +---------- | | / | \ Current | | | \ V / Source | MCU | | +-+ | | | | | | | +------------+---------->| ADC In | | | | | | | +-+ | | | | | | | | | | | | Res5 | | | | +-+ | +---------- | | | | | | | +-+ | | | | | | | +-+ | | Res2 | | | | Res +-+ | | | | Sensor | | | +-+ | | | | | | | | | | | --- --- | | /// /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit302(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); /*** +-----------------------------------------------+ | Equivalent Circuit for Function | | ASig_Res_Calc_Circuit1 | | | | VRes | | --- | | | | | | | | +-+ | | / | \ Current | | \ V / Source | | +-+ | | | | | +------------+ | | | | | | +-+ +-+ +---------- | | | | | | | | | | | Res5 | | Res1 | MCU | | +-+ +-+ | | | | | | | | | +---------->| ADC In | | | | | | | +-+ +-+ | | | | | Res | | | | | | | Sensor | | Res2 | | | +-+ +-+ +---------- | | | | | | | | | | --- --- | | /// /// | | | +-----------------------------------------------+ ***/ extern uint16_t ADC_Res_Calc_Circuit303(uint16_t u16ADCVoltage, uint16_t u16Reference, uint16_t u16Resolution, const ADC_Res_List_st_t* pstResList); #ifdef __cplusplus } #endif #endif /* _ANALOG_CIRCUITS_H_ */