board_config.h 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. #ifndef __BOARD_CONFIG_H_
  2. #define __BOARD_CONFIG_H_
  3. //============================== UVW PWM define start ==============================
  4. #define PWM_TIM TIM1
  5. #define PWM_TIM_CLOCK 168000000
  6. #define PWM_TIM_FREQ 10000
  7. #define PWM_TIM_PULSE (PWM_TIM_CLOCK/(2*PWM_TIM_FREQ))
  8. #define PWM_TIM_PULSE_TPWM (PWM_TIM_CLOCK/(PWM_TIM_FREQ))
  9. #define FOC_PERIOD 0.0001F
  10. #define DEAD_TIME_NS 200
  11. #define PWM_DEAD_TIME (uint16_t)(((uint64_t)DEAD_TIME_NS * PWM_TIM_CLOCK) / 1000000000ULL)
  12. #define PWM_TIM_CLK RCC_APB2Periph_TIM1
  13. // PWM引脚定义(保持不变)
  14. #define PWM_AH_PIN GPIO_Pin_8
  15. #define PWM_AH_GPIO_PORT GPIOA
  16. #define PWM_AH_GPIO_CLK RCC_AHB1Periph_GPIOA
  17. #define PWM_AH_SOURCE GPIO_PinSource8
  18. #define PWM_AH_AF GPIO_AF_TIM1
  19. #define PWM_AL_PIN GPIO_Pin_13
  20. #define PWM_AL_GPIO_PORT GPIOB
  21. #define PWM_AL_GPIO_CLK RCC_AHB1Periph_GPIOB
  22. #define PWM_AL_SOURCE GPIO_PinSource13
  23. #define PWM_AL_AF GPIO_AF_TIM1
  24. #define PWM_BH_PIN GPIO_Pin_9
  25. #define PWM_BH_GPIO_PORT GPIOA
  26. #define PWM_BH_GPIO_CLK RCC_AHB1Periph_GPIOA
  27. #define PWM_BH_SOURCE GPIO_PinSource9
  28. #define PWM_BH_AF GPIO_AF_TIM1
  29. #define PWM_BL_PIN GPIO_Pin_14
  30. #define PWM_BL_GPIO_PORT GPIOB
  31. #define PWM_BL_GPIO_CLK RCC_AHB1Periph_GPIOB
  32. #define PWM_BL_SOURCE GPIO_PinSource14
  33. #define PWM_BL_AF GPIO_AF_TIM1
  34. #define PWM_CH_PIN GPIO_Pin_10
  35. #define PWM_CH_GPIO_PORT GPIOA
  36. #define PWM_CH_GPIO_CLK RCC_AHB1Periph_GPIOA
  37. #define PWM_CH_SOURCE GPIO_PinSource10
  38. #define PWM_CH_AF GPIO_AF_TIM1
  39. #define PWM_CL_PIN GPIO_Pin_15
  40. #define PWM_CL_GPIO_PORT GPIOB
  41. #define PWM_CL_GPIO_CLK RCC_AHB1Periph_GPIOB
  42. #define PWM_CL_SOURCE GPIO_PinSource15
  43. #define PWM_CL_AF GPIO_AF_TIM1
  44. //============================== UVW PWM define end ==============================
  45. //============================== DMA define start ==============================
  46. #define DMA2_CLK RCC_AHB1Periph_DMA2
  47. #define DMA_CHANNEL2 DMA_Channel_2
  48. #define DMA2_STREAM1 DMA2_Stream1
  49. //============================== DMA define end ==============================
  50. //============================== ADC sample define start ==============================
  51. // ADC数据寄存器地址
  52. #define ADC1_DR_ADDRESS ((uint32_t)&ADC1->DR)
  53. #define ADC2_DR_ADDRESS ((uint32_t)&ADC2->DR)
  54. #define ADC3_DR_ADDRESS ((uint32_t)&ADC3->DR)
  55. // ADC配置
  56. #define SAMPLE_ADC1 ADC1
  57. #define SAMPLE_ADC1_CLK RCC_APB2Periph_ADC1
  58. #define SAMPLE_ADC2 ADC2
  59. #define SAMPLE_ADC2_CLK RCC_APB2Periph_ADC2
  60. #define SAMPLE_ADC3 ADC3
  61. #define SAMPLE_ADC3_CLK RCC_APB2Periph_ADC3
  62. // 三相电流配置(注入组)
  63. // A相电流 - PB0, ADC1_IN8
  64. #define A_CURRENT_ADC_PIN GPIO_Pin_0
  65. #define A_CURRENT_ADC_GPIO_PORT GPIOB
  66. #define A_CURRENT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOB
  67. #define A_CURRENT_ADC_SOURCE GPIO_PinSource0
  68. #define A_CURRENT_ADC_CHANNEL ADC_Channel_8
  69. // B相电流 - PA6, ADC2_IN6
  70. #define B_CURRENT_ADC_PIN GPIO_Pin_6
  71. #define B_CURRENT_ADC_GPIO_PORT GPIOA
  72. #define B_CURRENT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOA
  73. #define B_CURRENT_ADC_SOURCE GPIO_PinSource6
  74. #define B_CURRENT_ADC_CHANNEL ADC_Channel_6
  75. // C相电流 - PA3, ADC3_IN3
  76. #define C_CURRENT_ADC_PIN GPIO_Pin_3
  77. #define C_CURRENT_ADC_GPIO_PORT GPIOA
  78. #define C_CURRENT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOA
  79. #define C_CURRENT_ADC_SOURCE GPIO_PinSource3
  80. #define C_CURRENT_ADC_CHANNEL ADC_Channel_3
  81. // 其他采样(规则组,ADC3)
  82. // 母线电压 - PB1, ADC3_IN9
  83. #define VBUS_ADC_PIN GPIO_Pin_1
  84. #define VBUS_ADC_GPIO_PORT GPIOB
  85. #define VBUS_ADC_GPIO_CLK RCC_AHB1Periph_GPIOB
  86. #define VBUS_ADC_SOURCE GPIO_PinSource1
  87. #define VBUS_ADC_CHANNEL ADC_Channel_9
  88. // 温度采集 - PA0, ADC3_IN0
  89. #define TEMPERATURE_ADC_PIN GPIO_Pin_0
  90. #define TEMPERATURE_ADC_GPIO_PORT GPIOA
  91. #define TEMPERATURE_ADC_GPIO_CLK RCC_AHB1Periph_GPIOA
  92. #define TEMPERATURE_ADC_SOURCE GPIO_PinSource0
  93. #define TEMPERATURE_ADC_CHANNEL ADC_Channel_0
  94. // U端电压 - PF7, ADC3_IN5
  95. #define U_VOLT_ADC_PIN GPIO_Pin_7
  96. #define U_VOLT_ADC_GPIO_PORT GPIOF
  97. #define U_VOLT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOF
  98. #define U_VOLT_ADC_SOURCE GPIO_PinSource7
  99. #define U_VOLT_ADC_CHANNEL ADC_Channel_5
  100. // V端电压 - PF8, ADC3_IN6
  101. #define V_VOLT_ADC_PIN GPIO_Pin_8
  102. #define V_VOLT_ADC_GPIO_PORT GPIOF
  103. #define V_VOLT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOF
  104. #define V_VOLT_ADC_SOURCE GPIO_PinSource8
  105. #define V_VOLT_ADC_CHANNEL ADC_Channel_6
  106. // W端电压 - PF9, ADC3_IN7
  107. #define W_VOLT_ADC_PIN GPIO_Pin_9
  108. #define W_VOLT_ADC_GPIO_PORT GPIOF
  109. #define W_VOLT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOF
  110. #define W_VOLT_ADC_SOURCE GPIO_PinSource9
  111. #define W_VOLT_ADC_CHANNEL ADC_Channel_7
  112. // ADC3 DMA缓冲区索引
  113. #define ADC3_U_VOLT_INDEX 0
  114. #define ADC3_V_VOLT_INDEX 1
  115. #define ADC3_W_VOLT_INDEX 2
  116. #define ADC3_TEMP_INDEX 3
  117. #define ADC3_VBUS_INDEX 4
  118. #define ADC3_DMA_BUFFER_SIZE 5
  119. // 三相电流通过中断读取,不需要全局数组
  120. //============================== ADC sample define end ==============================
  121. //============================== communication task timer define start ==============================
  122. #define COMMUNICATION_TASK_TIM_CLOCK 84000000
  123. #define COMMUNICATION_TASK_TIM_PRESCALER 839
  124. #define COMMUNICATION_TASK_FREQ 10
  125. #define COMMUNICATION_TASK_TIM TIM4
  126. #define COMMUNICATION_TASK_TIM_CLK RCC_APB1Periph_TIM4
  127. #define COM_TASK_TIM_IRQn TIM4_IRQn
  128. #define COM_TASK_TIM_IRQHandler TIM4_IRQHandler
  129. #define COM_TASK_TIM_PERIOD (COMMUNICATION_TASK_TIM_CLOCK \
  130. / (COMMUNICATION_TASK_TIM_PRESCALER + 1) \
  131. / COMMUNICATION_TASK_FREQ)
  132. //============================== communication task timer define end ==============================
  133. //============================== hall sensor define start ==============================
  134. #define HALL_TIM TIM5
  135. #define HALL_TIM_CLK RCC_APB1Periph_TIM5
  136. #define HALL_CH1_PIN GPIO_Pin_10
  137. #define HALL_CH1_GPIO_PORT GPIOH
  138. #define HALL_CH1_GPIO_CLK RCC_AHB1Periph_GPIOH
  139. #define HALL_CH1_SOURCE GPIO_PinSource10
  140. #define HALL_CH1_AF GPIO_AF_TIM5
  141. #define HALL_CH2_PIN GPIO_Pin_11
  142. #define HALL_CH2_GPIO_PORT GPIOH
  143. #define HALL_CH2_GPIO_CLK RCC_AHB1Periph_GPIOH
  144. #define HALL_CH2_SOURCE GPIO_PinSource11
  145. #define HALL_CH2_AF GPIO_AF_TIM5
  146. #define HALL_CH3_PIN GPIO_Pin_12
  147. #define HALL_CH3_GPIO_PORT GPIOH
  148. #define HALL_CH3_GPIO_CLK RCC_AHB1Periph_GPIOH
  149. #define HALL_CH3_SOURCE GPIO_PinSource12
  150. #define HALL_CH3_AF GPIO_AF_TIM5
  151. //============================== hall sensor define end ==============================
  152. //============================== USER LED define start ==============================
  153. #define USER_LED1_PIN GPIO_Pin_0
  154. #define USER_LED1_GPIO_PORT GPIOE
  155. #define USER_LED1_GPIO_CLK RCC_AHB1Periph_GPIOE
  156. #define USER_LED1_SOURCE GPIO_PinSource0
  157. #define USER_LED2_PIN GPIO_Pin_1
  158. #define USER_LED2_GPIO_PORT GPIOE
  159. #define USER_LED2_GPIO_CLK RCC_AHB1Periph_GPIOE
  160. #define USER_LED2_SOURCE GPIO_PinSource1
  161. //============================== USER LED define end ==============================
  162. //============================== KEY define start ==============================
  163. #define KEY_1_PIN GPIO_Pin_2
  164. #define KEY_1_GPIO_PORT GPIOE
  165. #define KEY_1_GPIO_CLK RCC_AHB1Periph_GPIOE
  166. #define KEY_1_EXTI_GPIO_PORT EXTI_PortSourceGPIOE
  167. #define KEY_1_EXTI_SOURCE EXTI_PinSource2
  168. #define KEY_1_EXTI_LINE EXTI_Line2
  169. #define KEY_2_PIN GPIO_Pin_3
  170. #define KEY_2_GPIO_PORT GPIOE
  171. #define KEY_2_GPIO_CLK RCC_AHB1Periph_GPIOE
  172. #define KEY_2_EXTI_GPIO_PORT EXTI_PortSourceGPIOE
  173. #define KEY_2_EXTI_SOURCE EXTI_PinSource3
  174. #define KEY_2_EXTI_LINE EXTI_Line3
  175. #define KEY_3_PIN GPIO_Pin_4
  176. #define KEY_3_GPIO_PORT GPIOE
  177. #define KEY_3_GPIO_CLK RCC_AHB1Periph_GPIOE
  178. #define KEY_3_EXTI_GPIO_PORT EXTI_PortSourceGPIOE
  179. #define KEY_3_EXTI_SOURCE EXTI_PinSource4
  180. #define KEY_3_EXTI_LINE EXTI_Line4
  181. //============================== KEY define end ==============================
  182. //============================== EN PIN define start ==============================
  183. #define USER_EN_PIN GPIO_Pin_10
  184. #define USER_EN_GPIO_PORT GPIOF
  185. #define USER_EN_GPIO_CLK RCC_AHB1Periph_GPIOF
  186. #define USER_EN_SOURCE GPIO_PinSource10
  187. #define SHUTDOWN_EN() GPIO_SetBits(USER_EN_GPIO_PORT,USER_EN_PIN)
  188. #define SHUTDOWN_OFF() GPIO_ResetBits(USER_EN_GPIO_PORT,USER_EN_PIN)
  189. //============================== EN PIN define end ==============================
  190. extern void hard_init(void);
  191. #endif /* __BOARD_CONFIG_H_ */