syspar.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. /************************************************************************
  2. Project: Welling Motor Control Paltform
  3. Filename: syspar.h
  4. Partner Filename: Null
  5. Description: System parameters
  6. Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems.
  7. CPU TYPE : Cortex-M4
  8. *************************************************************************
  9. Copyright (c) 2019 Welling Motor Technology(Shanghai) Co. Ltd.
  10. All rights reserved.
  11. *************************************************************************
  12. *************************************************************************
  13. Revising History (ECL of this file):
  14. ************************************************************************/
  15. #ifndef SYSPAR_H
  16. #define SYSPAR_H
  17. /************************************************************************
  18. Compiler Directives
  19. *************************************************************************/
  20. /************************************************************************
  21. Definitions & Macros
  22. *************************************************************************/
  23. /*======================================================================*
  24. Update Time
  25. 2020-2-13 11:22:19
  26. *=======================================================================*/
  27. /*======================================================================*
  28. Bike Riding Parameter Config
  29. *=======================================================================*/
  30. #define IPM_POWER_250W_6G 0x0
  31. #define IPM_POWER_350W_6G 0x01
  32. #define IPM_POWER_350W_9G 0x02
  33. #define IPM_POWER_500W_9G 0x03
  34. #define IPM_POWER_500W_12G 0x04
  35. #define IPM_POWER_750W_12G 0x05
  36. #define IPM_POWER_750W_MINI_12G 0x06
  37. #define IPM_POWER_1000W_12G 0x07
  38. #define IPM_POWER_1000W_MINI_12G 0x08
  39. #define IPM_POWER_350W_MINI_12G 0x09
  40. #define IPM_POWER_SEL IPM_POWER_250W_6G// IPM_POWER_250W_6G// IPM_POWER_250W_6G// IPM_POWER_250W_6G//IPM_POWER_350W_MINI_12G
  41. #define IPM_VOLTAGE_36V 0x0
  42. #define IPM_VOLTAGE_48V 0x1
  43. #define IPM_VOLTAGE_SEL IPM_VOLTAGE_36V
  44. #define BIKE_TYPE_R219 0x0
  45. #define BIKE_TYPE_R168 0x01
  46. #define BIKE_TYPE_R224 0x02
  47. #define BIKE_TYPE_R191 0x03
  48. #define BIKE_TYPE_SEL BIKE_TYPE_R219
  49. #define BIKE_SPEED_LIMIT_25 0x0
  50. #define BIKE_SPEED_LIMIT_32 0x1
  51. #define BIKE_SPEED_LIMIT_45 0x2
  52. #define BIKE_SPEED_LIMIT_SEL BIKE_SPEED_LIMIT_32
  53. #define BIKE_THROTTLE_SPEED_LIMIT_25 0x0
  54. #define BIKE_THROTTLE_SPEED_LIMIT_32 0x1
  55. #define BIKE_THROTTLE_SPEED_LIMIT_45 0x2
  56. #define BIKE_THROTTLE_SPEED_LIMIT_SEL BIKE_THROTTLE_SPEED_LIMIT_32
  57. /*======================================================================*
  58. uart2关闭与打开
  59. 0-打开LED12V电源 1- 关闭LED12V电源 ,可以进行仿真
  60. *=======================================================================*/
  61. #define SIMULATION 1
  62. /*======================================================================*
  63. //仪表协议选择
  64. // //0-5s,1-锂电2号,2-概念智慧, 3-八方,4-澜风2.6,无适配仪表,暂未使用, 5-J协议,6-澜风9.0
  65. //只区分ID==3,需要更新波特率,八方,其余协议可以直接解析
  66. *=======================================================================*/
  67. #define UART_ID 0
  68. /*======================================================================*
  69. IntelligenCadGear
  70. //0-关闭智能踏频 1-打开,车速跟随脚踩频率变化而变化,需要知道牙盘齿轮数
  71. *=======================================================================*/
  72. #define INTELLIGENCADGEAR_EN 0
  73. /*======================================================================*
  74. IntelligenCadGear
  75. //0-关闭功率模式智能踏频 1-打开,车速跟随脚踩频率变化而变化
  76. * 牙盘齿轮比自适应,
  77. * 每个档位限制速度都一样,档位用功率区分
  78. * 1档 20%开始限功率,
  79. * 2档 30% 开始限功率
  80. * 3档 50% 开始限功率
  81. * 4档 60%不限功率
  82. * 5档 最大速度前不限功率
  83. *=======================================================================*/
  84. #define POWER_INTELLIGENCADGEAR_EN 0
  85. /*======================================================================*
  86. oxford fun Selection
  87. //0-关闭Oxford ,1-开启。oxfoed功能无仪表,开机默认smart档位,上电固定开前后灯
  88. *=======================================================================*/
  89. #define BIKE_OXFORD_EN 0
  90. /*======================================================================*
  91. 力矩模式限速 Gear Limit MAX speed Fun
  92. //0-关闭力矩的档位限速功能,1-开启。力矩传感器不同档位限速,1档-48%,2档-60%,3档-72%,4档-84%,5档-100%,
  93. *=======================================================================*/
  94. #define BIKE_TORQUESPDLIMIT_EN 0
  95. /*======================================================================*
  96. 力矩模式下不同档的最大扭矩比 ,鑫宝专用
  97. //0-关闭 ,1-开启。 力矩传感器不同档位限制最大输出,1档-35%,2档-50%,3档-70%,4档-85%,5档-100%,
  98. *=======================================================================*/
  99. #define BIKE_TORGEARMAX 0
  100. /*======================================================================*
  101. NOT ZERO Ssart
  102. //1-速度非零起动,速度大于3KM/H,转把才有效 ;0-车速为零可以转把启动
  103. *=======================================================================*/
  104. #define STARTRUNATSPEED 0
  105. /*======================================================================*
  106. 巡航Bike Cruise
  107. //指拨巡航功能 0-无,1-指拨维持不动维持8秒,进入巡航功能,仪表出线巡航图标,刹车,0档,有助力踏频,重新调速,有故障会退出
  108. *=======================================================================*/
  109. //#define THOTTLECRUISE_EN 0
  110. #define IPM_FUN_EN 0// 0xaa //默认状态 0xaa-开启巡航,其他关闭
  111. /*======================================================================*
  112. 指拨档位
  113. 不同档位,指拨的最大速度有区分。1档-48%,2档-60%,3档-72%,4档-84%,5档-100%,
  114. *=======================================================================*/
  115. #define THROTTLEGEAR 0
  116. /*======================================================================*
  117. 踏频 档位限速
  118. 不同档位,踏频的最大速度有区分。1档-48%,2档-60%,3档-72%,4档-84%,5档-100%,
  119. *=======================================================================*/
  120. #define CADASSISTGEAR 0
  121. /*======================================================================*
  122. 指拨加速度跟助力加速度分开
  123. 1-分开 0-共用KP值
  124. *=======================================================================*/
  125. #define THROTTLEACCELER 0
  126. /*======================================================================*
  127. 不同档位做不同电流限制 GEAR_POWERCURLIMIT_EN
  128. 1档-最大限流的13%
  129. 2档-最大限流的33%
  130. 3档-最大限流的53%
  131. 4档-最大限流的73%
  132. 5档-最大限流的100%
  133. *=======================================================================*/
  134. #define GEAR_POWERCURLIMIT_EN 0
  135. //-----
  136. #define GEAR_CUR_NORMOL 0
  137. #define GEAR_CURVALUT_ONE 13
  138. #define GEAR_CURVALUT_TWO 33
  139. #define GEAR_CURVALUT_THR 53
  140. #define GEAR_CURVALUT_FOR 73
  141. #define GEAR_CURVALUT_FIV 100
  142. //-----
  143. #define GEAR_CUR_UART5S 0
  144. /*======================================================================*
  145. DCDC12/6V电压端口配置 DCDC_12S6V_SEL_EN
  146. 0-DC to DC端口 固定使能打开
  147. 1-DC to DC端口 前后灯12/6V用PWM控制
  148. *=======================================================================*/
  149. #define DCDC_12S6V_SEL_EN 1
  150. /*======================================================================*
  151. 1-第3版本 2- 第4版本 3-第5版本
  152. 硬件版本选择
  153. 3版本的过流基准值试外部器件,
  154. 4版本过流用内部的参考电压1.2V
  155. 5版本,在4版本基础上,电源自锁IO由PF6改为PB3, PF6功能作为12V电源输出使能
  156. *=======================================================================*/
  157. #define HARDWAREV30 3
  158. /*======================================================================*
  159. 采样方式修改 COMBINATION DOUBLERESISTANCE
  160. *=======================================================================*/
  161. #define SampleModelSelect DOUBLERESISTANCE//COMBINATION
  162. /*======================================================================*
  163. JSCOPE 数据示波器 0-关闭 ,1-打开
  164. *=======================================================================*/
  165. #define JSCOPE_EN 0
  166. /*======================================================================*
  167. EMC deal EMC抗干扰处理,0-无 ,1-有
  168. *=======================================================================*/
  169. #define EMCDEAL_EN 0
  170. /*======================================================================*
  171. MCU Model Number
  172. *=======================================================================*/
  173. #define HARDWARE_STM4_64PIN 0
  174. #define HARDWARE_STM4_32PIN 1
  175. #define HARDWARE_VERSION HARDWARE_STM4_32PIN
  176. /*======================================================================*
  177. MCU Frequency
  178. *=======================================================================*/
  179. #define CLK_CORE_KHZ 72000
  180. #define CLK_PWM_KHZ 72000
  181. #define CLK_ADC_KHZ 36000
  182. #define CLK_AHB_KHZ 72000
  183. #define CLK_APB1_KHZ 36000
  184. #define CLK_APB2_KHZ 72000
  185. #define CLK_TIM0_KHZ 72000
  186. #define CLK_TIM1_KHZ 72000
  187. /*======================================================================*
  188. Control Frequency
  189. *=======================================================================*/
  190. #define FPWM_HZ 16000
  191. #define FTBC_HZ 8000
  192. #define FTBS_HZ 4000 //4000
  193. #define FSYSTICK_HZ 1000
  194. #define PWM_PERIOD_CNT 4500
  195. #define PWM_PERIOD_US 625
  196. #define TBC_PERIOD_US 1250
  197. #define TBS_PERIOD_US 5000
  198. #define EVENT_1MS_HZ 1000
  199. /*======================================================================*
  200. ADC
  201. *=======================================================================*/
  202. #define ADC_RESOLUTION_BIT 12
  203. #define ADC_CALIB_INDEX 12
  204. #define ADC_SMPL_PERIOD 7POINT5
  205. #define ADC_CONV_PERIOD 12POINT5
  206. #define ADC_INSERTED_CH_NUM 1
  207. #define ADC_REGULAR_CH_NUM 5
  208. #define ADC_UABC_LPF_COMP 20430
  209. /*======================================================================*
  210. ADC Maximum Value
  211. *=======================================================================*/
  212. #if ((IPM_POWER_SEL == IPM_POWER_250W_6G)||(IPM_POWER_SEL == IPM_POWER_350W_6G)||(IPM_POWER_SEL == IPM_POWER_500W_6G))
  213. #define ADC_IPHASE_CUR_MAX_AP 16500//10200//5500 //unit:0.01A, double resistance
  214. #define ADC_IDC_CUR_AVG_MAX_AP 11000//19335//11420//13750 //unit:0.01A,idc average
  215. #define ADC_IDC_CUR_MAX_AP 11000//19335//11420//13750 //15216 //unit:0.01A,idc
  216. #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc
  217. #define RMOSOFFSETVLAUE 3000//unit:0.001
  218. #elif (IPM_POWER_SEL == IPM_POWER_350W_9G)
  219. #define ADC_IPHASE_CUR_MAX_AP 16500//10200//5500 //unit:0.01A, double resistance
  220. #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average
  221. #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc
  222. #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc
  223. #define RMOSOFFSETVLAUE 3000//unit:0.001
  224. #elif (IPM_POWER_SEL == IPM_POWER_500W_9G)
  225. #define ADC_IPHASE_CUR_MAX_AP 16500//10200//5500 //unit:0.01A, double resistance
  226. #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average
  227. #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc
  228. #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc
  229. #define RMOSOFFSETVLAUE 3000//unit:0.001
  230. #elif ((IPM_POWER_SEL == IPM_POWER_500W_12G) ||(IPM_POWER_SEL ==IPM_POWER_750W_MINI_12G))
  231. #define ADC_IPHASE_CUR_MAX_AP 16900//10200//5500 //unit:0.01A, double resistance
  232. #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average
  233. #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc
  234. #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc
  235. #define RMOSOFFSETVLAUE 3000//unit:0.001
  236. #elif (IPM_POWER_SEL ==IPM_POWER_350W_MINI_12G)
  237. #define ADC_IPHASE_CUR_MAX_AP 16900//10200//5500 //unit:0.01A, double resistance
  238. #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average
  239. #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc
  240. #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc
  241. #define RMOSOFFSETVLAUE 3000//unit:0.001
  242. #elif (IPM_POWER_SEL == IPM_POWER_750W_12G)
  243. #define ADC_IPHASE_CUR_MAX_AP 16900//10200//5500 //unit:0.01A, double resistance
  244. #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average
  245. #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc
  246. #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc
  247. #define RMOSOFFSETVLAUE 3000//unit:0.001
  248. #elif ((IPM_POWER_SEL == IPM_POWER_1000W_12G) ||(IPM_POWER_SEL ==IPM_POWER_1000W_MINI_12G))
  249. #define ADC_IPHASE_CUR_MAX_AP 16900// 16500//10200//5500 //unit:0.01A, double resistance
  250. #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average
  251. #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc
  252. #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc
  253. #define RMOSOFFSETVLAUE 3000//unit:0.001
  254. #else
  255. #define ADC_IPHASE_CUR_MAX_AP 16500//10200//5500 //unit:0.01A, double resistance
  256. #define ADC_IDC_CUR_AVG_MAX_AP 18600//19335//11420//13750 //unit:0.01A,idc average
  257. #define ADC_IDC_CUR_MAX_AP 18600//19335//11420//13750 //15216 //unit:0.01A,idc
  258. #define ADC_VDC_MAX_VT 690//641// 693//723 //643 //unit:0.1V,vdc
  259. #define RMOSOFFSETVLAUE 3000//unit:0.001
  260. #endif
  261. /*======================================================================*
  262. IPM Paremeters
  263. *=======================================================================*/
  264. #define IPM_TURN_ON_TM_NS 300 // 86 // unit:ns
  265. #define IPM_TURN_OFF_TM_NS 300 // 105 // unit:ns
  266. #define IPM_DEAD_TM_NS 1000 // unit:ns
  267. #define IPM_HVIC_CHRG_TM 20 // unit: ms,Bootstrap capacitor charge time
  268. #define ADC_UABC_MAX_VT 495
  269. #define ADC_DISPLAY_MAX_VT 188
  270. #define ADC_LIGHT_MAX_VT 188
  271. #define ADC_SPDSENSOR_MAX_VT 188
  272. #define ADC_UMotorTemp_MAX_VT 0
  273. #define ADC_UPcbTemp_MAX_VT 33
  274. /*======================================================================*
  275. Base value
  276. *=======================================================================*/
  277. #define VBASE 480 // 0.1V 100mv
  278. #define IBASE 7000 // 0.01A
  279. #define FBASE 1400 // Hz
  280. #define TORQUEBASE 900 // 0.1Nm wzy
  281. /*======================================================================*
  282. Control cycle
  283. *=======================================================================*/
  284. #define TBC_TM (((ULONG)FBASE << 10) / FTBC_HZ)
  285. #define TBS_TM (((ULONG)FBASE << 10) / FTBS_HZ)
  286. /*=======================================================================
  287. TBC real value to count function define
  288. =======================================================================*/
  289. #define TBC_US2CT(x) ((ULONG)(x)*FTBC_HZ / 1000000)
  290. #define TBC_MS2CT(x) ((ULONG)(x)*FTBC_HZ / 1000)
  291. #define TBC_S2CT(x) ((ULONG)(x)*FTBC_HZ)
  292. #define EVENT1MS_MS2CT(x) ((ULONG)(x)*EVENT_1MS_HZ / 1000)
  293. #define EVENT1MS_S2CT(x) ((ULONG)(x)*EVENT_1MS_HZ)
  294. /*=======================================================================
  295. TBS real value to count function define
  296. =======================================================================*/
  297. #define TBS_US2CT(x) ((ULONG)(x)*FTBS_HZ / 1000000)
  298. #define TBS_MS2CT(x) ((ULONG)(x)*FTBS_HZ / 1000)
  299. #define TBS_S2CT(x) ((ULONG)(x)*FTBS_HZ)
  300. #define TBS_MIN2CT(x) ((ULONG)(x)*FTBS_HZ * 60)
  301. /*=======================================================================
  302. SysTick real value to count function define
  303. =======================================================================*/
  304. #define TBT_MS2CT(x) ((ULONG)(x)*FSYSTICK_HZ / 1000)
  305. #define TBT_S2CT(x) ((ULONG)(x)*FSYSTICK_HZ)
  306. #define TBT_MIN2CT(x) ((ULONG)(x)*FSYSTICK_HZ * 60)
  307. /*=======================================================================
  308. Speed real value to pu value function define
  309. =======================================================================*/
  310. #define MOTOR_PAIRS M_POLE_PAIRS
  311. #define SPD_RPM2PU(x) (((SLONG)(x) << 15) / 60 * MOTOR_PAIRS / FBASE) /* rpm to Pu(Q15) */
  312. #define SPD_HZ2PU(x) (((SLONG)(x) << 15) / FBASE) /* Hz(Electric) to Pu(Q15) */
  313. #define SPD_ACC_RPM2PU(x) (((SLONG)SPD_RPM2PU(x) << 14) / FTBS_HZ) /* rpm/s to Pu(Q29) */
  314. /*=======================================================================
  315. Voltage real value to pu value function define
  316. =======================================================================*/
  317. #define VLT_VT2PU(x) (((ULONG)(x) << 14) / VBASE)
  318. /*=======================================================================
  319. Current real value to pu value function define
  320. =======================================================================*/
  321. #define CUR_AP2PU(x) (((ULONG)(x) << 14) / IBASE)
  322. /*=======================================================================
  323. Angle real value to pu value function define
  324. =======================================================================*/
  325. #define ANG_DEG2PU(x) (((SLONG)(x) << 15) / 360)
  326. /*=======================================================================
  327. Bandwidth real value to pu value function define
  328. =======================================================================*/
  329. #define BW_HZ2PU(x) (((ULONG)(x) << 15) / FBASE)
  330. /************************************************************************
  331. Constant Table
  332. *************************************************************************/
  333. /************************************************************************
  334. TypeDefs & Structure defines
  335. *************************************************************************/
  336. /************************************************************************
  337. Exported Variables:
  338. *************************************************************************/
  339. /************************************************************************
  340. RAM ALLOCATION:
  341. *************************************************************************/
  342. /************************************************************************
  343. Exported Function Call Prototypes (N/A)
  344. *************************************************************************/
  345. /************************************************************************
  346. Local Function Call Prototypes (N/A)
  347. *************************************************************************/
  348. /************************************************************************
  349. Head files (N/A)
  350. *************************************************************************/
  351. /************************************************************************
  352. Flag Define (N/A)
  353. *************************************************************************/
  354. #endif
  355. /*************************************************************************
  356. Copyright (c) 2019 Welling Motor Technology(Shanghai) Co. Ltd.
  357. All rights reserved.
  358. *************************************************************************
  359. End of this File (EOF)!
  360. Do not put anything after this part!
  361. *************************************************************************/