#ifndef _BOARD_MC_V1_H__ #define _BOARD_MC_V1_H__ #if defined (GD32F30X_HD) || defined (GD32F30X_XD) || defined (GD32F30X_CL) #include "gd32f30x.h" #elif defined GD32E10x #include "gd32e10x.h" #endif #define HW_DEAD_TIME_NS 200u #define HW_RISE_TIME_NS 500u #define HW_NOISE_TIME_NS 300u #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) * TIM_CLOCK_MHz) / ADC_CLOCK_MHz + 1u)/* ADC ����ʱ�� */ #define TSampleMIN (TDead + TRise + TADC) //采样需要的总时间 #define TSampleBefore (TDead + TRise) //采样开始前需要等待的时间 #define ADC_REFERENCE_VOLTAGE (3.3F) /* MOS驱动 */ #define pwm_timer TIMER0 #define PWM_U_P_GROUP GPIOA #define PWM_U_P_PIN GPIO_PIN_8 #define PWM_U_P_RCU RCU_GPIOA #define PWM_U_P_MODE GPIO_MODE_AF_PP #define PWM_U_N_GROUP GPIOB #define PWM_U_N_PIN GPIO_PIN_13 #define PWM_U_N_RCU RCU_GPIOB #define PWM_U_N_MODE GPIO_MODE_AF_PP #define PWM_V_P_GROUP GPIOA #define PWM_V_P_PIN GPIO_PIN_9 #define PWM_V_P_RCU RCU_GPIOA #define PWM_V_P_MODE GPIO_MODE_AF_PP #define PWM_V_N_GROUP GPIOB #define PWM_V_N_PIN GPIO_PIN_14 #define PWM_V_N_RCU RCU_GPIOB #define PWM_V_N_MODE GPIO_MODE_AF_PP #define PWM_W_P_GROUP GPIOA #define PWM_W_P_PIN GPIO_PIN_10 #define PWM_W_P_RCU RCU_GPIOA #define PWM_W_P_MODE GPIO_MODE_AF_PP #define PWM_W_N_GROUP GPIOB #define PWM_W_N_PIN GPIO_PIN_15 #define PWM_W_N_RCU RCU_GPIOB #define PWM_W_N_MODE GPIO_MODE_AF_PP #define PWM_BRAKE_GROUP GPIOB #define PWM_BRAKE_PIN GPIO_PIN_12 #define PWM_BRAKE_RCU RCU_GPIOB #define PWM_BRAKE_MODE GPIO_MODE_AF_PP /* 高边电流传感器采样 */ #define HIGH_SIDE_CURRENT_SENSOR #define U_PHASE_I_CHAN ADC_CHANNEL_5 #define V_PHASE_I_CHAN ADC_CHANNEL_6 #define U_PHASE_ADC_GROUP GPIOA #define U_PHASE_ADC_PIN GPIO_PIN_5 #define U_PHASE_ADC_RCU RCU_GPIOA #define U_PHASE_ADC_MODE GPIO_MODE_AIN #define V_PHASE_ADC_GROUP GPIOA #define V_PHASE_ADC_PIN GPIO_PIN_6 #define V_PHASE_ADC_RCU RCU_GPIOC #define V_PHASE_ADC_MODE GPIO_MODE_AIN /* 温度,母线,油门等采集*/ #define MOTOR_TEMP_CHAN ADC_CHANNEL_0 #define THROTTLE_CHAN ADC_CHANNEL_1 //转把信号 #define VBUS_V_CHAN ADC_CHANNEL_2 #define VBUS_I_CHAN ADC_CHANNEL_9 #define ADC_TO_CURR_ceof (0.0942f) #define VBUS_VOL_CEOF (ADC_REFERENCE_VOLTAGE*45/4096.0f) #define THROTTLE_VOL_CEOF (1) /* 刹车手把输入 */ #define GPIO_BRAKE_IN_GROUP GPIOA #define GPIO_BRAKE_IN_PIN GPIO_PIN_2 #define GPIO_BRAKE_IN_RCU RCU_GPIOA #define GPIO_BRAKE_IN_MODE GPIO_MODE_IN_FLOATING #define GPIO_BRAKE_IRQ EXTI2_IRQn #define GPIO_BRAKE_EXTI EXTI_2 #define GPIO_BRAKE_EXIT_SRC_GROUP GPIO_PORT_SOURCE_GPIOA #define GPIO_BRAKE_EXIT_SRC_PIN GPIO_PIN_SOURCE_2 /* 是否用编码器 */ #define USE_ENCODER_ABI /* 编码器 */ #define ENC_A_GROUP GPIOA #define ENC_A_PIN GPIO_PIN_6 #define ENC_A_RCU RCU_GPIOA #define ENC_A_MODE GPIO_MODE_IN_FLOATING #define ENC_B_GROUP GPIOA #define ENC_B_PIN GPIO_PIN_7 #define ENC_B_RCU RCU_GPIOA #define ENC_B_MODE GPIO_MODE_IN_FLOATING #define ENC_PWM_GROUP GPIOB #define ENC_PWM_PIN GPIO_PIN_6 #define ENC_PWM_RCU RCU_GPIOB #define ENC_PWM_MODE GPIO_MODE_IN_FLOATING #define ENC_I_GROUP GPIOB /*测量编码器的ABI的I信号,360度同步一次*/ #define ENC_I_PIN GPIO_PIN_0 #define ENC_I_RCU RCU_GPIOB #define ENC_I_MODE GPIO_MODE_IPU #define ENC_I_IRQ EXTI0_IRQn #define ENC_I_EXTI EXTI_0 #define ENC_I_EXIT_SRC_GROUP GPIO_PORT_SOURCE_GPIOB #define ENC_I_EXIT_SRC_PIN GPIO_PIN_SOURCE_0 #define ENC_TIMER TIMER2 /* 测量编码器的ABI信号的AB信号 */ #define ENC_TIMER_RCU RCU_TIMER2 #define ENC_TIMER_IRQ TIMER2_IRQn #define ENC_TIMER_IRQHandler TIMER2_IRQHandler #define ENC_PWM_TIMER TIMER3 /* 测量绝对编码器PWM输出的占空比,获取转子angle*/ #define ENC_PWM_TIMER_RCU RCU_TIMER3 #define ENC_PWM_TIMER_IRQ TIMER3_IRQn #define ENC_PWM_TIMER_CHAN TIMER_CH_0 #define ENC_PWM_TIMER_IRQ_CH TIMER_INT_CH0 #define ENC_PWM_TIMER_INT_FLG TIMER_INT_FLAG_CH0 #define ENC_PWM_IRQHandler TIMER3_IRQHandler #endif /*_BOARD_MC_V1_H__ */