#ifndef __BOARD_CONFIG_H_ #define __BOARD_CONFIG_H_ //============================== UVW PWM define start ============================== #define PWM_TIM TIM1 #define PWM_TIM_CLOCK 168000000 #define PWM_TIM_FREQ 10000 #define PWM_TIM_PULSE (PWM_TIM_CLOCK/(2*PWM_TIM_FREQ)) #define PWM_TIM_PULSE_TPWM (PWM_TIM_CLOCK/(PWM_TIM_FREQ)) #define FOC_PERIOD 0.0001F #define DEAD_TIME_NS 200 #define PWM_DEAD_TIME (uint16_t)(((uint64_t)DEAD_TIME_NS * PWM_TIM_CLOCK) / 1000000000ULL) #define PWM_TIM_CLK RCC_APB2Periph_TIM1 // PWM引脚定义(保持不变) #define PWM_AH_PIN GPIO_Pin_8 #define PWM_AH_GPIO_PORT GPIOA #define PWM_AH_GPIO_CLK RCC_AHB1Periph_GPIOA #define PWM_AH_SOURCE GPIO_PinSource8 #define PWM_AH_AF GPIO_AF_TIM1 #define PWM_AL_PIN GPIO_Pin_13 #define PWM_AL_GPIO_PORT GPIOB #define PWM_AL_GPIO_CLK RCC_AHB1Periph_GPIOB #define PWM_AL_SOURCE GPIO_PinSource13 #define PWM_AL_AF GPIO_AF_TIM1 #define PWM_BH_PIN GPIO_Pin_9 #define PWM_BH_GPIO_PORT GPIOA #define PWM_BH_GPIO_CLK RCC_AHB1Periph_GPIOA #define PWM_BH_SOURCE GPIO_PinSource9 #define PWM_BH_AF GPIO_AF_TIM1 #define PWM_BL_PIN GPIO_Pin_14 #define PWM_BL_GPIO_PORT GPIOB #define PWM_BL_GPIO_CLK RCC_AHB1Periph_GPIOB #define PWM_BL_SOURCE GPIO_PinSource14 #define PWM_BL_AF GPIO_AF_TIM1 #define PWM_CH_PIN GPIO_Pin_10 #define PWM_CH_GPIO_PORT GPIOA #define PWM_CH_GPIO_CLK RCC_AHB1Periph_GPIOA #define PWM_CH_SOURCE GPIO_PinSource10 #define PWM_CH_AF GPIO_AF_TIM1 #define PWM_CL_PIN GPIO_Pin_15 #define PWM_CL_GPIO_PORT GPIOB #define PWM_CL_GPIO_CLK RCC_AHB1Periph_GPIOB #define PWM_CL_SOURCE GPIO_PinSource15 #define PWM_CL_AF GPIO_AF_TIM1 //============================== UVW PWM define end ============================== //============================== DMA define start ============================== #define DMA2_CLK RCC_AHB1Periph_DMA2 #define DMA_CHANNEL2 DMA_Channel_2 #define DMA2_STREAM1 DMA2_Stream1 //============================== DMA define end ============================== //============================== ADC sample define start ============================== // ADC数据寄存器地址 #define ADC1_DR_ADDRESS ((uint32_t)&ADC1->DR) #define ADC2_DR_ADDRESS ((uint32_t)&ADC2->DR) #define ADC3_DR_ADDRESS ((uint32_t)&ADC3->DR) // ADC配置 #define SAMPLE_ADC1 ADC1 #define SAMPLE_ADC1_CLK RCC_APB2Periph_ADC1 #define SAMPLE_ADC2 ADC2 #define SAMPLE_ADC2_CLK RCC_APB2Periph_ADC2 #define SAMPLE_ADC3 ADC3 #define SAMPLE_ADC3_CLK RCC_APB2Periph_ADC3 // 三相电流配置(注入组) // A相电流 - PB0, ADC1_IN8 #define A_CURRENT_ADC_PIN GPIO_Pin_0 #define A_CURRENT_ADC_GPIO_PORT GPIOB #define A_CURRENT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOB #define A_CURRENT_ADC_SOURCE GPIO_PinSource0 #define A_CURRENT_ADC_CHANNEL ADC_Channel_8 // B相电流 - PA6, ADC2_IN6 #define B_CURRENT_ADC_PIN GPIO_Pin_6 #define B_CURRENT_ADC_GPIO_PORT GPIOA #define B_CURRENT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOA #define B_CURRENT_ADC_SOURCE GPIO_PinSource6 #define B_CURRENT_ADC_CHANNEL ADC_Channel_6 // C相电流 - PA3, ADC3_IN3 #define C_CURRENT_ADC_PIN GPIO_Pin_3 #define C_CURRENT_ADC_GPIO_PORT GPIOA #define C_CURRENT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOA #define C_CURRENT_ADC_SOURCE GPIO_PinSource3 #define C_CURRENT_ADC_CHANNEL ADC_Channel_3 // 其他采样(规则组,ADC3) // 母线电压 - PB1, ADC3_IN9 #define VBUS_ADC_PIN GPIO_Pin_1 #define VBUS_ADC_GPIO_PORT GPIOB #define VBUS_ADC_GPIO_CLK RCC_AHB1Periph_GPIOB #define VBUS_ADC_SOURCE GPIO_PinSource1 #define VBUS_ADC_CHANNEL ADC_Channel_9 // 温度采集 - PA0, ADC3_IN0 #define TEMPERATURE_ADC_PIN GPIO_Pin_0 #define TEMPERATURE_ADC_GPIO_PORT GPIOA #define TEMPERATURE_ADC_GPIO_CLK RCC_AHB1Periph_GPIOA #define TEMPERATURE_ADC_SOURCE GPIO_PinSource0 #define TEMPERATURE_ADC_CHANNEL ADC_Channel_0 // U端电压 - PF7, ADC3_IN5 #define U_VOLT_ADC_PIN GPIO_Pin_7 #define U_VOLT_ADC_GPIO_PORT GPIOF #define U_VOLT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOF #define U_VOLT_ADC_SOURCE GPIO_PinSource7 #define U_VOLT_ADC_CHANNEL ADC_Channel_5 // V端电压 - PF8, ADC3_IN6 #define V_VOLT_ADC_PIN GPIO_Pin_8 #define V_VOLT_ADC_GPIO_PORT GPIOF #define V_VOLT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOF #define V_VOLT_ADC_SOURCE GPIO_PinSource8 #define V_VOLT_ADC_CHANNEL ADC_Channel_6 // W端电压 - PF9, ADC3_IN7 #define W_VOLT_ADC_PIN GPIO_Pin_9 #define W_VOLT_ADC_GPIO_PORT GPIOF #define W_VOLT_ADC_GPIO_CLK RCC_AHB1Periph_GPIOF #define W_VOLT_ADC_SOURCE GPIO_PinSource9 #define W_VOLT_ADC_CHANNEL ADC_Channel_7 // ADC3 DMA缓冲区索引 #define ADC3_U_VOLT_INDEX 0 #define ADC3_V_VOLT_INDEX 1 #define ADC3_W_VOLT_INDEX 2 #define ADC3_TEMP_INDEX 3 #define ADC3_VBUS_INDEX 4 #define ADC3_DMA_BUFFER_SIZE 5 // 三相电流通过中断读取,不需要全局数组 //============================== ADC sample define end ============================== //============================== communication task timer define start ============================== #define COMMUNICATION_TASK_TIM_CLOCK 84000000 #define COMMUNICATION_TASK_TIM_PRESCALER 839 #define COMMUNICATION_TASK_FREQ 10 #define COMMUNICATION_TASK_TIM TIM4 #define COMMUNICATION_TASK_TIM_CLK RCC_APB1Periph_TIM4 #define COM_TASK_TIM_IRQn TIM4_IRQn #define COM_TASK_TIM_IRQHandler TIM4_IRQHandler #define COM_TASK_TIM_PERIOD (COMMUNICATION_TASK_TIM_CLOCK \ / (COMMUNICATION_TASK_TIM_PRESCALER + 1) \ / COMMUNICATION_TASK_FREQ) //============================== communication task timer define end ============================== //============================== hall sensor define start ============================== #define HALL_TIM TIM5 #define HALL_TIM_CLK RCC_APB1Periph_TIM5 #define HALL_CH1_PIN GPIO_Pin_10 #define HALL_CH1_GPIO_PORT GPIOH #define HALL_CH1_GPIO_CLK RCC_AHB1Periph_GPIOH #define HALL_CH1_SOURCE GPIO_PinSource10 #define HALL_CH1_AF GPIO_AF_TIM5 #define HALL_CH2_PIN GPIO_Pin_11 #define HALL_CH2_GPIO_PORT GPIOH #define HALL_CH2_GPIO_CLK RCC_AHB1Periph_GPIOH #define HALL_CH2_SOURCE GPIO_PinSource11 #define HALL_CH2_AF GPIO_AF_TIM5 #define HALL_CH3_PIN GPIO_Pin_12 #define HALL_CH3_GPIO_PORT GPIOH #define HALL_CH3_GPIO_CLK RCC_AHB1Periph_GPIOH #define HALL_CH3_SOURCE GPIO_PinSource12 #define HALL_CH3_AF GPIO_AF_TIM5 //============================== hall sensor define end ============================== //============================== USER LED define start ============================== #define USER_LED1_PIN GPIO_Pin_0 #define USER_LED1_GPIO_PORT GPIOE #define USER_LED1_GPIO_CLK RCC_AHB1Periph_GPIOE #define USER_LED1_SOURCE GPIO_PinSource0 #define USER_LED2_PIN GPIO_Pin_1 #define USER_LED2_GPIO_PORT GPIOE #define USER_LED2_GPIO_CLK RCC_AHB1Periph_GPIOE #define USER_LED2_SOURCE GPIO_PinSource1 //============================== USER LED define end ============================== //============================== KEY define start ============================== #define KEY_1_PIN GPIO_Pin_2 #define KEY_1_GPIO_PORT GPIOE #define KEY_1_GPIO_CLK RCC_AHB1Periph_GPIOE #define KEY_1_EXTI_GPIO_PORT EXTI_PortSourceGPIOE #define KEY_1_EXTI_SOURCE EXTI_PinSource2 #define KEY_1_EXTI_LINE EXTI_Line2 #define KEY_2_PIN GPIO_Pin_3 #define KEY_2_GPIO_PORT GPIOE #define KEY_2_GPIO_CLK RCC_AHB1Periph_GPIOE #define KEY_2_EXTI_GPIO_PORT EXTI_PortSourceGPIOE #define KEY_2_EXTI_SOURCE EXTI_PinSource3 #define KEY_2_EXTI_LINE EXTI_Line3 #define KEY_3_PIN GPIO_Pin_4 #define KEY_3_GPIO_PORT GPIOE #define KEY_3_GPIO_CLK RCC_AHB1Periph_GPIOE #define KEY_3_EXTI_GPIO_PORT EXTI_PortSourceGPIOE #define KEY_3_EXTI_SOURCE EXTI_PinSource4 #define KEY_3_EXTI_LINE EXTI_Line4 //============================== KEY define end ============================== //============================== EN PIN define start ============================== #define USER_EN_PIN GPIO_Pin_10 #define USER_EN_GPIO_PORT GPIOF #define USER_EN_GPIO_CLK RCC_AHB1Periph_GPIOF #define USER_EN_SOURCE GPIO_PinSource10 #define SHUTDOWN_EN() GPIO_SetBits(USER_EN_GPIO_PORT,USER_EN_PIN) #define SHUTDOWN_OFF() GPIO_ResetBits(USER_EN_GPIO_PORT,USER_EN_PIN) //============================== EN PIN define end ============================== extern void hard_init(void); #endif /* __BOARD_CONFIG_H_ */