/************************************************************************ Project: Welling Motor Control Paltform Filename: syspar.h Partner Filename: Null Description: System parameters Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems. CPU TYPE : Cortex-M4 ************************************************************************* Copyright (c) 2019 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* ************************************************************************* Revising History (ECL of this file): ************************************************************************/ #ifndef SYSPAR_H #define SYSPAR_H /************************************************************************ Compiler Directives *************************************************************************/ /************************************************************************ Definitions & Macros *************************************************************************/ /*======================================================================* Update Time 2020-2-13 11:22:19 *=======================================================================*/ /*======================================================================* Bike Riding Parameter Config *=======================================================================*/ #define IPM_POWER_250W_6G 0x00 #define IPM_POWER_350W_6G 0x01 #define IPM_POWER_350W_9G 0x02 #define IPM_POWER_500W_9G 0x03 #define IPM_POWER_500W_12G 0x04 #define IPM_POWER_750W_12G 0x05 #define IPM_POWER_750W_MINI_12G 0x06 #define IPM_POWER_1000W_12G 0x07 #define IPM_POWER_1000W_MINI_12G 0x08 #define IPM_POWER_350W_MINI_12G 0x09 #define IPM_POWER_SEL IPM_POWER_250W_6G #define IPM_VOLTAGE_36V 0x0 #define IPM_VOLTAGE_48V 0x1 #define IPM_VOLTAGE_SEL IPM_VOLTAGE_36V #define BIKE_TYPE_R219 0x0 #define BIKE_TYPE_R168 0x01 #define BIKE_TYPE_R224 0x02 #define BIKE_TYPE_R191 0x03 #define BIKE_TYPE_SEL BIKE_TYPE_R219 #define BIKE_SPEED_LIMIT_25 0x0 #define BIKE_SPEED_LIMIT_32 0x1 #define BIKE_SPEED_LIMIT_45 0x2 #define BIKE_SPEED_LIMIT_SEL BIKE_SPEED_LIMIT_25 #define BIKE_THROTTLE_SPEED_LIMIT_25 0x0 #define BIKE_THROTTLE_SPEED_LIMIT_32 0x1 #define BIKE_THROTTLE_SPEED_LIMIT_45 0x2 #define BIKE_THROTTLE_SPEED_LIMIT_SEL BIKE_THROTTLE_SPEED_LIMIT_25 /*======================================================================* 0 - PA19和PA20做前灯DCDC控制时,不可仿真; 1 - PA19和PA20作SWD调试接口时,前灯DCDC不可控制 *=======================================================================*/ #define SIMULATION 1 /*======================================================================* //仪表协议选择 // //0-5s,1-锂电2号,2-概念智慧, 3-八方,4-澜风2.6,无适配仪表,暂未使用, 5-J协议,6-澜风9.0 *=======================================================================*/ #define UART_ID 0 /*======================================================================* IntelligenCadGear //0-关闭智能踏频 1-打开,车速跟随脚踩频率变化而变化,需要知道牙盘齿轮数 *=======================================================================*/ #define INTELLIGENCADGEAR_EN 0 /*======================================================================* IntelligenCadGear //0-关闭功率模式智能踏频 1-打开,车速跟随脚踩频率变化而变化 * 牙盘齿轮比自适应, * 每个档位限制速度都一样,档位用功率区分 * 1档 20%开始限功率, * 2档 30% 开始限功率 * 3档 50% 开始限功率 * 4档 60%不限功率 * 5档 最大速度前不限功率 *=======================================================================*/ #define POWER_INTELLIGENCADGEAR_EN 0 /*======================================================================* oxford fun Selection //0-关闭Oxford ,1-开启。oxfoed功能无仪表,开机默认smart档位,上电固定开前后灯 *=======================================================================*/ #define BIKE_OXFORD_EN 0 /*======================================================================* 力矩模式限速 Gear Limit MAX speed Fun //0-关闭力矩的档位限速功能,1-开启。力矩传感器不同档位限速,1档-48%,2档-60%,3档-72%,4档-84%,5档-100%, *=======================================================================*/ #define BIKE_TORQUESPDLIMIT_EN 0 /*======================================================================* 力矩模式下不同档的最大扭矩比 ,鑫宝专用 //0-关闭 ,1-开启。 力矩传感器不同档位限制最大输出,1档-35%,2档-50%,3档-70%,4档-85%,5档-100%, *=======================================================================*/ #define BIKE_TORGEARMAX 0 /*======================================================================* NOT ZERO Ssart //1-速度非零起动,速度大于3KM/H,转把才有效 ;0-车速为零可以转把启动 *=======================================================================*/ #define STARTRUNATSPEED 0 /*======================================================================* 巡航Bike Cruise //指拨巡航功能 0-无,1-指拨维持不动维持8秒,进入巡航功能,仪表出线巡航图标,刹车,0档,有助力踏频,重新调速,有故障会退出 *=======================================================================*/ //#define THOTTLECRUISE_EN 0 #define IPM_FUN_EN 0// 0xaa //默认状态 0xaa-开启巡航,其他关闭 /*======================================================================* 指拨档位 不同档位,指拨的最大速度有区分。1档-48%,2档-60%,3档-72%,4档-84%,5档-100%, *=======================================================================*/ #define THROTTLEGEAR 0 /*======================================================================* 踏频 档位限速 不同档位,踏频的最大速度有区分。1档-48%,2档-60%,3档-72%,4档-84%,5档-100%, *=======================================================================*/ #define CADASSISTGEAR 0 /*======================================================================* 指拨加速度跟助力加速度分开 1-分开 0-共用KP值 *=======================================================================*/ #define THROTTLEACCELER 0 /*======================================================================* 不同档位做不同电流限制 GEAR_POWERCURLIMIT_EN 1档-最大限流的13% 2档-最大限流的33% 3档-最大限流的53% 4档-最大限流的73% 5档-最大限流的100% *=======================================================================*/ #define GEAR_POWERCURLIMIT_EN 0 //----- #define GEAR_CUR_NORMOL 0 #define GEAR_CURVALUT_ONE 13 #define GEAR_CURVALUT_TWO 33 #define GEAR_CURVALUT_THR 53 #define GEAR_CURVALUT_FOR 73 #define GEAR_CURVALUT_FIV 100 //----- #define GEAR_CUR_UART5S 0 /*======================================================================* DCDC12/6V电压端口配置 DCDC_12S6V_SEL_EN 0-DC to DC端口 固定使能打开 1-DC to DC端口 做前灯控制 2-DC to DC端口 做尾灯控制 3-DC to DC端口 前后灯12/6V用PWM控制 *=======================================================================*/ #define DCDC_12S6V_SEL_EN 3 /*======================================================================* 1-第3版本 2- 第4版本 3-第5版本 硬件版本选择 3版本的过流基准值试外部器件, 4版本过流用内部的参考电压1.2V 5版本,在4版本基础上,电源自锁IO由PF6改为PB3, PF6功能作为12V电源输出使能 *=======================================================================*/ #define HARDWAREV30 3 /*======================================================================* 采样方式修改 COMBINATION DOUBLERESISTANCE *=======================================================================*/ #define SampleModelSelect DOUBLERESISTANCE//COMBINATION /*======================================================================* JSCOPE 数据示波器 0-关闭 ,1-打开 *=======================================================================*/ #define JSCOPE_EN 0 /*======================================================================* EMC deal EMC抗干扰处理,0-无 ,1-有 *=======================================================================*/ #define EMCDEAL_EN 0 /*======================================================================* MCU Model Number *=======================================================================*/ #define HARDWARE_STM4_64PIN 0 #define HARDWARE_STM4_32PIN 1 #define HARDWARE_VERSION HARDWARE_STM4_32PIN /*======================================================================* MCU Frequency *=======================================================================*/ #define CLK_CORE_KHZ 72000 #define CLK_PWM_KHZ 72000 #define CLK_ADC_KHZ 36000 #define CLK_AHB_KHZ 72000 #define CLK_APB1_KHZ 36000 #define CLK_APB2_KHZ 72000 #define CLK_TIM0_KHZ 72000 #define CLK_TIM1_KHZ 72000 /*======================================================================* Control Frequency *=======================================================================*/ #define FPWM_HZ 16000 #define FTBC_HZ 8000 #define FTBS_HZ 8000 #define FSYSTICK_HZ 1000 #define PWM_PERIOD_CNT 4500 #define PWM_PERIOD_US 625 #define TBC_PERIOD_US 1250 #define TBS_PERIOD_US 1250 #define EVENT_1MS_HZ 1000 /*======================================================================* ADC *=======================================================================*/ #define ADC_RESOLUTION_BIT 12 #define ADC_CALIB_INDEX 12 #define ADC_SMPL_PERIOD 7POINT5 #define ADC_CONV_PERIOD 12POINT5 #define ADC_INSERTED_CH_NUM 1 #define ADC_REGULAR_CH_NUM 5 #define ADC_UABC_LPF_COMP 20430 /*======================================================================* ADC Maximum Value *=======================================================================*/ #if ((IPM_POWER_SEL == IPM_POWER_250W_6G)||(IPM_POWER_SEL == IPM_POWER_350W_6G)||(IPM_POWER_SEL == IPM_POWER_500W_6G)) #define ADC_IPHASE_CUR_MAX_AP 16500//10200//5500 //unit:0.01A, double resistance #define ADC_IDC_CUR_AVG_MAX_AP 11000//19335//11420//13750 //unit:0.01A,idc average #define ADC_IDC_CUR_MAX_AP 11000//19335//11420//13750 //15216 //unit:0.01A,idc #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc #define RMOSOFFSETVLAUE 3000//unit:0.001 #elif (IPM_POWER_SEL == IPM_POWER_350W_9G) #define ADC_IPHASE_CUR_MAX_AP 16500//10200//5500 //unit:0.01A, double resistance #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc #define RMOSOFFSETVLAUE 3000//unit:0.001 #elif (IPM_POWER_SEL == IPM_POWER_500W_9G) #define ADC_IPHASE_CUR_MAX_AP 16500//10200//5500 //unit:0.01A, double resistance #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc #define RMOSOFFSETVLAUE 3000//unit:0.001 #elif ((IPM_POWER_SEL == IPM_POWER_500W_12G) ||(IPM_POWER_SEL ==IPM_POWER_750W_MINI_12G)) #define ADC_IPHASE_CUR_MAX_AP 16900//10200//5500 //unit:0.01A, double resistance #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc #define RMOSOFFSETVLAUE 3000//unit:0.001 #elif (IPM_POWER_SEL ==IPM_POWER_350W_MINI_12G) #define ADC_IPHASE_CUR_MAX_AP 16900//10200//5500 //unit:0.01A, double resistance #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc #define RMOSOFFSETVLAUE 3000//unit:0.001 #elif (IPM_POWER_SEL == IPM_POWER_750W_12G) #define ADC_IPHASE_CUR_MAX_AP 16900//10200//5500 //unit:0.01A, double resistance #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc #define RMOSOFFSETVLAUE 3000//unit:0.001 #elif ((IPM_POWER_SEL == IPM_POWER_1000W_12G) ||(IPM_POWER_SEL ==IPM_POWER_1000W_MINI_12G)) #define ADC_IPHASE_CUR_MAX_AP 16900// 16500//10200//5500 //unit:0.01A, double resistance #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc #define RMOSOFFSETVLAUE 3000//unit:0.001 #else #define ADC_IPHASE_CUR_MAX_AP 16500//10200//5500 //unit:0.01A, double resistance #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc #define RMOSOFFSETVLAUE 3000//unit:0.001 #endif /*======================================================================* IPM Paremeters *=======================================================================*/ #define IPM_TURN_ON_TM_NS 300 // 86 // unit:ns #define IPM_TURN_OFF_TM_NS 300 // 105 // unit:ns #define IPM_DEAD_TM_NS 1000 // unit:ns #define IPM_HVIC_CHRG_TM 20 // unit: ms,Bootstrap capacitor charge time #define ADC_UABC_MAX_VT 495 #define ADC_DISPLAY_MAX_VT 188 #define ADC_LIGHT_MAX_VT 188 #define ADC_SPDSENSOR_MAX_VT 188 #define ADC_UMotorTemp_MAX_VT 0 #define ADC_UPcbTemp_MAX_VT 33 /*======================================================================* Base value *=======================================================================*/ #define VBASE 480 // 0.1V 100mv #define IBASE 6000 // 0.01A #define FBASE 1400 // Hz #define TORQUEBASE 900 // 0.1Nm wzy /*======================================================================* Control cycle *=======================================================================*/ #define TBC_TM (((ULONG)FBASE << 10) / FTBC_HZ) #define TBS_TM (((ULONG)FBASE << 10) / FTBS_HZ) /*======================================================================= TBC real value to count function define =======================================================================*/ #define TBC_US2CT(x) ((ULONG)(x)*FTBC_HZ / 1000000) #define TBC_MS2CT(x) ((ULONG)(x)*FTBC_HZ / 1000) #define TBC_S2CT(x) ((ULONG)(x)*FTBC_HZ) #define EVENT1MS_MS2CT(x) ((ULONG)(x)*EVENT_1MS_HZ / 1000) #define EVENT1MS_S2CT(x) ((ULONG)(x)*EVENT_1MS_HZ) /*======================================================================= TBS real value to count function define =======================================================================*/ #define TBS_US2CT(x) ((ULONG)(x)*FTBS_HZ / 1000000) #define TBS_MS2CT(x) ((ULONG)(x)*FTBS_HZ / 1000) #define TBS_S2CT(x) ((ULONG)(x)*FTBS_HZ) #define TBS_MIN2CT(x) ((ULONG)(x)*FTBS_HZ * 60) /*======================================================================= SysTick real value to count function define =======================================================================*/ #define TBT_MS2CT(x) ((ULONG)(x)*FSYSTICK_HZ / 1000) #define TBT_S2CT(x) ((ULONG)(x)*FSYSTICK_HZ) #define TBT_MIN2CT(x) ((ULONG)(x)*FSYSTICK_HZ * 60) /*======================================================================= Speed real value to pu value function define =======================================================================*/ #define MOTOR_PAIRS M_POLE_PAIRS #define SPD_RPM2PU(x) (((SLONG)(x) << 15) / 60 * MOTOR_PAIRS / FBASE) /* rpm to Pu(Q15) */ #define SPD_HZ2PU(x) (((SLONG)(x) << 15) / FBASE) /* Hz(Electric) to Pu(Q15) */ #define SPD_ACC_RPM2PU(x) (((SLONG)SPD_RPM2PU(x) << 14) / FTBS_HZ) /* rpm/s to Pu(Q29) */ /*======================================================================= Voltage real value to pu value function define =======================================================================*/ #define VLT_VT2PU(x) (((ULONG)(x) << 14) / VBASE) /*======================================================================= Current real value to pu value function define =======================================================================*/ #define CUR_AP2PU(x) (((ULONG)(x) << 14) / IBASE) /*======================================================================= Angle real value to pu value function define =======================================================================*/ #define ANG_DEG2PU(x) (((SLONG)(x) << 15) / 360) /*======================================================================= Bandwidth real value to pu value function define =======================================================================*/ #define BW_HZ2PU(x) (((ULONG)(x) << 15) / FBASE) /************************************************************************ Constant Table *************************************************************************/ /************************************************************************ TypeDefs & Structure defines *************************************************************************/ /************************************************************************ Exported Variables: *************************************************************************/ /************************************************************************ RAM ALLOCATION: *************************************************************************/ /************************************************************************ Exported Function Call Prototypes (N/A) *************************************************************************/ /************************************************************************ Local Function Call Prototypes (N/A) *************************************************************************/ /************************************************************************ Head files (N/A) *************************************************************************/ /************************************************************************ Flag Define (N/A) *************************************************************************/ #endif /************************************************************************* Copyright (c) 2019 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* End of this File (EOF)! Do not put anything after this part! *************************************************************************/