12 #include "hpm_vsc_regs.h"
231 return ((vsc->
IRQ_STATUS & irq_mask) == irq_mask) ? true :
false;
#define VSC_TIMELOCK_ADC_TIMESTAMP_SEL_SET(x)
Definition: hpm_vsc_regs.h:556
#define VSC_TIMELOCK_VALUE_COUNTER_SEL_MASK
Definition: hpm_vsc_regs.h:564
#define VSC_POS_WAIT_CYCLE_POS_WAIT_CYCLE_SET(x)
Definition: hpm_vsc_regs.h:599
#define VSC_TIMELOCK_POSITION_CAPTURE_MODE_MASK
Definition: hpm_vsc_regs.h:540
#define VSC_ADC_WAIT_CYCLE_ADC_WAIT_CYCLE_SET(x)
Definition: hpm_vsc_regs.h:588
#define VSC_TRIGGER_SW_TRIGGER_SW_MASK
Definition: hpm_vsc_regs.h:525
#define VSC_ABC_MODE_POSTION_USE_LAST_LOCKED_MASK
Definition: hpm_vsc_regs.h:67
#define VSC_TIMELOCK_VALUE_COUNTER_SEL_SET(x)
Definition: hpm_vsc_regs.h:566
#define VSC_TIMELOCK_POSITION_CAPTURE_MODE_SET(x)
Definition: hpm_vsc_regs.h:542
#define VSC_ABC_MODE_ENABLE_VSC_MASK
Definition: hpm_vsc_regs.h:151
#define VSC_POS_POLE_POS_POLE_MASK
Definition: hpm_vsc_regs.h:643
#define VSC_ADC_PHASE_TOLERATE_ADC_PHASE_TOLERATE_SET(x)
Definition: hpm_vsc_regs.h:634
#define VSC_POS_POLE_POS_POLE_SET(x)
Definition: hpm_vsc_regs.h:645
#define VSC_TIMELOCK_ADC_TIMESTAMP_SEL_MASK
Definition: hpm_vsc_regs.h:554
#define BIT4_MASK
Definition: hpm_common.h:93
#define BIT8_MASK
Definition: hpm_common.h:97
#define BIT2_MASK
Definition: hpm_common.h:91
#define BIT5_MASK
Definition: hpm_common.h:94
#define BIT1_MASK
Definition: hpm_common.h:90
#define BIT7_MASK
Definition: hpm_common.h:96
#define BIT10_MASK
Definition: hpm_common.h:99
#define BIT12_MASK
Definition: hpm_common.h:101
#define BIT3_MASK
Definition: hpm_common.h:92
#define BIT6_MASK
Definition: hpm_common.h:95
#define BIT11_MASK
Definition: hpm_common.h:100
#define BIT0_MASK
Definition: hpm_common.h:89
#define BIT9_MASK
Definition: hpm_common.h:98
enum vsc_irq_mask vsc_irq_mask_t
vsc irq mask bit
static void vsc_set_pos_wait_cycle(VSC_Type *vsc, uint32_t wait_cycle)
vsc set position wait cycles
Definition: hpm_vsc_drv.h:249
void vsc_sw_inject_pos_value(VSC_Type *vsc, uint32_t pos)
vsc software inject position value
Definition: hpm_vsc_drv.c:91
static void vsc_set_adc_tolerate(VSC_Type *vsc, uint32_t tolerate)
vsc set abc phase value tolerate
Definition: hpm_vsc_drv.h:259
static void vsc_set_pos_pole_pairs(VSC_Type *vsc, uint32_t pole_pairs)
vsc set position pole pairs
Definition: hpm_vsc_drv.h:269
static void vsc_set_irq_enable(VSC_Type *vsc, uint32_t irq_mask, bool enable)
vsc set irq enable or disable
Definition: hpm_vsc_drv.h:192
static void vsc_config_pos_capture_mode(VSC_Type *vsc, vsc_pos_cap_mode_t mode)
vsc config position capture mode
Definition: hpm_vsc_drv.h:160
vsc_timestamp_sel
vsc select adc timestamp
Definition: hpm_vsc_drv.h:71
static uint32_t vsc_get_irq_status(VSC_Type *vsc)
vsc get irq status
Definition: hpm_vsc_drv.h:207
vsc_irq_mask
vsc irq mask bit
Definition: hpm_vsc_drv.h:81
static uint32_t vsc_get_adc_timestamp(VSC_Type *vsc)
vsc get adc timestamp value
Definition: hpm_vsc_drv.h:352
static int32_t vsc_get_beta_axis_value(VSC_Type *vsc, bool positive_seq)
vsc get beta-axis value
Definition: hpm_vsc_drv.h:334
void vsc_get_default_config(VSC_Type *vsc, vsc_config_t *config)
vsc get default config
Definition: hpm_vsc_drv.c:10
enum vsc_data_opr_mode vsc_data_opr_mode_t
vsc data operation mode
enum vsc_timestamp_sel vsc_timestamp_sel_t
vsc select adc timestamp
vsc_data_opr_mode
vsc data operation mode
Definition: hpm_vsc_drv.h:34
static void vsc_set_enable(VSC_Type *vsc, bool enable)
vsc enable or disable
Definition: hpm_vsc_drv.h:145
vsc_adc_sel
vsc select adc instance
Definition: hpm_vsc_drv.h:51
static int32_t vsc_get_q_axis_value(VSC_Type *vsc, bool positive_seq)
vsc get q-axis value
Definition: hpm_vsc_drv.h:304
static void vsc_set_sw_trig_in(VSC_Type *vsc)
vsc set software trigger in
Definition: hpm_vsc_drv.h:278
vsc_pos_cap_mode
vsc position capture mode
Definition: hpm_vsc_drv.h:61
enum vsc_adc_sel vsc_adc_sel_t
vsc select adc instance
enum vsc_pos_cap_mode vsc_pos_cap_mode_t
vsc position capture mode
static int32_t vsc_get_d_axis_value(VSC_Type *vsc, bool positive_seq)
vsc get d-axis value
Definition: hpm_vsc_drv.h:289
static int32_t vsc_get_alpha_axis_value(VSC_Type *vsc, bool positive_seq)
vsc get alpha-axis value
Definition: hpm_vsc_drv.h:319
void vsc_sw_inject_abc_value(VSC_Type *vsc, int32_t value_a, int32_t value_b, int32_t value_c)
vsc software inject phase a/b/c value
Definition: hpm_vsc_drv.c:82
static void vsc_set_adc_wait_cycle(VSC_Type *vsc, uint32_t wait_cycle)
vsc set adc wait cycles
Definition: hpm_vsc_drv.h:239
void vsc_config_init(VSC_Type *vsc, vsc_config_t *config)
vsc config initialization
Definition: hpm_vsc_drv.c:45
static void vsc_config_adc_timestamp(VSC_Type *vsc, vsc_timestamp_sel_t select, uint8_t num)
vsc config adc timestamp
Definition: hpm_vsc_drv.h:178
enum vsc_phase_mode vsc_phase_mode_t
vsc phase mode
static bool vsc_get_irq_flag(VSC_Type *vsc, uint32_t irq_mask)
vsc check irq request flag
Definition: hpm_vsc_drv.h:229
vsc_phase_mode
vsc phase mode
Definition: hpm_vsc_drv.h:25
static void vsc_clear_irq_status(VSC_Type *vsc, uint32_t irq_mask)
vsc clear irq status
Definition: hpm_vsc_drv.h:217
@ vsc_timestamp_sel_value_b
Definition: hpm_vsc_drv.h:73
@ vsc_timestamp_sel_value_a
Definition: hpm_vsc_drv.h:72
@ vsc_timestamp_sel_value_c
Definition: hpm_vsc_drv.h:74
@ vsc_irq_convert_done
Definition: hpm_vsc_drv.h:82
@ vsc_irq_convert_conflict
Definition: hpm_vsc_drv.h:94
@ vsc_irq_adc0_timeout
Definition: hpm_vsc_drv.h:93
@ vsc_irq_adc2_cap_not_enough
Definition: hpm_vsc_drv.h:87
@ vsc_irq_abc_over_tolerate
Definition: hpm_vsc_drv.h:83
@ vsc_irq_a_overflow
Definition: hpm_vsc_drv.h:86
@ vsc_irq_adc1_timeout
Definition: hpm_vsc_drv.h:92
@ vsc_irq_adc1_cap_not_enough
Definition: hpm_vsc_drv.h:88
@ vsc_irq_pos_timeout
Definition: hpm_vsc_drv.h:90
@ vsc_irq_c_overflow
Definition: hpm_vsc_drv.h:84
@ vsc_irq_b_overflow
Definition: hpm_vsc_drv.h:85
@ vsc_irq_adc2_timeout
Definition: hpm_vsc_drv.h:91
@ vsc_irq_adc0_cap_not_enough
Definition: hpm_vsc_drv.h:89
@ vsc_data_opr_minus_div_2
Definition: hpm_vsc_drv.h:42
@ vsc_data_opr_plus_div_2
Definition: hpm_vsc_drv.h:37
@ vsc_data_opr_plus_div_3
Definition: hpm_vsc_drv.h:38
@ vsc_data_opr_minus_div_4
Definition: hpm_vsc_drv.h:44
@ vsc_data_opr_minus_mul_2
Definition: hpm_vsc_drv.h:41
@ vsc_data_opr_minus_div_3
Definition: hpm_vsc_drv.h:43
@ vsc_data_opr_minus_mul_1
Definition: hpm_vsc_drv.h:40
@ vsc_data_opr_plus_mul_2
Definition: hpm_vsc_drv.h:36
@ vsc_data_opr_plus_div_4
Definition: hpm_vsc_drv.h:39
@ vsc_data_opr_plus_mul_1
Definition: hpm_vsc_drv.h:35
@ vsc_sel_adc1
Definition: hpm_vsc_drv.h:53
@ vsc_sel_adc2
Definition: hpm_vsc_drv.h:54
@ vsc_sel_adc0
Definition: hpm_vsc_drv.h:52
@ vsc_pos_use_first_data_after_adc_sample_start
Definition: hpm_vsc_drv.h:63
@ vsc_pos_use_last_data_when_adc_sample_finish
Definition: hpm_vsc_drv.h:62
@ vsc_pos_use_last_data_before_adc_sample_start
Definition: hpm_vsc_drv.h:64
@ vsc_abc_phase
Definition: hpm_vsc_drv.h:26
@ vsc_ab_phase
Definition: hpm_vsc_drv.h:27
Definition: hpm_vsc_regs.h:12
__R uint32_t IQ_NEGEDGE
Definition: hpm_vsc_regs.h:41
__RW uint32_t ABC_MODE
Definition: hpm_vsc_regs.h:13
__R uint32_t IQ_POSEDGE
Definition: hpm_vsc_regs.h:39
__R uint32_t TIMESTAMP_LOCKED
Definition: hpm_vsc_regs.h:46
__RW uint32_t POS_WAIT_CYCLE
Definition: hpm_vsc_regs.h:33
__R uint32_t ALPHA_POSEDGE
Definition: hpm_vsc_regs.h:42
__R uint32_t ID_POSEDGE
Definition: hpm_vsc_regs.h:38
__RW uint32_t IRQ_ENABLE
Definition: hpm_vsc_regs.h:34
__R uint32_t ID_NEGEDGE
Definition: hpm_vsc_regs.h:40
__R uint32_t BETA_NEGEDGE
Definition: hpm_vsc_regs.h:45
__RW uint32_t TIMELOCK
Definition: hpm_vsc_regs.h:30
__R uint32_t ALPHA_NEGEDGE
Definition: hpm_vsc_regs.h:44
__RW uint32_t ADC_WAIT_CYCLE
Definition: hpm_vsc_regs.h:32
__RW uint32_t ADC_PHASE_TOLERATE
Definition: hpm_vsc_regs.h:35
__W uint32_t TRIGGER_SW
Definition: hpm_vsc_regs.h:29
__R uint32_t BETA_POSEDGE
Definition: hpm_vsc_regs.h:43
__RW uint32_t IRQ_STATUS
Definition: hpm_vsc_regs.h:24
__RW uint32_t POS_POLE
Definition: hpm_vsc_regs.h:36
adc config structure
Definition: hpm_vsc_drv.h:100
uint32_t adc_offset
Definition: hpm_vsc_drv.h:103
uint8_t adc_chn
Definition: hpm_vsc_drv.h:102
vsc_adc_sel_t adc_sel
Definition: hpm_vsc_drv.h:101
vsc config structure
Definition: hpm_vsc_drv.h:119
vsc_adc_config_t a_adc_config
Definition: hpm_vsc_drv.h:127
uint8_t a_data_cnt
Definition: hpm_vsc_drv.h:121
vsc_data_opr_config_t b_data_opr_config
Definition: hpm_vsc_drv.h:125
uint16_t pole_pairs
Definition: hpm_vsc_drv.h:131
vsc_adc_config_t b_adc_config
Definition: hpm_vsc_drv.h:128
vsc_phase_mode_t phase_mode
Definition: hpm_vsc_drv.h:120
vsc_data_opr_config_t a_data_opr_config
Definition: hpm_vsc_drv.h:124
vsc_pos_cap_mode_t pos_cap_mode
Definition: hpm_vsc_drv.h:130
vsc_data_opr_config_t c_data_opr_config
Definition: hpm_vsc_drv.h:126
uint8_t b_data_cnt
Definition: hpm_vsc_drv.h:122
vsc_adc_config_t c_adc_config
Definition: hpm_vsc_drv.h:129
uint8_t c_data_cnt
Definition: hpm_vsc_drv.h:123
vsc config structure
Definition: hpm_vsc_drv.h:109
vsc_data_opr_mode_t opr_3
Definition: hpm_vsc_drv.h:113
vsc_data_opr_mode_t opr_0
Definition: hpm_vsc_drv.h:110
vsc_data_opr_mode_t opr_1
Definition: hpm_vsc_drv.h:111
vsc_data_opr_mode_t opr_2
Definition: hpm_vsc_drv.h:112