//-------------------------------------------------------// // Project Code : ALE300K03-21-LGE-GEN2.0-BE-CPU1 // File Name : SensingScale.h // Created on : 2022. 11. 8. // Description : // Author : KimJeongWoo // Last modified Date : //-------------------------------------------------------// #ifndef COMMON_RESOURCE_COMMONLIBRARY_SENSINGSCALE_H_ #define COMMON_RESOURCE_COMMONLIBRARY_SENSINGSCALE_H_ #ifdef __cplusplus extern "C" { #endif #define ADC_OFFSET1V5 (4095./2.) #define ZCT_OFFSET (1442.133333) #define ADC_MAX_VOLT (3.) #define INV_ADC_12BIT (0.000244200244200244000) //0x0FFF 역수 #define VOLT_PER_ADCBIT (ADC_MAX_VOLT * INV_ADC_12BIT) #define LAH50_P_GAIN (2000.) //LAH 50-P 50A CT turn ratio 1:2000 #define LAH100_P_GAIN (2000.) //LAH 100-P 100A CT turn ratio 1:2000 #define AMC3330_GAIN (2.) //AMC3330 Fixed Gain 2. #define INV_AMC3330_GAIN (1./2.) //AMC3330 Fixed Gain 2. #define PT_INA821_RG (12.4) //12.4kOhm #define PT_INA821_GAIN (1. + (49.4 / PT_INA821_RG)) //INA821 Datasheet 참조 #define INV_PT_INA821_GAIN (1. / PT_INA821_GAIN) #define PT_OPAMP_GAIN (3./20.) #define CT_OPAMP_GAIN (3./20.) //------------------------입력전압 PT ---------------------------------------------------------------------------------------// #define DC_PT_PRI_RD (992000.) //분압저항 #define DC_PT_PRI_RM (1300.) //측정저항 #define DC_PT_PRI_R_RATIO (DC_PT_PRI_RM / (DC_PT_PRI_RD + DC_PT_PRI_RM)) // 저항비 #define INV_DC_PT_PRI_R_RATIO (1. / DC_PT_PRI_R_RATIO) #define DC_PT_GAIN (PT_OPAMP_GAIN * PT_INA821_GAIN * AMC3330_GAIN * DC_PT_PRI_R_RATIO) #define INV_DC_PT_GAIN ((1. / DC_PT_GAIN) * VOLT_PER_ADCBIT) //Vbat / Vboost / Vdab gain //-------------------------------------------------------------------------------------------------------------------------// //------------------------DCLINK 상/하 PT ----------------------------------------------------------------------------------// #define DCLINK_PT_PRI_RD (992000.) //분압저항 #define DCLINK_PT_PRI_RM (2700.) //측정저항 #define DCLINK_PT_PRI_R_RATIO (DCLINK_PT_PRI_RM / (DCLINK_PT_PRI_RD + DCLINK_PT_PRI_RM)) // 저항비 #define INV_DCLINK_PT_PRI_R_RATIO (1. / DCLINK_PT_PRI_R_RATIO) #define DCLINK_PT_GAIN (PT_OPAMP_GAIN * PT_INA821_GAIN * AMC3330_GAIN * DCLINK_PT_PRI_R_RATIO) #define INV_DCLINK_PT_GAIN (1. / DCLINK_PT_GAIN) * VOLT_PER_ADCBIT //Vdc link HIGH / LOW //-------------------------------------------------------------------------------------------------------------------------// //----------------------------------AC전압----------------------------------------------------------------------------------// #define AC_PT_PRI_RD (992000.) //분압저항 #define AC_PT_PRI_RM (3400.) //측정저항 #define AC_PT_PRI_R_RATIO (AC_PT_PRI_RM / (AC_PT_PRI_RD + AC_PT_PRI_RM)) // 저항비 #define INV_AC_PT_PRI_R_RATIO (1. / AC_PT_PRI_R_RATIO) #define AC_PT_GAIN (PT_OPAMP_GAIN * PT_INA821_GAIN * AMC3330_GAIN * AC_PT_PRI_R_RATIO) #define INV_AC_PT_GAIN (1. / AC_PT_GAIN) * VOLT_PER_ADCBIT //Vgrid U / Vgrid W / Vgrid //-------------------------------------------------------------------------------------------------------------------------// //----------------------------------AC전류----------------------------------------------------------------------------------// #define AC_CT_RATIO LAH100_P_GAIN #define AC_CT_RM (280.) #define AC_CT_GAIN ((CT_OPAMP_GAIN * AC_CT_RM) / AC_CT_RATIO) #define INV_AC_CT_GAIN (1. / AC_CT_GAIN) * VOLT_PER_ADCBIT //IuGridExt / IwGridExt / IuGrid / IwGrid //-------------------------------------------------------------------------------------------------------------------------// //----------------------------------DC전류----------------------------------------------------------------------------------// #define DC_CT_RATIO LAH50_P_GAIN #define DC_CT_RM (280.) #define DC_CT_GAIN ((CT_OPAMP_GAIN * DC_CT_RM) / DC_CT_RATIO) #define INV_DC_CT_GAIN (1. / DC_CT_GAIN) * VOLT_PER_ADCBIT //Ibat //-------------------------------------------------------------------------------------------------------------------------// //----------------------------------ADC전압---------------------------------------------------------------------------------// #define INV_VADC_GAIN VOLT_PER_ADCBIT //----------------------------------Zct 전류--------------------------------------------------------------------------------// #define ZCT_CT_GAIN (4.) #define ZCT_OPAMP_GAIN (8.45/20.) #define ZCT_GAIN (ZCT_CT_GAIN * ZCT_OPAMP_GAIN) #define INV_AC_ZCT_GAIN (1. / ZCT_GAIN) * VOLT_PER_ADCBIT //임시 struct sMesureList { float ADC_CH1_UV; //Adc1 배터리 입력전압 float ADC_CH1_VIS; //Adc2 배터리 입력전류 float ADC_CH1_IR; //Adc3 부스트 입력전압(배터리 릴레이 후단 전압) float ADC_CH2_UV; //Adc4 Dab 입력전압(부스트 출력전압) float ADC_CH2_VIS; //Adc5 GFD float ADC_CH2_IR; //Adc6 DC-Link 상단전압 float ADC_CH3_UV; //Adc7 DC-Link 하단전압 float ADC_CH3_VIS; //Adc8 계통 U-N전압(단상 삼선식) float ADC_CH3_IR; //Adc9 계통 N-W전압 float ADC_CH4_UV; //Adc10 인버터 전류 U float ADC_CH4_VIS; //Adc11 인버터 전류 W float ADC_CH4_IR; //Adc12 ZCT 전류 }; //------------------------------------------------------------------------// extern float CH1_UV, CH1_VIS, CH1_IR; extern float CH2_UV, CH2_VIS, CH2_IR; extern float CH3_UV, CH3_VIS, CH3_IR; extern float CH4_UV, CH4_VIS, CH4_IR; extern float DAC_1, DAC_2, DAC_3; extern void InitScale(void); #pragma SET_CODE_SECTION(".TI.ramfunc") extern void AdcResult(void); #pragma SET_CODE_SECTION() extern void ScaleDefaultCal(void); extern void ScaleUpdate(void); extern void ReadScaleDelt(void); extern void WriteScaleDelt(void); extern void ResetScaleDelt(void); extern void OffsetDefaultCal(void); extern void OffsetUpdate(void); extern void ReadOffsetDelt(void); extern void WriteOffsetDelt(void); extern void ResetOffsetDelt(void); extern int Flag_Wr_ScaleDelt; extern int Flag_Rst_ScaleDelt; #pragma SET_DATA_SECTION(".Scale") extern struct sMesureList Scale; extern struct sMesureList ScaleDefault; extern struct sMesureList ScaleDelt; // //extern struct sMesureList Offset; //extern struct sMesureList OffsetDefault; //extern struct sMesureList OffsetSum; //extern struct sMesureList OffsetDelt; #pragma SET_DATA_SECTION() #ifdef __cplusplus } #endif /* extern "C" */ #endif /* COMMON_RESOURCE_COMMONLIBRARY_SENSINGSCALE_H_ */