12 #include "hpm_pwm_drv.h"
13 #include "hpm_trgm_drv.h"
14 #include "hpm_gptmr_drv.h"
15 #include "hpm_clock_drv.h"
16 #include "hpm_uart_drv.h"
17 #include "hpm_synt_drv.h"
18 #include "hpm_bldc_define.h"
21 #include "hpm_qei_drv.h"
43 #define SYNC_TIME_0 (1000U)
44 #define SYNC_TIME_1 (2000U)
45 #define SYNC_TIME_2 (3000U)
46 #define SYNC_TIME_3 (4000U)
51 #define PWM_FREQUENCY (20000)
56 #define PWM_RELOAD (motor0_clock_hz/PWM_FREQUENCY)
61 #define BLDC_CURRENT_SET_TIME_MS (200)
80 void pi_para_init(BLDC_CONTRL_PID_PARA *par,
float KP,
float KI,
float MAX);
100 void pwm_duty_init(PWM_Type *ptr, uint32_t PWM_PRD, uint8_t CMP_SHADOW_REGISTER_UPDATE_TYPE, uint8_t CMP_COMPARE);
112 void pwm_trigfor_adc_init(PWM_Type *ptr, uint32_t PWM_PRD, uint8_t CMP_SHADOW_REGISTER_UPDATE_TYPE, uint8_t CMP_COMPARE, uint8_t PWM_CH_TRIG_ADC);
123 void pwm_trigfor_currentctrl_init(PWM_Type *ptr, uint32_t PWM_PRD, uint8_t CMP_SHADOW_REGISTER_UPDATE_TYPE, uint8_t CMP_COMPARE, uint8_t PWM_CH_TRIG_CURRENTCtrl);
139 void init_trigger_mux(TRGM_Type * ptr, uint8_t TRAG_INPUT, uint8_t TRAG_INPUT_FOR_ADC);
151 void init_trigger_cfg(ADC16_Type *ptr, uint8_t trig_ch, uint8_t channel,
bool inten, uint32_t ADC_MODULE, uint8_t ADC_PREEMPT_TRIG_LEN);
162 void adc_cfg_init(ADC16_Type *ptr, uint8_t channel, uint32_t sample_cycle, uint32_t ADC_MODULE);
199 void qei_cfg_init(TRGM_Type *ptr, QEI_Type *ptr_qei, uint8_t trag_in_A, uint8_t trag_out_A, uint8_t trag_in_B, uint8_t trag_out_B, uint32_t QEI_IRQ, uint32_t MAX_cnt);
#define BOARD_PMSM0_ADC_SEQ_DMA_SIZE_IN_4BYTES
Definition: parm_global.h:35
void pwm_duty_init(PWM_Type *ptr, uint32_t PWM_PRD, uint8_t CMP_SHADOW_REGISTER_UPDATE_TYPE, uint8_t CMP_COMPARE)
Config PWM ;pwm配置
Definition: pmsm_init.c:99
uint32_t adc_buff[3][(40U)]
void pwm_sync(void)
pwm enable at synci. ;pwm 同步使能配置
Definition: pmsm_init.c:308
void parm_global_init(void)
Parameter initialization ;参数初始化
Definition: pmsm_init.c:21
void pmsm_motor3_init(void)
Definition: pmsm_init.c:786
void pmsm0_foc_angle_align(void)
Rotor Angle alignment aligns the encoder midpoint value with the actual physical Angle midpoint value...
Definition: pmsm_init.c:454
void qei_cfg_init(TRGM_Type *ptr, QEI_Type *ptr_qei, uint8_t trag_in_A, uint8_t trag_out_A, uint8_t trag_in_B, uint8_t trag_out_B, uint32_t QEI_IRQ, uint32_t MAX_cnt)
qei cfg ;qei配置
Definition: pmsm_init.c:428
void lv_set_adval_middle(BLDC_CONTROL_FOC_PARA *par, uint32_t ADC_TRG)
get current value in steady state ;零漂计算
Definition: pmsm_init.c:350
void pmsm_param_init(BLDC_CONTROL_FOC_PARA *par, uint8_t MOTOR_ID)
init foc control para ;电机矢量控制初始化
Definition: pmsm_init.c:54
void pwm_trigfor_adc_init(PWM_Type *ptr, uint32_t PWM_PRD, uint8_t CMP_SHADOW_REGISTER_UPDATE_TYPE, uint8_t CMP_COMPARE, uint8_t PWM_CH_TRIG_ADC)
Config the PWM channel for ADC trigger ;pwm触发adc采样
Definition: pmsm_init.c:150
void pwm_trigfor_currentctrl_init(PWM_Type *ptr, uint32_t PWM_PRD, uint8_t CMP_SHADOW_REGISTER_UPDATE_TYPE, uint8_t CMP_COMPARE, uint8_t PWM_CH_TRIG_CURRENTCtrl)
Config the PWM channel for current loop interrupt ;pwm触发电流环中断
Definition: pmsm_init.c:170
void adc_cfg_init(ADC16_Type *ptr, uint8_t channel, uint32_t sample_cycle, uint32_t ADC_MODULE)
adc cfg init ;adc配置初始化
Definition: pmsm_init.c:236
void pmsm_motor0_init(void)
PMSM Motor1 initialization ;轴0 adc pwm qei等初始化配置
Definition: pmsm_init.c:686
void qei_pins_init(PWM_Type *ptr)
qei pins init ;qei引脚初始化
Definition: pmsm_init.c:660
void timer_init(void)
1ms timer for speed loop. ;1ms中断配置gptimer
Definition: pmsm_init.c:194
void pmsm_motor1_init(void)
Definition: pmsm_init.c:726
void adc_pins_init(PWM_Type *ptr)
adc pins init ;adc引脚初始化
Definition: pmsm_init.c:318
void pmsm_motor_init(void)
Definition: pmsm_init.c:814
void pwm_pins_init(PWM_Type *ptr)
pwm pins init ;pwm引脚初始化
Definition: pmsm_init.c:381
void init_trigger_mux(TRGM_Type *ptr, uint8_t TRAG_INPUT, uint8_t TRAG_INPUT_FOR_ADC)
Config TRGM output&input ;互联管理器配置
Definition: pmsm_init.c:211
void pi_para_init(BLDC_CONTRL_PID_PARA *par, float KP, float KI, float MAX)
init kp,ki,pi control function ;pi控制器初始化
Definition: pmsm_init.c:44
void pmsm2_foc_angle_align(void)
Definition: pmsm_init.c:546
void pmsm3_foc_angle_align(void)
Definition: pmsm_init.c:591
void pmsm1_foc_angle_align(void)
Definition: pmsm_init.c:501
void pmsm_motor2_init(void)
Definition: pmsm_init.c:757
void pmsm_foc_angle_align(void)
Definition: pmsm_init.c:636
void init_trigger_cfg(ADC16_Type *ptr, uint8_t trig_ch, uint8_t channel, bool inten, uint32_t ADC_MODULE, uint8_t ADC_PREEMPT_TRIG_LEN)
Config the preemption mode for an ADC instancet ;adc抢占模式配置
Definition: pmsm_init.c:222