syspar.h 19 KB

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