HPM SDK
HPMicro Software Development Kit
hpm_rdc_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_RDC_DRV_H
9 #define HPM_RDC_DRV_H
10 
11 #include "hpm_common.h"
12 #include "hpm_rdc_regs.h"
13 #include "hpm_soc_feature.h"
14 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
36 typedef enum rdc_output_precision {
47 
52 typedef enum rdc_output_pwm_period {
70 
71 
72 
77 typedef enum rdc_output_mode {
81 
86 typedef enum rdc_sync_out_src {
94 
99 typedef enum rdc_rectify_signal {
107 
112 typedef enum rdc_acc_stamp_time {
117 
122 typedef enum rdc_output_trig_chn {
124  trigger_out_1 = 1
126 
127 
132 typedef enum rdc_input_acc_chn {
134  rdc_acc_chn_q = 1
136 
139  rdc_value_at_iir = 1
141 
146 typedef enum rdc_interrupt_stat {
164 
169 typedef struct rdc_output_cfg {
174  bool output_swap;
175  int32_t amp_offset;
176  uint16_t amp_man;
177  uint16_t amp_exp;
181  bool trig_by_hw;
182  uint32_t hw_trig_delay;
183  uint8_t dac_chn_i_sel;
184  uint8_t dac_chn_q_sel;
185  uint8_t pwm_deadzone_p;
186  uint8_t pwm_deadzone_n;
188 
189 
194 typedef struct rdc_input_cfg {
196 #if defined(HPM_IP_FEATURE_RDC_IIR) && (HPM_IP_FEATURE_RDC_IIR)
197  bool acc_fast;
198  rdc_input_max_min_value_source_t max_min_value_position;
199 #endif
200  uint8_t acc_cycle_len;
202  uint32_t acc_input_chn_i;
203  uint32_t acc_input_port_i;
204  uint32_t acc_input_chn_q;
205  uint32_t acc_input_port_q;
207 
212 typedef struct rdc_acc_cfg {
213  struct {
214  uint16_t continue_edge_num: 3;
215  uint16_t edge_distance: 6;
216  };
217 #if defined(HPM_IP_FEATURE_RDC_IIR) && (HPM_IP_FEATURE_RDC_IIR)
218  bool enable_i_thrs_data_for_acc;
219  bool enable_q_thrs_data_for_acc;
220 #endif
224  uint32_t sync_delay_i;
225  uint32_t sync_delay_q;
226  uint32_t amp_max;
227  uint32_t amp_min;
229 
230 #if defined(HPM_IP_FEATURE_RDC_IIR) && (HPM_IP_FEATURE_RDC_IIR)
235 typedef struct rdc_iir_cfg {
236  float b;
237  float a1;
238  float a2;
239  bool enable_lowpass;
240 } rdc_iir_cfg_t;
241 #endif
242 
257 
264 void rdc_input_config(RDC_Type *ptr, rdc_input_cfg_t *cfg);
265 
272 static inline void rdc_set_acc_len(RDC_Type *ptr, uint8_t len)
273 {
274  ptr->RDC_CTL = (ptr->RDC_CTL & (~RDC_RDC_CTL_ACC_LEN_MASK))
276 }
277 
283 static inline void rdc_acc_enable(RDC_Type *ptr)
284 {
286 }
287 
293 static inline void rdc_acc_disable(RDC_Type *ptr)
294 {
296 }
297 
298 #if defined(HPM_IP_FEATURE_RDC_IIR) && (HPM_IP_FEATURE_RDC_IIR)
304 static inline void rdc_irr_enable(RDC_Type *ptr)
305 {
307 }
308 
314 static inline void rdc_irr_disable(RDC_Type *ptr)
315 {
317 }
318 
324 static inline void rdc_enable_i_channel_thrs_data_for_acc(RDC_Type *ptr)
325 {
327 }
328 
334 static inline void rdc_disable_i_channel_thrs_data_for_acc(RDC_Type *ptr)
335 {
337 }
338 
344 static inline void rdc_enable_q_channel_thrs_data_for_acc(RDC_Type *ptr)
345 {
347 }
348 
354 static inline void rdc_disable_q_channel_thrs_data_for_acc(RDC_Type *ptr)
355 {
357 }
358 
359 #endif
360 
368 uint32_t rdc_get_acc_avl(RDC_Type *ptr, rdc_input_acc_chn_t chn);
369 
377 void rdc_output_trig_offset_config(RDC_Type *ptr, rdc_output_trig_chn_t chn, int32_t offset);
378 
386 
394 
402 {
403  ptr->SYNC_OUT_CTRL = sel;
404 }
405 
411 static inline void rdc_exc_enable(RDC_Type *ptr)
412 {
414 }
415 
421 static inline void rdc_exc_disable(RDC_Type *ptr)
422 {
424 }
425 
431 static inline void rdc_output_trig_sw(RDC_Type *ptr)
432 {
434 }
435 
443 int32_t rdc_get_i_maxval(RDC_Type *ptr);
444 
450 static inline void rdc_clear_i_maxval(RDC_Type *ptr)
451 {
452  ptr->MAX_I = 0;
453 }
454 
462 int32_t rdc_get_i_minval(RDC_Type *ptr);
463 
469 static inline void rdc_clear_i_minval(RDC_Type *ptr)
470 {
471  ptr->MIN_I = 0;
472 }
473 
481 void rdc_set_acc_sync_delay(RDC_Type *ptr, rdc_input_acc_chn_t chn, uint32_t delay);
482 
490 static inline uint32_t rdc_get_sync_output_delay(RDC_Type *ptr)
491 {
493 }
494 
502 int32_t rdc_get_q_maxval(RDC_Type *ptr);
503 
509 static inline void rdc_clear_q_maxval(RDC_Type *ptr)
510 {
511  ptr->MAX_Q = 0;
512 }
513 
521 int32_t rdc_get_q_minval(RDC_Type *ptr);
522 
528 static inline void rdc_clear_q_minval(RDC_Type *ptr)
529 {
530  ptr->MIN_Q = 0;
531 }
532 
540 void rdc_set_edge_detection_offset(RDC_Type *ptr, rdc_input_acc_chn_t chn, int32_t offset);
541 
548 void rdc_set_acc_config(RDC_Type *ptr, rdc_acc_cfg_t *cfg);
549 
556 static inline uint32_t rdc_get_rise_delay_i(RDC_Type *ptr)
557 {
559 }
560 
567 static inline uint32_t rdc_get_fall_delay_i(RDC_Type *ptr)
568 {
570 }
571 
578 static inline uint32_t rdc_get_sample_rise_i(RDC_Type *ptr)
579 {
581 }
582 
589 static inline uint32_t rdc_get_sample_fall_i(RDC_Type *ptr)
590 {
592 }
593 
600 static inline uint32_t rdc_get_acc_cnt_positive_i(RDC_Type *ptr)
601 {
603 }
604 
611 static inline uint32_t rdc_get_acc_cnt_negative_i(RDC_Type *ptr)
612 {
614 }
615 
622 static inline uint32_t rdc_get_sign_cnt_poitive_i(RDC_Type *ptr)
623 {
625 }
626 
633 static inline uint32_t rdc_get_sign_cnt_negative_i(RDC_Type *ptr)
634 {
636 }
637 
644 static inline uint32_t rdc_get_rise_delay_q(RDC_Type *ptr)
645 {
647 }
648 
655 static inline uint32_t rdc_get_fall_delay_q(RDC_Type *ptr)
656 {
658 }
659 
666 static inline uint32_t rdc_get_sample_rise_q(RDC_Type *ptr)
667 {
669 }
670 
677 static inline uint32_t rdc_get_sample_fall_q(RDC_Type *ptr)
678 {
680 }
681 
688 static inline uint32_t rdc_get_acc_cnt_positive_q(RDC_Type *ptr)
689 {
691 }
692 
699 static inline uint32_t rdc_get_acc_cnt_negative_q(RDC_Type *ptr)
700 {
702 }
703 
710 static inline uint32_t rdc_get_sign_cnt_poitive_q(RDC_Type *ptr)
711 {
713 }
714 
721 static inline uint32_t rdc_get_sign_cnt_negative_q(RDC_Type *ptr)
722 {
724 }
725 
732 static inline void rdc_interrupt_config(RDC_Type *ptr, uint32_t status)
733 {
734  ptr->INT_EN |= status;
735 }
736 
743 static inline void rdc_interrupt_reset_config(RDC_Type *ptr, uint32_t status)
744 {
745  ptr->INT_EN &= ~status;
746 }
747 
753 static inline void rdc_interrupt_enable(RDC_Type *ptr)
754 {
756 }
757 
763 static inline void rdc_interrupt_disable(RDC_Type *ptr)
764 {
766 }
767 
774 static inline void rdc_interrupt_clear_flag_bits(RDC_Type *ptr, uint32_t mask)
775 {
776  ptr->ADC_INT_STATE &= mask;
777 }
778 
785 static inline uint32_t get_interrupt_status(RDC_Type *ptr)
786 {
787  return ptr->ADC_INT_STATE;
788 }
789 
792 #ifdef __cplusplus
793 }
794 #endif
795 
797 #endif /* HPM_ADC12_DRV_H */
#define RDC_SYNC_OUT_CTRL_MAX2TRIG_EN_MASK
Definition: hpm_rdc_regs.h:512
#define RDC_INT_EN_ACC_VLD_I_OVL_EN_MASK
Definition: hpm_rdc_regs.h:1132
#define RDC_INT_EN_SAMPLE_RISING_I_EN_MASK
Definition: hpm_rdc_regs.h:1072
#define RDC_RISE_DELAY_I_RISE_DELAY_GET(x)
Definition: hpm_rdc_regs.h:790
#define RDC_INT_EN_ACC_VLD_I_OVH_EN_MASK
Definition: hpm_rdc_regs.h:1112
#define RDC_SYNC_OUT_CTRL_PWM_OUT_DLY_GET(x)
Definition: hpm_rdc_regs.h:491
#define RDC_SIGN_CNT_I_CNT_NEG_GET(x)
Definition: hpm_rdc_regs.h:858
#define RDC_INT_EN_ACC_AMP_OVL_EN_MASK
Definition: hpm_rdc_regs.h:1162
#define RDC_INT_EN_RISING_DELAY_I_EN_MASK
Definition: hpm_rdc_regs.h:1032
#define RDC_INT_EN_ACC_AMP_OVH_EN_MASK
Definition: hpm_rdc_regs.h:1152
#define RDC_RDC_CTL_ACC_LEN_SET(x)
Definition: hpm_rdc_regs.h:88
#define RDC_RDC_CTL_ACC_LEN_MASK
Definition: hpm_rdc_regs.h:86
#define RDC_INT_EN_ACC_VLD_Q_EN_MASK
Definition: hpm_rdc_regs.h:1022
#define RDC_INT_EN_ACC_VLD_Q_OVL_EN_MASK
Definition: hpm_rdc_regs.h:1142
#define RDC_INT_EN_RISING_DELAY_Q_EN_MASK
Definition: hpm_rdc_regs.h:1052
#define RDC_SYNC_OUT_CTRL_MIN2TRIG_EN_MASK
Definition: hpm_rdc_regs.h:500
#define RDC_FALL_DELAY_Q_FALL_DELAY_GET(x)
Definition: hpm_rdc_regs.h:908
#define RDC_INT_EN_ACC_VLD_Q_OVH_EN_MASK
Definition: hpm_rdc_regs.h:1122
#define RDC_RISE_DELAY_Q_RISE_DELAY_GET(x)
Definition: hpm_rdc_regs.h:895
#define RDC_RDC_CTL_ACC_EN_MASK
Definition: hpm_rdc_regs.h:114
#define RDC_ACC_CNT_Q_CNT_POS_GET(x)
Definition: hpm_rdc_regs.h:953
#define RDC_SIGN_CNT_Q_CNT_NEG_GET(x)
Definition: hpm_rdc_regs.h:963
#define RDC_INT_EN_ACC_VLD_I_EN_MASK
Definition: hpm_rdc_regs.h:1012
#define RDC_FALL_DELAY_I_FALL_DELAY_GET(x)
Definition: hpm_rdc_regs.h:803
#define RDC_ACC_CNT_I_CNT_POS_GET(x)
Definition: hpm_rdc_regs.h:848
#define RDC_INT_EN_SAMPLE_FALLING_Q_EN_MASK
Definition: hpm_rdc_regs.h:1102
#define RDC_INT_EN_FALLING_DELAY_Q_EN_MASK
Definition: hpm_rdc_regs.h:1062
#define RDC_SAMPLE_RISE_Q_VALUE_GET(x)
Definition: hpm_rdc_regs.h:918
#define RDC_INT_EN_SAMPLE_FALLING_I_EN_MASK
Definition: hpm_rdc_regs.h:1082
#define RDC_RDC_CTL_EXC_EN_MASK
Definition: hpm_rdc_regs.h:138
#define RDC_INT_EN_INT_EN_MASK
Definition: hpm_rdc_regs.h:1002
#define RDC_SAMPLE_FALL_I_VALUE_GET(x)
Definition: hpm_rdc_regs.h:823
#define RDC_INT_EN_SAMPLE_RISING_Q_EN_MASK
Definition: hpm_rdc_regs.h:1092
#define RDC_SIGN_CNT_Q_CNT_POS_GET(x)
Definition: hpm_rdc_regs.h:972
#define RDC_RDC_CTL_EXC_START_MASK
Definition: hpm_rdc_regs.h:126
#define RDC_SIGN_CNT_I_CNT_POS_GET(x)
Definition: hpm_rdc_regs.h:867
#define RDC_SAMPLE_RISE_I_VALUE_GET(x)
Definition: hpm_rdc_regs.h:813
#define RDC_INT_EN_FALLING_DELAY_I_EN_MASK
Definition: hpm_rdc_regs.h:1042
#define RDC_SAMPLE_FALL_Q_VALUE_GET(x)
Definition: hpm_rdc_regs.h:928
#define RDC_SYNC_OUT_CTRL_SYNC_OUT_SEL_SET(x)
Definition: hpm_rdc_regs.h:528
#define RDC_THRS_I_THRS4ACC_MASK
Definition: hpm_rdc_regs.h:761
#define RDC_THRS_Q_THRS4ACC_MASK
Definition: hpm_rdc_regs.h:789
#define RDC_RDC_CTL_IIR_EN_MASK
Definition: hpm_rdc_regs.h:109
rdc_output_mode
Rdc output mode.
Definition: hpm_rdc_drv.h:77
static uint32_t rdc_get_rise_delay_q(RDC_Type *ptr)
Get delay in clock cycle between excitation synchrnous signal and rising edge of q_channel data.
Definition: hpm_rdc_drv.h:644
enum rdc_rectify_signal rdc_rectify_signal_t
Select reference point of rectify signal.
static void rdc_sync_output_trig_adc_cfg(RDC_Type *ptr, rdc_sync_out_src_t sel)
Select output synchornize signal.
Definition: hpm_rdc_drv.h:401
rdc_rectify_signal
Select reference point of rectify signal.
Definition: hpm_rdc_drv.h:99
static void rdc_clear_q_maxval(RDC_Type *ptr)
Clear Q-phase maxval.
Definition: hpm_rdc_drv.h:509
enum rdc_input_max_min_value_source rdc_input_max_min_value_source_t
static void rdc_interrupt_config(RDC_Type *ptr, uint32_t status)
Enables configured interrupts.
Definition: hpm_rdc_drv.h:732
static void rdc_interrupt_reset_config(RDC_Type *ptr, uint32_t status)
Clear interrupts configured.
Definition: hpm_rdc_drv.h:743
void rdc_set_acc_config(RDC_Type *ptr, rdc_acc_cfg_t *cfg)
RDC set accumulate configuration.
Definition: hpm_rdc_drv.c:159
rdc_output_precision
Rdc output precision, use n points to form an excitation signal period.
Definition: hpm_rdc_drv.h:36
enum rdc_input_acc_chn rdc_input_acc_chn_t
Rdc input channel.
void rdc_input_config(RDC_Type *ptr, rdc_input_cfg_t *cfg)
Rdc input configuration, configuration of adc signal source and calculation parameters.
Definition: hpm_rdc_drv.c:44
static void rdc_acc_enable(RDC_Type *ptr)
Enable accumulate calculation function.
Definition: hpm_rdc_drv.h:283
void rdc_output_trig_disable(RDC_Type *ptr, rdc_output_trig_chn_t chn)
Disable rdc output trigger configuration.
Definition: hpm_rdc_drv.c:92
static uint32_t rdc_get_sample_rise_q(RDC_Type *ptr)
Get q channel sample value on rising edge of rectify signal.
Definition: hpm_rdc_drv.h:666
rdc_output_pwm_period
Pwm output period in samples.
Definition: hpm_rdc_drv.h:52
static uint32_t rdc_get_acc_cnt_negative_i(RDC_Type *ptr)
Get sample number during the negtive of rectify signal.
Definition: hpm_rdc_drv.h:611
rdc_sync_out_src
Synchronize output trig adc position.
Definition: hpm_rdc_drv.h:86
static void rdc_exc_enable(RDC_Type *ptr)
Enable rdc excite signal.
Definition: hpm_rdc_drv.h:411
struct rdc_acc_cfg rdc_acc_cfg_t
Accumulated configuration information.
static uint32_t get_interrupt_status(RDC_Type *ptr)
Get the interrupt status object.
Definition: hpm_rdc_drv.h:785
enum rdc_acc_stamp_time rdc_acc_stamp_time_t
Time stamp selection for accumulation.
int32_t rdc_get_q_maxval(RDC_Type *ptr)
Get Q-phase maximum.
Definition: hpm_rdc_drv.c:126
enum rdc_sync_out_src rdc_sync_out_src_t
Synchronize output trig adc position.
struct rdc_output_cfg rdc_output_cfg_t
Rdc output configuration.
static void rdc_acc_disable(RDC_Type *ptr)
Disable accumulate calculation function.
Definition: hpm_rdc_drv.h:293
rdc_interrupt_stat
Rdc status flags.
Definition: hpm_rdc_drv.h:146
static uint32_t rdc_get_acc_cnt_negative_q(RDC_Type *ptr)
Get q channel sample number during the negtive of rectify signal.
Definition: hpm_rdc_drv.h:699
static void rdc_exc_disable(RDC_Type *ptr)
Disable rdc excite signal.
Definition: hpm_rdc_drv.h:421
static uint32_t rdc_get_rise_delay_i(RDC_Type *ptr)
Get delay in clock cycle between excitation synchrnous signal and rising edge of i_channel data.
Definition: hpm_rdc_drv.h:556
rdc_input_acc_chn
Rdc input channel.
Definition: hpm_rdc_drv.h:132
static uint32_t rdc_get_sample_rise_i(RDC_Type *ptr)
Get sample value on rising edge of rectify signal.
Definition: hpm_rdc_drv.h:578
enum rdc_output_precision rdc_output_precision_t
Rdc output precision, use n points to form an excitation signal period.
static uint32_t rdc_get_sync_output_delay(RDC_Type *ptr)
Delay bettween the delyed trigger and the first pwm pulse in clock cycle.
Definition: hpm_rdc_drv.h:490
static uint32_t rdc_get_sign_cnt_negative_q(RDC_Type *ptr)
Get q channel sample number during the negtive of rectify signal.
Definition: hpm_rdc_drv.h:721
static void rdc_clear_i_maxval(RDC_Type *ptr)
Clear Maximum.
Definition: hpm_rdc_drv.h:450
void rdc_set_edge_detection_offset(RDC_Type *ptr, rdc_input_acc_chn_t chn, int32_t offset)
The offset setting for edge detection of the i_channel or q_channel.
Definition: hpm_rdc_drv.c:150
void rdc_output_trig_offset_config(RDC_Type *ptr, rdc_output_trig_chn_t chn, int32_t offset)
Output trigger configuration Lead time for trigger out0 or out1 from center of low level ,...
Definition: hpm_rdc_drv.c:72
rdc_output_trig_chn
Rdc trigger out channel 0 or channel 1.
Definition: hpm_rdc_drv.h:122
static void rdc_interrupt_clear_flag_bits(RDC_Type *ptr, uint32_t mask)
Clear interrupt flag bits.
Definition: hpm_rdc_drv.h:774
static void rdc_interrupt_enable(RDC_Type *ptr)
Enable rdc interrupt.
Definition: hpm_rdc_drv.h:753
enum rdc_interrupt_stat rdc_interrupt_stat_t
Rdc status flags.
int32_t rdc_get_i_minval(RDC_Type *ptr)
Get I-phase minimum.
Definition: hpm_rdc_drv.c:114
enum rdc_output_mode rdc_output_mode_t
Rdc output mode.
static void rdc_interrupt_disable(RDC_Type *ptr)
Disable rdc interrupt.
Definition: hpm_rdc_drv.h:763
static uint32_t rdc_get_sign_cnt_negative_i(RDC_Type *ptr)
Get Positive sample counter during negative rectify signal.
Definition: hpm_rdc_drv.h:633
static void rdc_set_acc_len(RDC_Type *ptr, uint8_t len)
Configuration accumulate time, support on the fly change.
Definition: hpm_rdc_drv.h:272
static uint32_t rdc_get_sign_cnt_poitive_i(RDC_Type *ptr)
Get Negative sample counter during positive rectify signal.
Definition: hpm_rdc_drv.h:622
void rdc_output_trig_enable(RDC_Type *ptr, rdc_output_trig_chn_t chn)
Enable output trigger configuration.
Definition: hpm_rdc_drv.c:83
static uint32_t rdc_get_sample_fall_q(RDC_Type *ptr)
Get q channel sample value on falling edge of rectify signal.
Definition: hpm_rdc_drv.h:677
void rdc_output_config(RDC_Type *ptr, rdc_output_cfg_t *cfg)
Rdc output configuration, can be configured pwm output or dac output.
Definition: hpm_rdc_drv.c:11
uint32_t rdc_get_acc_avl(RDC_Type *ptr, rdc_input_acc_chn_t chn)
Get the accumulate value.
Definition: hpm_rdc_drv.c:63
static uint32_t rdc_get_acc_cnt_positive_q(RDC_Type *ptr)
Get q channel sample number during the positive of rectify signal.
Definition: hpm_rdc_drv.h:688
static uint32_t rdc_get_fall_delay_q(RDC_Type *ptr)
Get delay in clock cycle between excitation synchrnous signal and falling edge of q_channel data.
Definition: hpm_rdc_drv.h:655
static void rdc_clear_i_minval(RDC_Type *ptr)
Clear I-phase minimum.
Definition: hpm_rdc_drv.h:469
int32_t rdc_get_i_maxval(RDC_Type *ptr)
Get I-phase maximum.
Definition: hpm_rdc_drv.c:101
static uint32_t rdc_get_acc_cnt_positive_i(RDC_Type *ptr)
Get sample number during the positive of rectify signal.
Definition: hpm_rdc_drv.h:600
static uint32_t rdc_get_fall_delay_i(RDC_Type *ptr)
Get delay in clock cycle between excitation synchrnous signal and fall edge of i_channel data.
Definition: hpm_rdc_drv.h:567
static uint32_t rdc_get_sample_fall_i(RDC_Type *ptr)
Get sample value on falling edge of rectify signal.
Definition: hpm_rdc_drv.h:589
void rdc_set_acc_sync_delay(RDC_Type *ptr, rdc_input_acc_chn_t chn, uint32_t delay)
Set Acc sync delay.
Definition: hpm_rdc_drv.c:184
static uint32_t rdc_get_sign_cnt_poitive_q(RDC_Type *ptr)
Get q channel negative sample counter during positive rectify signal.
Definition: hpm_rdc_drv.h:710
static void rdc_output_trig_sw(RDC_Type *ptr)
Software triggered excitation signal output.
Definition: hpm_rdc_drv.h:431
rdc_acc_stamp_time
Time stamp selection for accumulation.
Definition: hpm_rdc_drv.h:112
int32_t rdc_get_q_minval(RDC_Type *ptr)
Get Q-phase Minval.
Definition: hpm_rdc_drv.c:138
enum rdc_output_pwm_period rdc_output_pwm_period_t
Pwm output period in samples.
struct rdc_input_cfg rdc_input_cfg_t
Rdc input configuration.
enum rdc_output_trig_chn rdc_output_trig_chn_t
Rdc trigger out channel 0 or channel 1.
static void rdc_clear_q_minval(RDC_Type *ptr)
Clear Q-phase Minval.
Definition: hpm_rdc_drv.h:528
rdc_input_max_min_value_source
Definition: hpm_rdc_drv.h:137
@ rdc_output_dac
Definition: hpm_rdc_drv.h:78
@ rdc_output_pwm
Definition: hpm_rdc_drv.h:79
@ rdc_rectify_signal_external
Definition: hpm_rdc_drv.h:104
@ rdc_rectify_signal_exc_0_ph
Definition: hpm_rdc_drv.h:100
@ rdc_rectify_signal_exc_90_ph
Definition: hpm_rdc_drv.h:101
@ rdc_rectify_signal_exc_180_ph
Definition: hpm_rdc_drv.h:102
@ rdc_rectify_signal_exc_270_ph
Definition: hpm_rdc_drv.h:103
@ rdc_rectify_signal_external_invert
Definition: hpm_rdc_drv.h:105
@ rdc_output_precision_256_point
Definition: hpm_rdc_drv.h:43
@ rdc_output_precision_32_point
Definition: hpm_rdc_drv.h:40
@ rdc_output_precision_64_point
Definition: hpm_rdc_drv.h:41
@ rdc_output_precision_512_point
Definition: hpm_rdc_drv.h:44
@ rdc_output_precision_1024_point
Definition: hpm_rdc_drv.h:45
@ rdc_output_precision_8_point
Definition: hpm_rdc_drv.h:38
@ rdc_output_precision_4_point
Definition: hpm_rdc_drv.h:37
@ rdc_output_precision_128_point
Definition: hpm_rdc_drv.h:42
@ rdc_output_precision_16_point
Definition: hpm_rdc_drv.h:39
@ rdc_output_pwm_period_11_sample
Definition: hpm_rdc_drv.h:63
@ rdc_output_pwm_period_9_sample
Definition: hpm_rdc_drv.h:61
@ rdc_output_pwm_period_7_sample
Definition: hpm_rdc_drv.h:59
@ rdc_output_pwm_period_13_sample
Definition: hpm_rdc_drv.h:65
@ rdc_output_pwm_period_5_sample
Definition: hpm_rdc_drv.h:57
@ rdc_output_pwm_period_2_sample
Definition: hpm_rdc_drv.h:54
@ rdc_output_pwm_period_16_sample
Definition: hpm_rdc_drv.h:68
@ rdc_output_pwm_period_8_sample
Definition: hpm_rdc_drv.h:60
@ rdc_output_pwm_period_3_sample
Definition: hpm_rdc_drv.h:55
@ rdc_output_pwm_period_1_sample
Definition: hpm_rdc_drv.h:53
@ rdc_output_pwm_period_15_sample
Definition: hpm_rdc_drv.h:67
@ rdc_output_pwm_period_6_sample
Definition: hpm_rdc_drv.h:58
@ rdc_output_pwm_period_4_sample
Definition: hpm_rdc_drv.h:56
@ rdc_output_pwm_period_14_sample
Definition: hpm_rdc_drv.h:66
@ rdc_output_pwm_period_12_sample
Definition: hpm_rdc_drv.h:64
@ rdc_output_pwm_period_10_sample
Definition: hpm_rdc_drv.h:62
@ rdc_sync_out_exc_180_ph
Definition: hpm_rdc_drv.h:89
@ rdc_sync_out_min
Definition: hpm_rdc_drv.h:92
@ rdc_sync_out_exc_90_ph
Definition: hpm_rdc_drv.h:88
@ rdc_sync_out_exc_270_ph
Definition: hpm_rdc_drv.h:90
@ rdc_sync_out_exc_0_ph
Definition: hpm_rdc_drv.h:87
@ rdc_sync_out_max
Definition: hpm_rdc_drv.h:91
@ acc_vld_q_ovl_stat
Definition: hpm_rdc_drv.h:160
@ acc_vld_i_stat
Definition: hpm_rdc_drv.h:147
@ acc_vld_q_ovh_stat
Definition: hpm_rdc_drv.h:158
@ sample_rising_q_stat
Definition: hpm_rdc_drv.h:155
@ falling_delay_i_stat
Definition: hpm_rdc_drv.h:150
@ rising_delay_q_stat
Definition: hpm_rdc_drv.h:151
@ sample_rising_i_stat
Definition: hpm_rdc_drv.h:153
@ rising_delay_i_stat
Definition: hpm_rdc_drv.h:149
@ acc_vld_i_ovl_stat
Definition: hpm_rdc_drv.h:159
@ acc_amp_ovh_stat
Definition: hpm_rdc_drv.h:161
@ sample_falling_q_stat
Definition: hpm_rdc_drv.h:156
@ acc_vld_i_ovh_stat
Definition: hpm_rdc_drv.h:157
@ sample_falling_i_stat
Definition: hpm_rdc_drv.h:154
@ acc_vld_q_stat
Definition: hpm_rdc_drv.h:148
@ acc_amp_ovl_stat
Definition: hpm_rdc_drv.h:162
@ falling_delay_q_stat
Definition: hpm_rdc_drv.h:152
@ rdc_acc_chn_i
Definition: hpm_rdc_drv.h:133
@ rdc_acc_chn_q
Definition: hpm_rdc_drv.h:134
@ trigger_out_1
Definition: hpm_rdc_drv.h:124
@ trigger_out_0
Definition: hpm_rdc_drv.h:123
@ rdc_acc_stamp_start_of_acc
Definition: hpm_rdc_drv.h:114
@ rdc_acc_stamp_center_of_acc
Definition: hpm_rdc_drv.h:115
@ rdc_acc_stamp_end_of_acc
Definition: hpm_rdc_drv.h:113
@ rdc_value_at_iir
Definition: hpm_rdc_drv.h:139
@ rdc_value_at_adc
Definition: hpm_rdc_drv.h:138
Definition: hpm_rdc_regs.h:12
__RW uint32_t MAX_Q
Definition: hpm_rdc_regs.h:32
__R uint32_t FALL_DELAY_Q
Definition: hpm_rdc_regs.h:51
__R uint32_t FALL_DELAY_I
Definition: hpm_rdc_regs.h:43
__R uint32_t RISE_DELAY_Q
Definition: hpm_rdc_regs.h:50
__R uint32_t ACC_CNT_I
Definition: hpm_rdc_regs.h:46
__R uint32_t SAMPLE_FALL_Q
Definition: hpm_rdc_regs.h:53
__R uint32_t SIGN_CNT_I
Definition: hpm_rdc_regs.h:47
__RW uint32_t RDC_CTL
Definition: hpm_rdc_regs.h:13
__RW uint32_t SYNC_OUT_CTRL
Definition: hpm_rdc_regs.h:27
__R uint32_t SAMPLE_RISE_Q
Definition: hpm_rdc_regs.h:52
__RW uint32_t INT_EN
Definition: hpm_rdc_regs.h:58
__R uint32_t SAMPLE_FALL_I
Definition: hpm_rdc_regs.h:45
__RW uint32_t MIN_Q
Definition: hpm_rdc_regs.h:33
__RW uint32_t THRS_Q
Definition: hpm_rdc_regs.h:35
__RW uint32_t MIN_I
Definition: hpm_rdc_regs.h:31
__R uint32_t RISE_DELAY_I
Definition: hpm_rdc_regs.h:42
__R uint32_t ACC_CNT_Q
Definition: hpm_rdc_regs.h:54
__R uint32_t SIGN_CNT_Q
Definition: hpm_rdc_regs.h:55
__RW uint32_t MAX_I
Definition: hpm_rdc_regs.h:30
__RW uint32_t THRS_I
Definition: hpm_rdc_regs.h:34
__W uint32_t ADC_INT_STATE
Definition: hpm_rdc_regs.h:59
__R uint32_t SAMPLE_RISE_I
Definition: hpm_rdc_regs.h:44
Accumulated configuration information.
Definition: hpm_rdc_drv.h:212
uint16_t edge_distance
Definition: hpm_rdc_drv.h:215
uint16_t continue_edge_num
Definition: hpm_rdc_drv.h:214
uint32_t exc_carrier_period
Definition: hpm_rdc_drv.h:223
uint32_t sync_delay_i
Definition: hpm_rdc_drv.h:224
uint32_t amp_max
Definition: hpm_rdc_drv.h:226
uint32_t amp_min
Definition: hpm_rdc_drv.h:227
uint32_t sync_delay_q
Definition: hpm_rdc_drv.h:225
bool error_data_remove
Definition: hpm_rdc_drv.h:222
uint8_t right_shift_without_sign
Definition: hpm_rdc_drv.h:221
Rdc input configuration.
Definition: hpm_rdc_drv.h:194
uint8_t acc_cycle_len
Definition: hpm_rdc_drv.h:200
uint32_t acc_input_port_q
Definition: hpm_rdc_drv.h:205
rdc_acc_stamp_time_t acc_stamp
Definition: hpm_rdc_drv.h:201
uint32_t acc_input_port_i
Definition: hpm_rdc_drv.h:203
rdc_rectify_signal_t rectify_signal_sel
Definition: hpm_rdc_drv.h:195
uint32_t acc_input_chn_i
Definition: hpm_rdc_drv.h:202
uint32_t acc_input_chn_q
Definition: hpm_rdc_drv.h:204
Rdc output configuration.
Definition: hpm_rdc_drv.h:169
uint8_t pwm_deadzone_n
Definition: hpm_rdc_drv.h:186
bool trig_by_hw
Definition: hpm_rdc_drv.h:181
int32_t amp_offset
Definition: hpm_rdc_drv.h:175
rdc_output_pwm_period_t pwm_period
Definition: hpm_rdc_drv.h:173
bool pwm_exc_n_low_active
Definition: hpm_rdc_drv.h:180
uint8_t dac_chn_q_sel
Definition: hpm_rdc_drv.h:184
uint32_t hw_trig_delay
Definition: hpm_rdc_drv.h:182
uint8_t pwm_deadzone_p
Definition: hpm_rdc_drv.h:185
rdc_output_precision_t excitation_precision
Definition: hpm_rdc_drv.h:172
uint8_t dac_chn_i_sel
Definition: hpm_rdc_drv.h:183
uint16_t amp_man
Definition: hpm_rdc_drv.h:176
bool pwm_exc_p_low_active
Definition: hpm_rdc_drv.h:179
rdc_output_mode_t mode
Definition: hpm_rdc_drv.h:170
bool output_swap
Definition: hpm_rdc_drv.h:174
uint32_t excitation_period_cycle
Definition: hpm_rdc_drv.h:171
bool pwm_dither_enable
Definition: hpm_rdc_drv.h:178
uint16_t amp_exp
Definition: hpm_rdc_drv.h:177