HPM APP
HPMicro Application solution
pmsm_init.h File Reference
#include "parm_global.h"
#include "hpm_adc.h"
#include "hpm_pwm_drv.h"
#include "hpm_trgm_drv.h"
#include "hpm_gptmr_drv.h"
#include "hpm_clock_drv.h"
#include "hpm_uart_drv.h"
#include "hpm_synt_drv.h"
#include "hpm_bldc_define.h"
#include "hpm_foc.h"
#include "hpm_smc.h"
#include "hpm_qei_drv.h"
#include "bldc_foc_callback.h"
#include "pmsm_currentctrl.h"
#include "pmsm_speedctrl.h"

Go to the source code of this file.

Macros

#define SYNC_TIME_0   (1000U)
 sync time ;四轴同步时间定义 More...
 
#define SYNC_TIME_1   (2000U)
 
#define SYNC_TIME_2   (3000U)
 
#define SYNC_TIME_3   (4000U)
 
#define PWM_FREQUENCY   (20000)
 PWM freq uint HZ ;pwm 频率 More...
 
#define PWM_RELOAD   (motor0_clock_hz/PWM_FREQUENCY)
 pwm reload value ;pwm 重载值 More...
 
#define BLDC_CURRENT_SET_TIME_MS   (200)
 Zero drift calculate times(ms),must less than 250. ;电流采样次数,用于计算零漂 More...
 

Functions

void parm_global_init (void)
 Parameter initialization ;参数初始化 More...
 
void pi_para_init (BLDC_CONTRL_PID_PARA *par, float KP, float KI, float MAX)
 init kp,ki,pi control function ;pi控制器初始化 More...
 
void pmsm_param_init (BLDC_CONTROL_FOC_PARA *par, uint8_t MOTOR_ID)
 init foc control para ;电机矢量控制初始化 More...
 
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配置 More...
 
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采样 More...
 
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触发电流环中断 More...
 
void timer_init (void)
 1ms timer for speed loop. ;1ms中断配置gptimer More...
 
void init_trigger_mux (TRGM_Type *ptr, uint8_t TRAG_INPUT, uint8_t TRAG_INPUT_FOR_ADC)
 Config TRGM output&input ;互联管理器配置 More...
 
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抢占模式配置 More...
 
void adc_cfg_init (ADC16_Type *ptr, uint8_t channel, uint32_t sample_cycle, uint32_t ADC_MODULE)
 adc cfg init ;adc配置初始化 More...
 
void adc_pins_init (PWM_Type *ptr)
 adc pins init ;adc引脚初始化 More...
 
void lv_set_adval_middle (BLDC_CONTROL_FOC_PARA *par, uint32_t ADC_TRG)
 get current value in steady state ;零漂计算 More...
 
void pwm_pins_init (PWM_Type *ptr)
 pwm pins init ;pwm引脚初始化 More...
 
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配置 More...
 
void qei_pins_init (PWM_Type *ptr)
 qei pins init ;qei引脚初始化 More...
 
void pwm_sync (void)
 pwm enable at synci. ;pwm 同步使能配置 More...
 
void pmsm_motor0_init (void)
 PMSM Motor1 initialization ;轴0 adc pwm qei等初始化配置 More...
 
void pmsm_motor1_init (void)
 
void pmsm_motor2_init (void)
 
void pmsm_motor3_init (void)
 
void pmsm_motor_init (void)
 
void pmsm0_foc_angle_align (void)
 Rotor Angle alignment aligns the encoder midpoint value with the actual physical Angle midpoint value . ;给定d轴电流,使得d轴与A轴重合,电角度为0. More...
 
void pmsm1_foc_angle_align (void)
 
void pmsm2_foc_angle_align (void)
 
void pmsm3_foc_angle_align (void)
 
void pmsm_foc_angle_align (void)
 

Variables

uint32_t adc_buff [3][(40U)]