Files
CHJ/user/Main/DP2201_TFS36200_M0_V10_Header.h
2026-03-20 21:19:53 +08:00

484 lines
25 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/********************************************************************************************************
** DP1902 MFXXGD FLANGE IO<49><4F><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
**
** Copyright (c) Siargo, Ltd. 2011
** All Rights Reserved.
**
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __DP1703_TFS7306_M0_V10_Flange_h__
#define __DP1703_TFS7306_M0_V10_Flange_h__
#if DP2201_CORE_V5000
//==============================================16================================
#define PROGRAM_I2C_DEBUG 0
//==============================================================================
#define PRODUCT_MOD "TFS36200"
#define VER_MV 5
#define VER_SV 2
#define VER_RV 0
#define VER_BV 0
#define BUILD_DATE "20260107" //build日期
#define VERSION "2025.250901" //软件版本
//#define SOFT_VERSION 2025 //软件版本
/*******************************************************************************
*******************************************************************************/
// Microcontroller operating frequency
#define FREQ 4000000//((8000000/32768))*32768 // system frequency definition
#define TIMER_FREQ 32768
#define ACLK_DIV DIVA__1
#define SMCLK_DIV DIVS__2
#define MCLK_DIV DIVM__1
//******************************************************************************
// Function selection
//******************************************************************************
//******************************************************************************
#define DP2201_CORE_V5002 0
#define DP2201_CORE_V5020 0
#define DP2006_VM1000 1
//------------------------------------------------------------------------------
#define ENABLE_DCOEF 1 //?
#define ENABLE_LOWPOWER_MODE 1
//------------------------------------------------------------------------------
#define ENABLE_AUTO_CALIB_ATYPE_OFFSET 1 //?
//------------------------------------------------------------------------------
// for ACC Compute
#define REC_ACC_PER 0 // Acc flowrate save enable bit
#define ENABLE_ACCPULSE 0 // <20><><EFBFBD><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㲥ͬʱʹ<CAB1><CAB9>
#define ENABLE_PULSE_USE_CALIB_SETUP 0
//------------------------------------------------------------------------------
// For data storage
#define REC_ALARM_DATA 0 // for alarm data save enable bit
#define REC_DATE_DATA 0 // for date acc data save enable bit
#define REC_HISTORY_DATA 0 // for history data save enable bit
//------------------------------------------------------------------------------
// For Display
#define ENABLE_LCD_DISPLAY 0
// for GDT0136 LCD
#define ENABLE_DISPLAY_FR_FLAG 0
#define ENABLE_DISPLAY_ACC 0
//------------------------------------------------------------------------------
// For KEY SETUP
#define ENABLE_KEY 0
//------------------------------------------------------------------------------
#define ENABLE_EXT_RTC 0
#define ENABLE_EXT_CRYSTAL 1
//------------------------------------------------------------------------------
// For User UART & I2C
#define ENABLE_USER_I2C 0
#define ENABLE_USER_UART 1
#define ENABLE_USE_TXD_EN 0
#define ENABLE_TURN_OFF_RS485 0
#define ENABLE_DIGITAL_OUTPUT 0
#define ENABLE_FACTORY_PROTOCOL 0
//------------------------------------------------------------------------------
// for bluetooth beacon mode
#define BLUETOOTH_MODE 0
#define ENABLE_BLUETOOTH_BEACON (BLUETOOTH_MODE & (!ENABLE_ACCPULSE))
//------------------------------------------------------------------------------
#define ENABLE_NBIOT 0
//------------------------------------------------------------------------------
#define ENABLE_RF_UART (ENABLE_NBIOT | ENABLE_BLUETOOTH_BEACON) // RF Uart: NBIOT, Blue
#define ENABLE_RF_RX 0
#define ENABLE_AUTO_FOR_RF_TX 0 // for : INTER-NBIOT MOD
#define ENABLE_AUTO_USER_UART_TX 0
#define ENABLE_ERROR_USE_RF_TXDPIN 0
#define ENABLE_ERROR_PIN_FOR_VALVE_CONTROL 0
#define ENABLE_LEAK_DETECT 0
#define ENABLE_AT_FOR_MASTER_UART (ENABLE_RF_UART)
#define ENABLE_DENSITY_DETECT 0
#define ENABLE_ACC_GAIN 0
//------------------------------------------------------------------------------
// For A-Type FlowRate Compute
#define ENABLE_A_TYPE_FLOWRATE 0
#define ENABLE_PLUG_IN_FLOWRATE 0
//------------------------------------------------------------------------------
// For Temperature test
#define ENABLE_USE_MCP9808 1
//------------------------------------------------------------------------------
// For Temperature correction
#define ENABLE_OFFSET_TRACK 0 //track<63><6B><EFBFBD><EFBFBD>
#define ENABLE_OFFSET_CORRECT 1 //ƫ<><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ENABLE_AUTO_ZERO_TRACK 0
#define ENABLE_TD_TU_SWITCH_CONTROL 0
#define ENABLE_MULTI_PONIT_TA_CORR 1
// For D9V2 if TEMP_CORR_USE_TA = 0 & TEMP_CORR_USE_RR = 0, use TGAS
#define TEMP_CORR_USE_TA 0 // TPCB
#define TEMP_CORR_USE_RR 0
//------------------------------------------------------------------------------
#define ENABLE_GAS_RECOGNITION 1
#define ENABLE_GAS_RECOGNITION_TABLE 1
#define ENABLE_RR_CALIBRATION ENABLE_GAS_RECOGNITION
#define ENABLE_ONE_TABLE 0
#define ENABLE_ONE_TABLE_NAME INTCMD_1ST_TABLE
//------------------------------------------------------------------------------
// for calibration data У׼<D0A3><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 如果ENABLE_2ND_CURVE 和 ENABLE_3RD_CURVE 有1则ENABLE_ONE_CURVE必须为0
#define ENABLE_ONE_CURVE 0
#define ENABLE_2ND_CURVE 0
#define ENABLE_3RD_CURVE 1
//------------------------------------------------------------------------------
#define ENABLE_HALT_IN_OPERATE_CURVE 1
//------------------------------------------------------------------------------
// For ADC Calibration
#define ENABLE_CALIB_ATYPE_ADC 0
//------------------------------------------------------------------------------
#define ENABLE_EXTPOWER_DETECT 0
#define DISABLE_BAT_ALARM_IN_EXPOWER 0
#define DISABLE_BAT_ALARM 1
#define ENABLE_DEBUG_PIN 0 // if Not<6F><74>use for RF Control pin
#define ENABLE_ZERO_CALIB 1
#define ENABLE_ZERO_CALIB_PIN 0 // if Not<6F><74>use for RF Control pin
#define ENABLE_ZERO_CALIB_CMD 1
#define ENABLE_CALPIN_FOR_UPDATE_FR 1
//------------------------------------------------------------------------------
// for internal modbus
#define ENABLE_READ_CODE_INTO_CALIB 0
//------------------------------------------------------------------------------
// for SELECT BAT
#define ENABLE_BAT_SEL_PIN 0 // use for RF Control pin
//------------------------------------------------------------------------------
// FOR FLOWRATE UNIT
#define ENABLE_SCCM_SL 0
#define ENABLE_SLPM_NM3 1
#define ENABLE_NCMH_NM3 1
#define ENABLE_SCFM_SCF 0
#define ENABLE_PPM_PPM 0
#define ENABLE_KGH_KG 0
#define ENABLE_SLPM_SL 0
#define ENABLE_SCFH_SCF 1
#define ENABLE_FIXED_UART_FR 0
#define FLOW_UNIT_DEFAULT SLPM_NM3 // SCFH_SCF
#define FR_STD_UNIT SLPM // NCMH
//------------------------------------------------------------------------------
#define ACC_INT_8BIT 1
#define ACC_INT_7BIT 0
#define ACC_INT_6BIT (ENABLE_USE_GDT0136 | ENABLE_EDC20021HDC1P8)
#define ENABLE_ACC_DEC_COMPUTE 0
//------------------------------------------------------------------------------
#define ENABLE_SAMPLE_GREATER_GAIN 1
//------------------------------------------------------------------------------
#define ENABLE_FLOW_GAIN 1
#define FLOW_GAIN_DEFAULT 100
#define FLOW_GAIN_MAX 1000
//------------------------------------------------------------------------------
// for user protocol
#define ENABLE_USER_WP 1 // Write protect
#define ENABLE_USER_GCF 1
#define ENABLE_USER_OFFSET 1
#define ENABLE_USER_WRITE_ACC 1
#define ENABLE_USER_RESET_CORR 1
#define ENABLE_USER_SET_UNIT 1
#define ENABLE_ALARM_ACC 0
//------------------------------------------------------------------------------
#define ENABLE_ADJUST_ADC_GAIN 1
//******************************************************************************
#define TURN_OFF_SYSTEM 245 // 2.45V
//******************************************************************************
// Parameter default
//******************************************************************************
// FOR MODBUS Define
// MODBUS Operation password
#define COM_PASSWORD1 0x53495244 //0x53495244 "SIRD"
#define COM_PASSWORD2 0x32303133
#define COM_PASSWORD3 0x53494152
// for MODBUS Default
#define MAP1_DEFAULT STD_PROTOCOL
#define MAP2_DEFAULT STD_SLAVER_ADDR
#define MAP3_DEFAULT STD_FLOWRATE
#define MAP4_DEFAULT (STD_FLOWRATE+1)
#define MAP5_DEFAULT STD_ACC_INT
#define MAP6_DEFAULT (STD_ACC_INT+1)
#define MAP7_DEFAULT STD_ACC_DOT
#define MAP8_DEFAULT (STD_METER_SN)
#define MAP9_DEFAULT (STD_METER_SN+1)
#define MAP10_DEFAULT (STD_METER_SN+2)
#define MAP11_DEFAULT (STD_METER_SN+3)
#define MAP12_DEFAULT (STD_METER_SN+4)
#define MAP13_DEFAULT (STD_METER_SN+5)
#define MAP14_DEFAULT STD_ALARM_1
#define MAP15_DEFAULT STD_BAT1_V
#define MAP16_DEFAULT STD_OUT_MAX_FLOW
#define MAP17_DEFAULT (STD_OUT_MAX_FLOW+1)
#define MAP18_DEFAULT STD_OUT_MIN_FLOW
#define MAP19_DEFAULT (STD_OUT_MIN_FLOW+1)
#define MAP20_DEFAULT STD_GAS_OFFSET_C
#define MAP21_DEFAULT STD_GAS_OFFSET_A
#define MAP22_DEFAULT STD_TA
#define MAP23_DEFAULT STD_TGAS
#define MAP24_DEFAULT STD_GAS_FACTOR
#define MAP25_DEFAULT STD_AIR_FACTOR
#define MAP26_DEFAULT STD_FACTOR_VTH
#define MAP27_DEFAULT 0
#define MAP28_DEFAULT 0
#define MAP29_DEFAULT 0
#define MAP30_DEFAULT 0
#define MAP31_DEFAULT 0
#define MAP32_DEFAULT 0
#define MAP33_DEFAULT 0
#define MAP34_DEFAULT 0
#define MAP35_DEFAULT 0
#define MAP36_DEFAULT 0
#define MAP37_DEFAULT 0
#define MAP38_DEFAULT 0
#define MAP39_DEFAULT 0
#define MAP40_DEFAULT 0
#define MAP41_DEFAULT 0
#define MAP42_DEFAULT 0
#define MAP43_DEFAULT 0
#define MAP44_DEFAULT 0
#define MAP45_DEFAULT 0
#define MAP46_DEFAULT 0
#define MAP47_DEFAULT 0
#define MAP48_DEFAULT 0
//------------------------------------------------------------------------------
// FOR AUTO TXD DATA
#define TIMING_TXD_START_DEFAULT STD_METER_SN
#define TIMING_TXD_LEN_DEFAULT (STD_BAT1_V - STD_METER_SN)+1
#define TIMING_TXD_TIME_DEFAULT 0
//------------------------------------------------------------------------------
#define DIS_LANGUAGE_DEFAULT CHINESE
//------------------------------------------------------------------------------
#define KEY_PASSWORD_DEFAULT 11111
//******************************************************************************
//------------------------------------------------------------------------------
#define MAX_ALRAM_FR_DEFAULT 160 // 1.25*128
//------------------------------------------------------------------------------
// INSTRUMENT_FACTOR = 1 ERROR_CORRECT = 0
#define CORRECT_METHOD ERROR_CORRECT
#define ENABLE_GCF_POWER_CORR 0
//------------------------------------------------------------------------------
#define METER_PARAMETER_STD 1000
#define METER_PARAMETER_DEFAULT 1000
#define METER_PARAMETER_MAX 6500
#define METER_PARAMETER_MIN 112
//------------------------------------------------------------------------------
#define GCF_PARAMETER_STD 1000
#define GCF_PARAMETER_MAX 5500
#define GCF_PARAMETER_MIN 250
#define GCF_ATYPE_DEFAULT 850
//------------------------------------------------------------------------------
#if(ENABLE_GCF_POWER_CORR)
//------------------------------------------------------------------------------
#define GCF_DEFAULT 889
#define GCF_A_DEFAULT -46
#define GCF_C_DEFAULT 226
#define GCF_A_DOT 1000
#define GCF_B_DOT 1000
#define GCF_C_DOT 1000000 // for mm2 No dot bit
//------------------------------------------------------------------------------
#else
//------------------------------------------------------------------------------
#if(DP1902COREV0134)
#define GCF_DEFAULT 850
#else
#define GCF_DEFAULT 1030
#endif
//----------------------------------------------------------------------------
#define GCF_A_DEFAULT 0
#define GCF_C_DEFAULT 0
#define GCF_A_DOT 10000000000
#define GCF_B_DOT 1000
#define GCF_C_DOT 10000
//------------------------------------------------------------------------------
#endif
//------------------------------------------------------------------------------
#define TIMING_TXD_START_MAX STD_WRITE_START
#define TIMING_TXD_START_MIN STD_REG_START
#define TIMING_TXD_LEN_MAX 40
#define TIMING_TXD_LEN_MIN 1
#define TIMING_TXD_TIME_MAX 45000 //
//------------------------------------------------------------------------------
#define SAMPLE_PERIOD_DEFAULT RESP_250MS // RESP_4000MS
#define EXT_POWER_PERIOD_TIME RESP_250MS // RESP_500MS //<2F>ⲿ<EFBFBD><E2B2BF>Դ
//------------------------------------------------------------------------------
#define RESPONSE_TIME_DEFAULT RESP_2000MS // 125, 250, 500, 1000, 2000, 4000
#define ENABLE_DISPLAY_FILTER 1
#define DISPLAY_FILTER_DEFAULT RESP_1000MS // 1S
#define FLOWRATE_UPDATE_SCALE 18 // 50/1024= 5%
#define FRINDEX_UPDATE_SCALE 8 // 50/1024= 5%
//------------------------------------------------------------------------------
#define CALIB_PULSE_DEFAULT PULSE_1ML
#define CALIB_PULSE_UNIT_MIN PULSE_1ML
#define CALIB_PULSE_UNIT_MAX PULSE_1000L
#define PULSE_LEVEL_DEFAULT LOW
#define PULSE_UNIT_DEFAULT PULSE_1000L
#define PULSE_UNIT_MIN PULSE_100ML
#define PULSE_UNIT_MAX PULSE_1000L
//for key setup
#define PULSE_UNIT_INDEX_MIN PULSE_100ML_INDEX
#define PULSE_UNIT_INDEX_MAX PULSE_1000L_INDEX
//------------------------------------------------------------------------------
#define COM_DECIMAL_POINT_DEFAULT 3
//------------------------------------------------------------------------------
#define MAX_FR_DEFAULT 600000
#define MIN_FR_DEFAULT 0
#define CLIAB_STD_FR_GIAN 1 // <20><>ԭ<EFBFBD><D4AD>1000<30>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//------------------------------------------------------------------------------
#define ADC_GAIN_DEFAULT 32
//------------------------------------------------------------------------------
// for AType FlowRate Compute
#define SDT_ZERO_OFFSET 20000
#define OFFSET_A_MAX 30000
#define OFFSET_A_MIN 10000
#define AUTO_OFFSET_NIDX 150
#define AUTO_OFFSET_NVHH 5000
#define SWITCH_FR_DEFAULT 20000
#define SWITCH_FR_INDEX_MAX 30000
#define SWITCH_FR_INDEX_MIN 1000
#define ATYPE_INDEX_GAIN_DEFAULT 30
#define ATYPE_INDEX_GAIN_MAX 100
#define ATYPE_INDEX_GAIN_MIN 10
//------------------------------------------------------------------------------
#define TEMPRETURE_OFFSET 10000 // 2bit
#define FR_TEMPERATURE_DEAULT 2000
#define TEMPERATURE_K_STD 27315
#define FR_TEMPERATURE_STD 29315 // 273.15 + 20.00
//------------------------------------------------------------------------------
#define ENABLE_WRITE_TA_HIGH (TEMPRETURE_OFFSET+4750)
#define ENABLE_WRITE_TA_LOW (TEMPRETURE_OFFSET+150)
#define ENABLE_WRITE_TA_SCALE 150 // 1.5<EFBFBD><EFBFBD>C
#define TEMP_FACTOR_MAX 50 // 0.005
#define TEMP_FACTOR_MIN 0 //-0.005
#define TEMP_FACTOR_DEFAULT 25 //-0.0025
//------------------------------------------------------------------------------
#define STATIC_LOW_TA_MAX 11000 // 10<31><30>C
#define STATIC_LOW_TA_MIN 8000 // -20<32><30>C
#define STATIC_HIGH_TA_MAX 17000 // 70<37><30>C
#define STATIC_HIGH_TA_MIN 14000 // 40<34><30>C
//------------------------------------------------------------------------------
#define TGAS_ALARM_MAX 17000 // 70<37><30>C
#define TGAS_ALARM_MIN 5000 // -50<35><30>C
//------------------------------------------------------------------------------
#define CALIB_TEMPRETURE_MAX 13500
#define CALIB_TEMPRETURE_MIN 11500
//------------------------------------------------------------------------------
#define ZERO_SUPPRESSION_DEFAULT 150
#define ZERO_SUPPRESSION_MAX 2000
#define ZERO_SUPPRESSION_MIN 0
//------------------------------------------------------------------------------
#define OFFSET_MAX 36768
#define OFFSET_MIN 28768
//------------------------------------------------------------------------------
#define REVERSE_SCALE_DEFAULT 3000
#define REVERSE_SCALE_MAX 16000
#define REVERSE_SCALE_MIN 300
//------------------------------------------------------------------------------
#define CURVE_DATA_MAX 36
#define TACURVE_NUM_DEFAULT 0
#define CURVE_NUM_MAX CURVE_DATA_MAX
#define CURVE_NUM_MIN 0
#define ATYPECURVE_NUM_DEFAULT 0
#define ATYPECURVE_NUM_MAX CURVE_DATA_MAX
#define ATYPECURVE_NUM_MIN 0
//------------------------------------------------------------------------------
#define RR_GAINRES_DEFAULT 7500
#define RR_GAINRES_MAX 62000
#define RR_GAINRES_MIN 10000
#define RR_OPGAIN_RES 33000.0
//------------------------------------------------------------------------------
#define AIR_FACTOR_DEFAULT 32768
#define AIR_FACTOR_MAX 50768
#define AIR_FACTOR_MIN 14768
#define FACTOR_VTH_DEFAULT 1000
#define FACTOR_VT_MAX 10000
#define FACTOR_VT_MIN 100
//------------------------------------------------------------------------------
#define SLAVER_ADDR_DEFAULT 1
//------------------------------------------------------------------------------
#define RECORD_TIME_DEFAULT 60 // HISTORY_PERIOD
//------------------------------------------------------------------------------
#define BATTEST_PERIOD_DEFAULT 120
//------------------------------------------------------------------------------
#define RH_GAINRES_DEFAULT 25
//------------------------------------------------------------------------------
#define DAC8760 0
#define AD5420 1
#define SYS_LOOP_CHIP_DEFAULT DAC8760
#define SYS_LOOP_CHIP_MIN DAC8760
#define SYS_LOOP_CHIP_MAX AD5420
//------------------------------------------------------------------------------
#define EDM779106D 0
#define EDM779103D 1
#define SYS_LCD_DEFAULT EDM779106D
#define SYS_LCD_MIN EDM779106D
#define SYS_LCD_MAX EDM779103D
//******************************************************************************
#define CALIB_WIDTH 100 //帧宽 Flash的话4096的余数 (通讯用)
#define MEMORY_BLOCK_WIDTH 128
#define CALIB_COMP_FAC 3 //压缩比
#define CALIB_MAX_INDEX 24000 //最大内码
#define CALIB_DEPTH ((CALIB_MAX_INDEX / CALIB_WIDTH) * 3) // 必须为整数,(Index * 3)/CALIB_WIDTH 校准数据帧数(通讯用)
#define CALIB_MAX_SIZE ((CALIB_MAX_INDEX / CALIB_COMP_FAC)* 3) // 必须为整数
#define CALIB_REAL_SIZE (((CALIB_MAX_SIZE / MEMORY_BLOCK_WIDTH)+1)*MEMORY_BLOCK_WIDTH)
#define MAX_OPERATE_DEPTH (CALIB_DEPTH / CALIB_COMP_FAC)
//for calibration VHH
#define CALIB_COMP_FAC2 3 //压缩比
#define CALIB_MAX_INDEX2 0 //最大内码
#define CALIB_DEPTH2 ((CALIB_MAX_INDEX2 / CALIB_WIDTH) * 3) // 必须为整数,(Index * 3)/CALIB_WIDTH 校准数据帧数(通讯用)
#define CALIB_MAX_SIZE2 ((CALIB_MAX_INDEX2 / CALIB_COMP_FAC2)* 3) // 必须为整数
#define CALIB_REAL_SIZE2 (((CALIB_MAX_SIZE2 / MEMORY_BLOCK_WIDTH)+1)*MEMORY_BLOCK_WIDTH)
#define MAX_OPERATE_DEPTH2 (CALIB_DEPTH2 / CALIB_COMP_FAC2)
// for calibration A Type FlowRate
#define CALIB_COMP_FAC3 8 //压缩比
#define CALIB_MAX_INDEX3 24000 //最大内码
#define CALIB_DEPTH3 ((CALIB_MAX_INDEX3 / CALIB_WIDTH) * 3) // 必须为整数,(Index * 3)/CALIB_WIDTH 校准数据帧数(通讯用)
#define CALIB_MAX_SIZE3 ((CALIB_MAX_INDEX3 / CALIB_COMP_FAC3)* 3) // 必须为整数
#define CALIB_REAL_SIZE3 (((CALIB_MAX_SIZE3 / MEMORY_BLOCK_WIDTH)+1)*MEMORY_BLOCK_WIDTH)
#define MAX_OPERATE_DEPTH3 (CALIB_DEPTH3/CALIB_COMP_FAC3)
#define CALI_DATA1_ADDR CALI_DATA_ADDR
#define CALI_DATA2_ADDR CALI_DATA_ADDR + CALIB_REAL_SIZE //曲线1的地址 + 曲线1存储大小
#define CALI_DATA3_ADDR CALI_DATA2_ADDR + CALIB_REAL_SIZE2 //曲线2的地址 + 曲线2存储大小
//******************************************************************************
#define CTYPE_FR CURVE_1ST
#define ATYPE_VH CURVE_2ND
#define CTYPE_GAINX CURVE_3RD
#define INT_2ND_CURVE_CMD INTCMD_ATYPE_CURVE
#define INT_3RD_CURVE_CMD INTCMD_MICROFR_CURVE
//==============================================================================
//******************************************************************************
#endif
#endif