#ifndef _HAL_H__ #define _HAL_H__ #include "stm32f3xx_hal.h" #define PWM_UH_Pin GPIO_PIN_8 #define PWM_UH_GPIO_Port GPIOA #define PWM_VH_Pin GPIO_PIN_9 #define PWM_VH_GPIO_Port GPIOA #define PWM_WH_Pin GPIO_PIN_10 #define PWM_WH_GPIO_Port GPIOA #define PWM_EN_U_Pin GPIO_PIN_10 #define PWM_EN_U_GPIO_Port GPIOC #define PWM_EN_V_Pin GPIO_PIN_11 #define PWM_EN_V_GPIO_Port GPIOC #define PWM_EN_W_Pin GPIO_PIN_12 #define PWM_EN_W_GPIO_Port GPIOC #define CURR_AMPL_W_Pin GPIO_PIN_0 #define CURR_AMPL_W_GPIO_Port GPIOC #define CURR_AMPL_V_Pin GPIO_PIN_1 #define CURR_AMPL_V_GPIO_Port GPIOC #define TEMPERATURE_Pin GPIO_PIN_2 #define TEMPERATURE_GPIO_Port GPIOC #define CURR_AMPL_U_Pin GPIO_PIN_0 #define CURR_AMPL_U_GPIO_Port GPIOA #define BUS_VOLTAGE_Pin GPIO_PIN_1 #define BUS_VOLTAGE_GPIO_Port GPIOA #define M1_OCP_Pin GPIO_PIN_11 #define M1_OCP_GPIO_Port GPIOA #define HALL_1_PIN GPIO_PIN_15 #define HALL_1_GROUP GPIOA #define HALL_2_PIN GPIO_PIN_3 #define HALL_2_GROUP GPIOB #define HALL_3_PIN GPIO_PIN_10 #define HALL_3_GROUP GPIOB #define CURRENT_U_ADC_CHANNAL 6 #define CURRENT_V_ADC_CHANNAL 7 #define CURRENT_W_ADC_CHANNAL 1 #define READ_HALL1() (HAL_GPIO_ReadPin(HALL_1_GROUP, HALL_1_PIN) == GPIO_PIN_SET ?1:0) #define READ_HALL2() (HAL_GPIO_ReadPin(HALL_2_GROUP, HALL_2_PIN) == GPIO_PIN_SET ?1:0) #define READ_HALL3() (HAL_GPIO_ReadPin(HALL_3_GROUP, HALL_3_PIN) == GPIO_PIN_SET ?1:0) #define SYSTEM_CLOCK (72000000L) #define TIM_CLOCK (SYSTEM_CLOCK * 2) /*SystemClock_Config中TIM1的clk从sys PLL 过来,固定2倍的PLL频率*/ #define TIM_CLOCK_MHz (144) #define ADC_CLOCK (SYSTEM_CLOCK) #define ADC_CLOCK_MHz (72) #define NS_PER_TCLK (7) /* (1/144000000 * 1000000000) */ #define NS_2_TCLK(ns) ((ns/NS_PER_TCLK) + 1) //ns 转为pwm使用的那个TIM的clk count #define FOC_FS (20 * 1000) #define FOC_PWM_period (TIM_CLOCK/FOC_FS) #define FOC_PWM_Half_Period (FOC_PWM_period/2) #define MAX_VBUS (12.f) //12v #define ADC_TRIG_CONV_LATENCY_CYCLES 3.5f #define ADC_SAMPLING_CYCLES 7.5f #define HW_DEAD_TIME_NS 800 #define HW_RISE_TIME_NS 50 #define HW_NOISE_TIME_NS 50 #define TDead NS_2_TCLK(HW_DEAD_TIME_NS)/* 死区时间 */ #define TRise NS_2_TCLK(HW_RISE_TIME_NS)/* MOS 开关时间*/ #define TNoise NS_2_TCLK(HW_NOISE_TIME_NS)/* MOS开关引入的开关噪声时间 */ #define TADC ((uint16_t)((ADC_TRIG_CONV_LATENCY_CYCLES + ADC_SAMPLING_CYCLES) * 2 * TIM_CLOCK_MHz) / ADC_CLOCK_MHz + 1u)/* ADC 采样时间 */ void Error_Handler(void); void SystemClock_Config(void); void HAL_GPIO_init(void); void HAL_NVIC_Init(void); void HAL_EXIT_Init(void); #endif /* _HAL_H__ */