79 uint8_t z_pulse_period;
169 assert((angle >= 0) && (angle <= 360));
170 uint32_t val = (uint32_t)(angle * 0x10000U / 360);
218 uint32_t val = (uint32_t)(amp * (1U << 12U));
240 int32_t val = (int32_t)(shift * (1U << 27U));
289 }
else if (index == 1) {
291 }
else if (index == 2) {
330 assert((angle >= 0) && (angle <= 360));
331 uint32_t val = (uint32_t)(angle * 0x10000U / 360);
372 if (speed_pulse_negedge) {
420 assert((angle >= 0) && (angle <= 360));
421 uint32_t val = (uint32_t)(angle * 0x10000U / 360);
uint32_t hpm_stat_t
Definition: hpm_common.h:126
qeo_wave_limit_t
Definition: hpm_qeo_drv.h:27
void qeo_pwm_get_default_phase_table_config(QEO_Type *base, qeo_pwm_phase_output_table_t *table)
QEO PWM get default phase table.
Definition: hpm_qeo_drv.c:146
static void qeo_wave_enable_amplitude(QEO_Type *base, uint8_t index, double amp)
QEO enable amplitude for wave mode.
Definition: hpm_qeo_drv.h:215
hpm_stat_t qeo_abz_set_max_frequency(QEO_Type *base, uint32_t src_freq, uint32_t freq)
QEO set max frequency for ABZ mode.
Definition: hpm_qeo_drv.c:106
void qeo_wave_config_mode(QEO_Type *base, qeo_wave_mode_t *config)
QEO wave config mode.
Definition: hpm_qeo_drv.c:38
qeo_abz_type_t
Definition: hpm_qeo_drv.h:60
static void qeo_software_position_inject(QEO_Type *base, uint32_t position)
QEO software inject position.
Definition: hpm_qeo_drv.h:530
static void qeo_pwm_software_exit_safety(QEO_Type *base)
QEO PWM exit safety mode by software.
Definition: hpm_qeo_drv.h:468
hpm_stat_t qeo_abz_set_wdog_frequency(QEO_Type *base, uint32_t src_freq, uint32_t freq)
QEO set wdog frequency for ABZ mode.
Definition: hpm_qeo_drv.c:119
void qeo_abz_get_default_mode_config(QEO_Type *base, qeo_abz_mode_t *config)
QEO ABZ get default mode config.
Definition: hpm_qeo_drv.c:69
static void qeo_wave_set_phase_shift(QEO_Type *base, uint8_t index, double angle)
QEO set phase shift for wave mode.
Definition: hpm_qeo_drv.h:167
void qeo_abz_position_sync(QEO_Type *base, uint32_t lines, uint32_t sync_pos)
QEO sync position for ABZ mode.
Definition: hpm_qeo_drv.c:217
static void qeo_abz_set_resolution_lines(QEO_Type *base, uint32_t lines)
QEO set resolution lines for ABZ mode.
Definition: hpm_qeo_drv.h:317
static void qeo_wave_load_vd_vq(QEO_Type *base)
QEO load vd vq inject value for wave mode.
Definition: hpm_qeo_drv.h:204
static void qeo_wave_set_mid_point_shift(QEO_Type *base, uint8_t index, double shift)
QEO set mid point shift for wave mode.
Definition: hpm_qeo_drv.h:238
static void qeo_wave_disable_vd_vq_inject(QEO_Type *base, uint8_t index)
QEO disable vd vq inject for wave mode.
Definition: hpm_qeo_drv.h:194
static void qeo_wave_disable_amplitude(QEO_Type *base, uint8_t index)
QEO disable amplitude for wave mode.
Definition: hpm_qeo_drv.h:227
qeo_pwm_safety_output_t
Definition: hpm_qeo_drv.h:88
void qeo_pwm_get_default_safety_table_config(QEO_Type *base, qeo_pwm_safety_output_table_t *table)
QEO PWM get default safety table.
Definition: hpm_qeo_drv.c:133
void qeo_pwm_config_safety_table(QEO_Type *base, qeo_pwm_safety_output_table_t *table)
QEO PWM config safety table.
Definition: hpm_qeo_drv.c:189
static void qeo_disable_software_position_inject(QEO_Type *base)
QEO disable software position inject, QEO will using position from hardware.
Definition: hpm_qeo_drv.h:539
static void qeo_wave_set_output_type(QEO_Type *base, qeo_wave_type_t type)
QEO set output type for wave mode.
Definition: hpm_qeo_drv.h:142
qeo_pwm_force_output_t
Definition: hpm_qeo_drv.h:82
static bool qeo_check_calculate_finish(QEO_Type *base)
QEO check calculate finish status.
Definition: hpm_qeo_drv.h:549
static void qeo_pwm_software_enter_safety(QEO_Type *base)
QEO PWM enter safety mode by software.
Definition: hpm_qeo_drv.h:459
static void qeo_abz_set_phase_shift(QEO_Type *base, uint8_t index, double angle)
QEO set phase shift for ABZ mode.
Definition: hpm_qeo_drv.h:328
static void qeo_wave_set_resolution_lines(QEO_Type *base, uint32_t lines)
QEO set resolution lines for wave mode.
Definition: hpm_qeo_drv.h:132
static uint16_t qeo_get_wave_output_val(QEO_Type *base, uint8_t index)
QEO get wave output value.
Definition: hpm_qeo_drv.h:285
void qeo_pwm_config_mode(QEO_Type *base, qeo_pwm_mode_t *config)
QEO PWM config mode.
Definition: hpm_qeo_drv.c:167
void qeo_pwm_config_phase_table(QEO_Type *base, uint8_t index, qeo_pwm_phase_output_table_t *table)
QEO PWM onfig phase table.
Definition: hpm_qeo_drv.c:177
static void qeo_wave_set_min_limit(QEO_Type *base, uint8_t index, uint32_t limit0, uint32_t limit1)
QEO set min limmit for wave mode.
Definition: hpm_qeo_drv.h:263
static void qeo_wave_enable_vd_vq_inject(QEO_Type *base, uint8_t index, int32_t vd_val, int32_t vq_val)
QEO enable vd vq inject for wave mode.
Definition: hpm_qeo_drv.h:181
static void qeo_wave_set_max_limit(QEO_Type *base, uint8_t index, uint32_t limit0, uint32_t limit1)
QEO set max limmit for wave mode.
Definition: hpm_qeo_drv.h:251
qeo_z_pulse_period_t
Definition: hpm_qeo_drv.h:68
static void qeo_pwm_set_phase_shift(QEO_Type *base, uint8_t index, double angle)
QEO set phase shift for PWM mode.
Definition: hpm_qeo_drv.h:418
static void qeo_wave_set_deadzone_shift(QEO_Type *base, uint8_t index, int16_t shift)
QEO set deadzone shift for wave mode.
Definition: hpm_qeo_drv.h:274
static void qeo_pwm_set_resolution_lines(QEO_Type *base, uint32_t lines)
QEO set resolution lines for PWM mode.
Definition: hpm_qeo_drv.h:407
qeo_wave_type_t
Definition: hpm_qeo_drv.h:20
static void qeo_pwm_select_phase_table(QEO_Type *base, bool positive)
QEO PWM select phase table.
Definition: hpm_qeo_drv.h:443
static void qeo_abz_disable_wdog(QEO_Type *base)
QEO disable wdog for ABZ mode.
Definition: hpm_qeo_drv.h:357
void qeo_wave_get_default_mode_config(QEO_Type *base, qeo_wave_mode_t *config)
QEO wave get defalut mode config.
Definition: hpm_qeo_drv.c:10
void qeo_pwm_get_default_mode_config(QEO_Type *base, qeo_pwm_mode_t *config)
QEO PWM get default mode config.
Definition: hpm_qeo_drv.c:159
void qeo_abz_config_mode(QEO_Type *base, qeo_abz_mode_t *config)
QEO ABZ config mode.
Definition: hpm_qeo_drv.c:79
static bool qeo_pwm_check_hardware_trig_safety(QEO_Type *base)
QEO PWM check if it is triggered by hardware to enter safety mode.
Definition: hpm_qeo_drv.h:433
static void qeo_enable_software_position_inject(QEO_Type *base)
QEO enable software position inject.
Definition: hpm_qeo_drv.h:520
static void qeo_abz_config_reverse_edge(QEO_Type *base, bool speed_pulse_negedge)
QEO config reverse edge for ABZ mode.
Definition: hpm_qeo_drv.h:370
static void qeo_wave_set_saddle_type(QEO_Type *base, bool standard)
QEO set saddle type for wave mode.
Definition: hpm_qeo_drv.h:152
@ qeo_z_pulse_25_percent
Definition: hpm_qeo_drv.h:69
@ qeo_z_pulse_75_percent
Definition: hpm_qeo_drv.h:70
@ qeo_z_pulse_100_percent
Definition: hpm_qeo_drv.h:71
@ qeo_wave_low_area_limit_zero
Definition: hpm_qeo_drv.h:35
@ qeo_wave_below_min_limit_min_level1_val
Definition: hpm_qeo_drv.h:40
@ qeo_wave_above_max_limit_zero
Definition: hpm_qeo_drv.h:29
@ qeo_wave_below_min_limit_zero
Definition: hpm_qeo_drv.h:38
@ qeo_wave_below_min_limit_max_val
Definition: hpm_qeo_drv.h:39
@ qeo_wave_low_area_limit_min_level1_val
Definition: hpm_qeo_drv.h:36
@ qeo_wave_high_area_limit_max_level0_val
Definition: hpm_qeo_drv.h:33
@ qeo_wave_above_max_limit_max_level0_val
Definition: hpm_qeo_drv.h:30
@ qeo_wave_above_max_limit_max_val
Definition: hpm_qeo_drv.h:28
@ qeo_wave_high_area_limit_max_val
Definition: hpm_qeo_drv.h:32
@ qeo_abz_output_three_phase
Definition: hpm_qeo_drv.h:64
@ qeo_abz_output_pulse_revise
Definition: hpm_qeo_drv.h:62
@ qeo_abz_output_abz
Definition: hpm_qeo_drv.h:61
@ qeo_abz_output_up_down
Definition: hpm_qeo_drv.h:63
@ qeo_pwm_safety_output_highz
Definition: hpm_qeo_drv.h:91
@ qeo_pwm_safety_output_0
Definition: hpm_qeo_drv.h:89
@ qeo_pwm_safety_output_1
Definition: hpm_qeo_drv.h:90
@ qeo_pwm_output_force_0
Definition: hpm_qeo_drv.h:83
@ qeo_pwm_output_force_1
Definition: hpm_qeo_drv.h:84
@ qeo_pwm_output_not_force
Definition: hpm_qeo_drv.h:85
@ qeo_wave_abs_cosine
Definition: hpm_qeo_drv.h:23
@ qeo_wave_saw
Definition: hpm_qeo_drv.h:24
@ qeo_wave_cosine
Definition: hpm_qeo_drv.h:21
@ qeo_wave_saddle
Definition: hpm_qeo_drv.h:22
#define QEO_WAVE_AMPLITUDE_EN_SCAL_MASK
Definition: hpm_qeo_regs.h:398
#define QEO_WAVE_LIMIT_MIN_LIMIT1_SET(x)
Definition: hpm_qeo_regs.h:432
#define QEO_WAVE_LIMIT_MAX_LIMIT1_SET(x)
Definition: hpm_qeo_regs.h:453
#define QEO_WAVE_DEADZONE_SHIFT_VAL_SET(x)
Definition: hpm_qeo_regs.h:474
#define QEO_PWM_PHASE_SHIFT_VAL_SET(x)
Definition: hpm_qeo_regs.h:783
#define QEO_DEBUG0_WAVE1_GET(x)
Definition: hpm_qeo_regs.h:918
#define QEO_POSTION_SOFTWARE_POSTION_SOFTWAVE_SET(x)
Definition: hpm_qeo_regs.h:875
#define QEO_DEBUG0_WAVE0_GET(x)
Definition: hpm_qeo_regs.h:927
#define QEO_PWM_MODE_PWM_ENTER_SAFETY_MODE_MASK
Definition: hpm_qeo_regs.h:725
#define QEO_POSTION_SEL_POSTION_SEL_MASK
Definition: hpm_qeo_regs.h:886
#define QEO_ABZ_PHASE_SHIFT_VAL_SET(x)
Definition: hpm_qeo_regs.h:599
#define QEO_DEBUG1_WAVE2_GET(x)
Definition: hpm_qeo_regs.h:973
#define QEO_STATUS_PWM_SAFETY_MASK
Definition: hpm_qeo_regs.h:906
#define QEO_ABZ_MODE_EN_WDOG_MASK
Definition: hpm_qeo_regs.h:497
#define QEO_WAVE_VD_VQ_INJECT_VQ_VAL_SET(x)
Definition: hpm_qeo_regs.h:366
#define QEO_WAVE_MODE_WAVES_OUTPUT_TYPE_SET(x)
Definition: hpm_qeo_regs.h:333
#define QEO_WAVE_LIMIT_MIN_LIMIT0_SET(x)
Definition: hpm_qeo_regs.h:442
#define QEO_WAVE_VD_VQ_INJECT_VD_VAL_SET(x)
Definition: hpm_qeo_regs.h:376
#define QEO_WAVE_LIMIT_MAX_LIMIT0_SET(x)
Definition: hpm_qeo_regs.h:463
#define QEO_DEBUG1_QEO_FINISH_GET(x)
Definition: hpm_qeo_regs.h:937
#define QEO_PWM_MODE_REVISE_UP_DN_MASK
Definition: hpm_qeo_regs.h:749
#define QEO_WAVE_PHASE_SHIFT_VAL_SET(x)
Definition: hpm_qeo_regs.h:355
#define QEO_WAVE_MODE_WAVES_OUTPUT_TYPE_MASK
Definition: hpm_qeo_regs.h:331
#define QEO_WAVE_VD_VQ_LOAD_LOAD_MASK
Definition: hpm_qeo_regs.h:387
#define QEO_WAVE_MODE_EN_WAVE0_VD_VQ_INJECT_SHIFT
Definition: hpm_qeo_regs.h:318
#define QEO_WAVE_MODE_SADDLE_TYPE_MASK
Definition: hpm_qeo_regs.h:281
#define QEO_WAVE_RESOLUTION_LINES_SET(x)
Definition: hpm_qeo_regs.h:344
#define QEO_WAVE_MID_POINT_VAL_SET(x)
Definition: hpm_qeo_regs.h:421
#define QEO_ABZ_RESOLUTION_LINES_SET(x)
Definition: hpm_qeo_regs.h:588
#define QEO_WAVE_AMPLITUDE_AMP_VAL_SET(x)
Definition: hpm_qeo_regs.h:410
#define QEO_PWM_RESOLUTION_LINES_SET(x)
Definition: hpm_qeo_regs.h:772
#define QEO_ABZ_MODE_REVERSE_EDGE_TYPE_MASK
Definition: hpm_qeo_regs.h:485
Definition: hpm_qeo_regs.h:12
__R uint32_t DEBUG0
Definition: hpm_qeo_regs.h:44
struct QEO_Type::@325 ABZ
__RW uint32_t RESOLUTION
Definition: hpm_qeo_regs.h:15
struct QEO_Type::@326 PWM
__R uint32_t STATUS
Definition: hpm_qeo_regs.h:43
struct QEO_Type::@324 WAVE
__RW uint32_t POSTION_SEL
Definition: hpm_qeo_regs.h:42
__RW uint32_t MID_POINT[3]
Definition: hpm_qeo_regs.h:20
__RW uint32_t DEADZONE_SHIFT[3]
Definition: hpm_qeo_regs.h:25
__RW uint32_t MODE
Definition: hpm_qeo_regs.h:14
__RW uint32_t VD_VQ_INJECT[3]
Definition: hpm_qeo_regs.h:17
struct QEO_Type::@324::@327 LIMIT[3]
__R uint32_t DEBUG1
Definition: hpm_qeo_regs.h:45
__RW uint32_t AMPLITUDE[3]
Definition: hpm_qeo_regs.h:19
__W uint32_t VD_VQ_LOAD
Definition: hpm_qeo_regs.h:18
__RW uint32_t PHASE_SHIFT[3]
Definition: hpm_qeo_regs.h:16
__RW uint32_t POSTION_SOFTWARE
Definition: hpm_qeo_regs.h:41
Definition: hpm_qeo_drv.h:74
bool a_inv_pol
Definition: hpm_qeo_drv.h:77
bool b_inv_pol
Definition: hpm_qeo_drv.h:76
uint8_t output_type
Definition: hpm_qeo_drv.h:78
Definition: hpm_qeo_drv.h:116
uint8_t phase_num
Definition: hpm_qeo_drv.h:117
bool revise_pairs_output
Definition: hpm_qeo_drv.h:119
bool shield_hardware_trig_safety
Definition: hpm_qeo_drv.h:118
Definition: hpm_qeo_drv.h:94
uint8_t pwm7_output
Definition: hpm_qeo_drv.h:102
uint8_t pwm1_output
Definition: hpm_qeo_drv.h:96
uint8_t pwm6_output
Definition: hpm_qeo_drv.h:101
uint8_t pwm2_output
Definition: hpm_qeo_drv.h:97
uint8_t pwm4_output
Definition: hpm_qeo_drv.h:99
uint8_t pwm5_output
Definition: hpm_qeo_drv.h:100
uint8_t pwm3_output
Definition: hpm_qeo_drv.h:98
uint8_t pwm0_output
Definition: hpm_qeo_drv.h:95
Definition: hpm_qeo_drv.h:105
uint8_t pwm7_output
Definition: hpm_qeo_drv.h:113
uint8_t pwm5_output
Definition: hpm_qeo_drv.h:111
uint8_t pwm2_output
Definition: hpm_qeo_drv.h:108
uint8_t pwm0_output
Definition: hpm_qeo_drv.h:106
uint8_t pwm6_output
Definition: hpm_qeo_drv.h:112
uint8_t pwm1_output
Definition: hpm_qeo_drv.h:107
uint8_t pwm3_output
Definition: hpm_qeo_drv.h:109
uint8_t pwm4_output
Definition: hpm_qeo_drv.h:110
Definition: hpm_qeo_drv.h:43
uint8_t high_area1_limit
Definition: hpm_qeo_drv.h:46
uint8_t low_area1_limit
Definition: hpm_qeo_drv.h:48
uint8_t high_area0_limit
Definition: hpm_qeo_drv.h:45
uint8_t above_max_limit
Definition: hpm_qeo_drv.h:44
uint8_t below_min_limit
Definition: hpm_qeo_drv.h:49
uint8_t low_area0_limit
Definition: hpm_qeo_drv.h:47
Definition: hpm_qeo_drv.h:52
uint8_t saddle_type
Definition: hpm_qeo_drv.h:57
qeo_wave_limit_config_t wave1
Definition: hpm_qeo_drv.h:54
qeo_wave_limit_config_t wave2
Definition: hpm_qeo_drv.h:55
qeo_wave_limit_config_t wave0
Definition: hpm_qeo_drv.h:53
uint8_t wave_type
Definition: hpm_qeo_drv.h:56