HPM SDK
HPMicro Software Development Kit
hpm_vsc_drv.h File Reference
#include "hpm_common.h"
#include "hpm_vsc_regs.h"

Go to the source code of this file.

Data Structures

struct  vsc_adc_config_t
 adc config structure More...
 
struct  vsc_data_opr_config_t
 vsc config structure More...
 
struct  vsc_config_t
 vsc config structure More...
 

Typedefs

typedef enum vsc_phase_mode vsc_phase_mode_t
 vsc phase mode More...
 
typedef enum vsc_data_opr_mode vsc_data_opr_mode_t
 vsc data operation mode More...
 
typedef enum vsc_adc_sel vsc_adc_sel_t
 vsc select adc instance More...
 
typedef enum vsc_pos_cap_mode vsc_pos_cap_mode_t
 vsc position capture mode More...
 
typedef enum vsc_timestamp_sel vsc_timestamp_sel_t
 vsc select adc timestamp More...
 
typedef enum vsc_irq_mask vsc_irq_mask_t
 vsc irq mask bit More...
 

Enumerations

enum  vsc_phase_mode { vsc_abc_phase = 0 , vsc_ab_phase = 1 }
 vsc phase mode More...
 
enum  vsc_data_opr_mode {
  vsc_data_opr_plus_mul_1 = 0 , vsc_data_opr_plus_mul_2 = 1 , vsc_data_opr_plus_div_2 = 5 , vsc_data_opr_plus_div_3 = 6 ,
  vsc_data_opr_plus_div_4 = 7 , vsc_data_opr_minus_mul_1 = 8 , vsc_data_opr_minus_mul_2 = 9 , vsc_data_opr_minus_div_2 = 13 ,
  vsc_data_opr_minus_div_3 = 14 , vsc_data_opr_minus_div_4 = 15
}
 vsc data operation mode More...
 
enum  vsc_adc_sel { vsc_sel_adc0 = 1 , vsc_sel_adc1 = 2 , vsc_sel_adc2 = 3 }
 vsc select adc instance More...
 
enum  vsc_pos_cap_mode { vsc_pos_use_last_data_when_adc_sample_finish = 0 , vsc_pos_use_first_data_after_adc_sample_start = 1 , vsc_pos_use_last_data_before_adc_sample_start = 2 }
 vsc position capture mode More...
 
enum  vsc_timestamp_sel { vsc_timestamp_sel_value_a = 1 , vsc_timestamp_sel_value_b = 2 , vsc_timestamp_sel_value_c = 3 }
 vsc select adc timestamp More...
 
enum  vsc_irq_mask {
  vsc_irq_convert_done = (0x00000001UL) , vsc_irq_abc_over_tolerate = (0x00000002UL) , vsc_irq_c_overflow = (0x00000004UL) , vsc_irq_b_overflow = (0x00000008UL) ,
  vsc_irq_a_overflow = (0x00000010UL) , vsc_irq_adc2_cap_not_enough = (0x00000020UL) , vsc_irq_adc1_cap_not_enough = (0x00000040UL) , vsc_irq_adc0_cap_not_enough = (0x00000080UL) ,
  vsc_irq_pos_timeout = (0x00000100UL) , vsc_irq_adc2_timeout = (0x00000200UL) , vsc_irq_adc1_timeout = (0x00000400UL) , vsc_irq_adc0_timeout = (0x00000800UL) ,
  vsc_irq_convert_conflict = (0x00001000UL)
}
 vsc irq mask bit More...
 

Functions

static void vsc_set_enable (VSC_Type *vsc, bool enable)
 vsc enable or disable More...
 
static void vsc_config_pos_capture_mode (VSC_Type *vsc, vsc_pos_cap_mode_t mode)
 vsc config position capture mode More...
 
static void vsc_config_adc_timestamp (VSC_Type *vsc, vsc_timestamp_sel_t select, uint8_t num)
 vsc config adc timestamp More...
 
static void vsc_set_irq_enable (VSC_Type *vsc, uint32_t irq_mask, bool enable)
 vsc set irq enable or disable More...
 
static uint32_t vsc_get_irq_status (VSC_Type *vsc)
 vsc get irq status More...
 
static void vsc_clear_irq_status (VSC_Type *vsc, uint32_t irq_mask)
 vsc clear irq status More...
 
static bool vsc_get_irq_flag (VSC_Type *vsc, uint32_t irq_mask)
 vsc check irq request flag More...
 
static void vsc_set_adc_wait_cycle (VSC_Type *vsc, uint32_t wait_cycle)
 vsc set adc wait cycles More...
 
static void vsc_set_pos_wait_cycle (VSC_Type *vsc, uint32_t wait_cycle)
 vsc set position wait cycles More...
 
static void vsc_set_adc_tolerate (VSC_Type *vsc, uint32_t tolerate)
 vsc set abc phase value tolerate More...
 
static void vsc_set_pos_pole_pairs (VSC_Type *vsc, uint32_t pole_pairs)
 vsc set position pole pairs More...
 
static void vsc_set_sw_trig_in (VSC_Type *vsc)
 vsc set software trigger in More...
 
static int32_t vsc_get_d_axis_value (VSC_Type *vsc, bool positive_seq)
 vsc get d-axis value More...
 
static int32_t vsc_get_q_axis_value (VSC_Type *vsc, bool positive_seq)
 vsc get q-axis value More...
 
static int32_t vsc_get_alpha_axis_value (VSC_Type *vsc, bool positive_seq)
 vsc get alpha-axis value More...
 
static int32_t vsc_get_beta_axis_value (VSC_Type *vsc, bool positive_seq)
 vsc get beta-axis value More...
 
static uint32_t vsc_get_adc_timestamp (VSC_Type *vsc)
 vsc get adc timestamp value More...
 
void vsc_get_default_config (VSC_Type *vsc, vsc_config_t *config)
 vsc get default config More...
 
void vsc_config_init (VSC_Type *vsc, vsc_config_t *config)
 vsc config initialization More...
 
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 More...
 
void vsc_sw_inject_pos_value (VSC_Type *vsc, uint32_t pos)
 vsc software inject position value More...