HPM SDK
HPMicro Software Development Kit
hpm_qeo_drv.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2023 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef HPM_QEO_DRV_H
9 #define HPM_QEO_DRV_H
10 
11 #include "hpm_common.h"
12 #include "hpm_qeo_regs.h"
20 typedef enum {
26 
27 typedef enum {
31 
34 
37 
42 
43 typedef struct {
44  uint8_t above_max_limit;
47  uint8_t low_area0_limit;
48  uint8_t low_area1_limit;
49  uint8_t below_min_limit;
51 
52 typedef struct {
56  uint8_t wave_type;
57  uint8_t saddle_type;
59 
60 typedef enum {
61  qeo_abz_output_abz = 0, /*< A and B are orthogonal signals, Z is zero pulse */
62  qeo_abz_output_pulse_revise = 1, /*< A is speed pulse, B is directional pulse, Z not used */
63  qeo_abz_output_up_down = 2, /*< A is forward pulse, B is reverse pusle, Z not used */
64  qeo_abz_output_three_phase = 3, /*< A/B/Z are 3-phase orthogonal pulse */
66 
67 /* take effect when output type is qeo_abz_output_abz */
68 typedef enum {
73 
74 typedef struct {
75  bool z_inv_pol;
76  bool b_inv_pol;
77  bool a_inv_pol;
78  uint8_t output_type;
79  uint8_t z_pulse_period;
81 
82 typedef enum {
87 
88 typedef enum {
93 
94 typedef struct {
95  uint8_t pwm0_output;
96  uint8_t pwm1_output;
97  uint8_t pwm2_output;
98  uint8_t pwm3_output;
99  uint8_t pwm4_output;
100  uint8_t pwm5_output;
101  uint8_t pwm6_output;
102  uint8_t pwm7_output;
104 
105 typedef struct {
106  uint8_t pwm0_output;
107  uint8_t pwm1_output;
108  uint8_t pwm2_output;
109  uint8_t pwm3_output;
110  uint8_t pwm4_output;
111  uint8_t pwm5_output;
112  uint8_t pwm6_output;
113  uint8_t pwm7_output;
115 
116 typedef struct {
117  uint8_t phase_num;
121 
122 #ifdef __cplusplus
123 extern "C" {
124 #endif
125 
126 /* WAVE API */
132 static inline void qeo_wave_set_resolution_lines(QEO_Type *base, uint32_t lines)
133 {
135 }
136 
142 static inline void qeo_wave_set_output_type(QEO_Type *base, qeo_wave_type_t type)
143 {
145 }
146 
152 static inline void qeo_wave_set_saddle_type(QEO_Type *base, bool standard)
153 {
154  if (standard) {
156  } else {
158  }
159 }
160 
167 static inline void qeo_wave_set_phase_shift(QEO_Type *base, uint8_t index, double angle)
168 {
169  assert((angle >= 0) && (angle <= 360));
170  uint32_t val = (uint32_t)(angle * 0x10000U / 360);
171  base->WAVE.PHASE_SHIFT[index] = QEO_WAVE_PHASE_SHIFT_VAL_SET(val);
172 }
173 
181 static inline void qeo_wave_enable_vd_vq_inject(QEO_Type *base, uint8_t index, int32_t vd_val, int32_t vq_val)
182 {
183  (void) vd_val;
184  assert(index < 3);
185  base->WAVE.MODE |= (1U << (QEO_WAVE_MODE_EN_WAVE0_VD_VQ_INJECT_SHIFT + index));
187 }
188 
194 static inline void qeo_wave_disable_vd_vq_inject(QEO_Type *base, uint8_t index)
195 {
196  assert(index < 3);
197  base->WAVE.MODE &= ~(1U << (QEO_WAVE_MODE_EN_WAVE0_VD_VQ_INJECT_SHIFT + index));
198 }
199 
204 static inline void qeo_wave_load_vd_vq(QEO_Type *base)
205 {
207 }
208 
215 static inline void qeo_wave_enable_amplitude(QEO_Type *base, uint8_t index, double amp)
216 {
217  assert(amp > 0);
218  uint32_t val = (uint32_t)(amp * (1U << 12U));
220 }
221 
227 static inline void qeo_wave_disable_amplitude(QEO_Type *base, uint8_t index)
228 {
230 }
231 
238 static inline void qeo_wave_set_mid_point_shift(QEO_Type *base, uint8_t index, double shift)
239 {
240  int32_t val = (int32_t)(shift * (1U << 27U));
241  base->WAVE.MID_POINT[index] = QEO_WAVE_MID_POINT_VAL_SET(val);
242 }
243 
251 static inline void qeo_wave_set_max_limit(QEO_Type *base, uint8_t index, uint32_t limit0, uint32_t limit1)
252 {
253  base->WAVE.LIMIT[index].MAX = QEO_WAVE_LIMIT_MAX_LIMIT0_SET(limit0) | QEO_WAVE_LIMIT_MAX_LIMIT1_SET(limit1);
254 }
255 
263 static inline void qeo_wave_set_min_limit(QEO_Type *base, uint8_t index, uint32_t limit0, uint32_t limit1)
264 {
265  base->WAVE.LIMIT[index].MIN = QEO_WAVE_LIMIT_MIN_LIMIT0_SET(limit0) | QEO_WAVE_LIMIT_MIN_LIMIT1_SET(limit1);
266 }
267 
274 static inline void qeo_wave_set_deadzone_shift(QEO_Type *base, uint8_t index, int16_t shift)
275 {
277 }
278 
285 static inline uint16_t qeo_get_wave_output_val(QEO_Type *base, uint8_t index)
286 {
287  if (index == 0) {
288  return QEO_DEBUG0_WAVE0_GET(base->DEBUG0);
289  } else if (index == 1) {
290  return QEO_DEBUG0_WAVE1_GET(base->DEBUG0);
291  } else if (index == 2) {
292  return QEO_DEBUG1_WAVE2_GET(base->DEBUG1);
293  }
294  return 0;
295 }
296 
303 
309 void qeo_wave_config_mode(QEO_Type *base, qeo_wave_mode_t *config);
310 
311 /* ABZ API */
317 static inline void qeo_abz_set_resolution_lines(QEO_Type *base, uint32_t lines)
318 {
320 }
321 
328 static inline void qeo_abz_set_phase_shift(QEO_Type *base, uint8_t index, double angle)
329 {
330  assert((angle >= 0) && (angle <= 360));
331  uint32_t val = (uint32_t)(angle * 0x10000U / 360);
332  base->ABZ.PHASE_SHIFT[index] = QEO_ABZ_PHASE_SHIFT_VAL_SET(val);
333 }
334 
342 hpm_stat_t qeo_abz_set_max_frequency(QEO_Type *base, uint32_t src_freq, uint32_t freq);
343 
351 hpm_stat_t qeo_abz_set_wdog_frequency(QEO_Type *base, uint32_t src_freq, uint32_t freq);
352 
357 static inline void qeo_abz_disable_wdog(QEO_Type *base)
358 {
360 }
361 
370 static inline void qeo_abz_config_reverse_edge(QEO_Type *base, bool speed_pulse_negedge)
371 {
372  if (speed_pulse_negedge) {
374  } else {
376  }
377 }
378 
385 void qeo_abz_position_sync(QEO_Type *base, uint32_t lines, uint32_t sync_pos);
386 
393 
399 void qeo_abz_config_mode(QEO_Type *base, qeo_abz_mode_t *config);
400 
401 /* PWM API */
407 static inline void qeo_pwm_set_resolution_lines(QEO_Type *base, uint32_t lines)
408 {
410 }
411 
418 static inline void qeo_pwm_set_phase_shift(QEO_Type *base, uint8_t index, double angle)
419 {
420  assert((angle >= 0) && (angle <= 360));
421  uint32_t val = (uint32_t)(angle * 0x10000U / 360);
422  base->PWM.PHASE_SHIFT[index] = QEO_PWM_PHASE_SHIFT_VAL_SET(val);
423 }
424 
434 {
435  return ((base->STATUS & QEO_STATUS_PWM_SAFETY_MASK) != 0) ? true : false;
436 }
437 
443 static inline void qeo_pwm_select_phase_table(QEO_Type *base, bool positive)
444 {
445  if (positive) {
447  } else {
449  }
450 }
451 
459 static inline void qeo_pwm_software_enter_safety(QEO_Type *base)
460 {
462 }
463 
468 static inline void qeo_pwm_software_exit_safety(QEO_Type *base)
469 {
471 }
472 
479 
485 void qeo_pwm_config_mode(QEO_Type *base, qeo_pwm_mode_t *config);
486 
493 
500 
507 
514 void qeo_pwm_config_phase_table(QEO_Type *base, uint8_t index, qeo_pwm_phase_output_table_t *table);
515 
521 {
523 }
524 
530 static inline void qeo_software_position_inject(QEO_Type *base, uint32_t position)
531 {
533 }
534 
540 {
542 }
543 
549 static inline bool qeo_check_calculate_finish(QEO_Type *base)
550 {
551  return (QEO_DEBUG1_QEO_FINISH_GET(base->DEBUG1) != 0) ? true : false;
552 }
553 
554 #ifdef __cplusplus
555 }
556 #endif
560 #endif /* HPM_QEO_DRV_H */
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