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 
141 typedef enum rdc_interrupt_stat {
159 
164 typedef struct rdc_output_cfg {
169  bool output_swap;
170  int32_t amp_offset;
171  uint16_t amp_man;
172  uint16_t amp_exp;
176  bool trig_by_hw;
177  uint32_t hw_trig_delay;
178  uint8_t dac_chn_i_sel;
179  uint8_t dac_chn_q_sel;
180  uint8_t pwm_deadzone_p;
181  uint8_t pwm_deadzone_n;
183 
184 
189 typedef struct rdc_input_cfg {
191  uint8_t acc_cycle_len;
193  uint32_t acc_input_chn_i;
194  uint32_t acc_input_port_i;
195  uint32_t acc_input_chn_q;
196  uint32_t acc_input_port_q;
198 
203 typedef struct rdc_acc_cfg {
204  struct {
205  uint16_t continue_edge_num: 3;
206  uint16_t edge_distance: 6;
207  };
211  uint32_t sync_delay_i;
212  uint32_t sync_delay_q;
213  uint32_t amp_max;
214  uint32_t amp_min;
216 
231 
238 void rdc_input_config(RDC_Type *ptr, rdc_input_cfg_t *cfg);
239 
246 static inline void rdc_set_acc_len(RDC_Type *ptr, uint8_t len)
247 {
248  ptr->RDC_CTL = (ptr->RDC_CTL & (~RDC_RDC_CTL_ACC_LEN_MASK))
250 }
251 
257 static inline void rdc_acc_enable(RDC_Type *ptr)
258 {
260 }
261 
267 static inline void rdc_acc_disable(RDC_Type *ptr)
268 {
270 }
271 
279 uint32_t rdc_get_acc_avl(RDC_Type *ptr, rdc_input_acc_chn_t chn);
280 
288 void rdc_output_trig_offset_config(RDC_Type *ptr, rdc_output_trig_chn_t chn, int32_t offset);
289 
297 
305 
313 {
314  ptr->SYNC_OUT_CTRL = sel;
315 }
316 
322 static inline void rdc_exc_enable(RDC_Type *ptr)
323 {
325 }
326 
332 static inline void rdc_exc_disable(RDC_Type *ptr)
333 {
335 }
336 
342 static inline void rdc_output_trig_sw(RDC_Type *ptr)
343 {
345 }
346 
354 int32_t rdc_get_i_maxval(RDC_Type *ptr);
355 
361 static inline void rdc_clear_i_maxval(RDC_Type *ptr)
362 {
363  ptr->MAX_I = 0;
364 }
365 
373 int32_t rdc_get_i_minval(RDC_Type *ptr);
374 
380 static inline void rdc_clear_i_minval(RDC_Type *ptr)
381 {
382  ptr->MIN_I = 0;
383 }
384 
392 void rdc_set_acc_sync_delay(RDC_Type *ptr, rdc_input_acc_chn_t chn, uint32_t delay);
393 
401 static inline uint32_t rdc_get_sync_output_delay(RDC_Type *ptr)
402 {
404 }
405 
413 int32_t rdc_get_q_maxval(RDC_Type *ptr);
414 
420 static inline void rdc_clear_q_maxval(RDC_Type *ptr)
421 {
422  ptr->MAX_Q = 0;
423 }
424 
432 int32_t rdc_get_q_minval(RDC_Type *ptr);
433 
439 static inline void rdc_clear_q_minval(RDC_Type *ptr)
440 {
441  ptr->MIN_Q = 0;
442 }
443 
451 void rdc_set_edge_detection_offset(RDC_Type *ptr, rdc_input_acc_chn_t chn, int32_t offset);
452 
459 void rdc_set_acc_config(RDC_Type *ptr, rdc_acc_cfg_t *cfg);
460 
467 static inline uint32_t rdc_get_rise_delay_i(RDC_Type *ptr)
468 {
470 }
471 
478 static inline uint32_t rdc_get_fall_delay_i(RDC_Type *ptr)
479 {
481 }
482 
489 static inline uint32_t rdc_get_sample_rise_i(RDC_Type *ptr)
490 {
492 }
493 
500 static inline uint32_t rdc_get_sample_fall_i(RDC_Type *ptr)
501 {
503 }
504 
511 static inline uint32_t rdc_get_acc_cnt_positive_i(RDC_Type *ptr)
512 {
514 }
515 
522 static inline uint32_t rdc_get_acc_cnt_negative_i(RDC_Type *ptr)
523 {
525 }
526 
533 static inline uint32_t rdc_get_sign_cnt_poitive_i(RDC_Type *ptr)
534 {
536 }
537 
544 static inline uint32_t rdc_get_sign_cnt_negative_i(RDC_Type *ptr)
545 {
547 }
548 
555 static inline uint32_t rdc_get_rise_delay_q(RDC_Type *ptr)
556 {
558 }
559 
566 static inline uint32_t rdc_get_fall_delay_q(RDC_Type *ptr)
567 {
569 }
570 
577 static inline uint32_t rdc_get_sample_rise_q(RDC_Type *ptr)
578 {
580 }
581 
588 static inline uint32_t rdc_get_sample_fall_q(RDC_Type *ptr)
589 {
591 }
592 
599 static inline uint32_t rdc_get_acc_cnt_positive_q(RDC_Type *ptr)
600 {
602 }
603 
610 static inline uint32_t rdc_get_acc_cnt_negative_q(RDC_Type *ptr)
611 {
613 }
614 
621 static inline uint32_t rdc_get_sign_cnt_poitive_q(RDC_Type *ptr)
622 {
624 }
625 
632 static inline uint32_t rdc_get_sign_cnt_negative_q(RDC_Type *ptr)
633 {
635 }
636 
643 static inline void rdc_interrupt_config(RDC_Type *ptr, uint32_t status)
644 {
645  ptr->INT_EN |= status;
646 }
647 
654 static inline void rdc_interrupt_reset_config(RDC_Type *ptr, uint32_t status)
655 {
656  ptr->INT_EN &= ~status;
657 }
658 
664 static inline void rdc_interrupt_enable(RDC_Type *ptr)
665 {
667 }
668 
674 static inline void rdc_interrupt_disable(RDC_Type *ptr)
675 {
677 }
678 
685 static inline void rdc_interrupt_clear_flag_bits(RDC_Type *ptr, uint32_t mask)
686 {
687  ptr->ADC_INT_STATE &= mask;
688 }
689 
696 static inline uint32_t get_interrupt_status(RDC_Type *ptr)
697 {
698  return ptr->ADC_INT_STATE;
699 }
700 
703 #ifdef __cplusplus
704 }
705 #endif
706 
708 #endif /* HPM_ADC12_DRV_H */
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:555
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:312
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:420
static void rdc_interrupt_config(RDC_Type *ptr, uint32_t status)
Enables configured interrupts.
Definition: hpm_rdc_drv.h:643
static void rdc_interrupt_reset_config(RDC_Type *ptr, uint32_t status)
Clear interrupts configured.
Definition: hpm_rdc_drv.h:654
void rdc_set_acc_config(RDC_Type *ptr, rdc_acc_cfg_t *cfg)
RDC set accumulate configuration.
Definition: hpm_rdc_drv.c:152
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:257
void rdc_output_trig_disable(RDC_Type *ptr, rdc_output_trig_chn_t chn)
Disable rdc output trigger configuration.
Definition: hpm_rdc_drv.c:85
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:577
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:522
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:322
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:696
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:119
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:267
rdc_interrupt_stat
Rdc status flags.
Definition: hpm_rdc_drv.h:141
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:610
static void rdc_exc_disable(RDC_Type *ptr)
Disable rdc excite signal.
Definition: hpm_rdc_drv.h:332
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:467
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:489
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:401
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:632
static void rdc_clear_i_maxval(RDC_Type *ptr)
Clear Maximum.
Definition: hpm_rdc_drv.h:361
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:143
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:65
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:685
static void rdc_interrupt_enable(RDC_Type *ptr)
Enable rdc interrupt.
Definition: hpm_rdc_drv.h:664
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:107
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:674
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:544
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:246
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:533
void rdc_output_trig_enable(RDC_Type *ptr, rdc_output_trig_chn_t chn)
Enable output trigger configuration.
Definition: hpm_rdc_drv.c:76
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:588
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:56
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:599
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:566
static void rdc_clear_i_minval(RDC_Type *ptr)
Clear I-phase minimum.
Definition: hpm_rdc_drv.h:380
int32_t rdc_get_i_maxval(RDC_Type *ptr)
Get I-phase maximum.
Definition: hpm_rdc_drv.c:94
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:511
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:478
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:500
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:173
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:621
static void rdc_output_trig_sw(RDC_Type *ptr)
Software triggered excitation signal output.
Definition: hpm_rdc_drv.h:342
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:131
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:439
@ 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:155
@ acc_vld_i_stat
Definition: hpm_rdc_drv.h:142
@ acc_vld_q_ovh_stat
Definition: hpm_rdc_drv.h:153
@ sample_rising_q_stat
Definition: hpm_rdc_drv.h:150
@ falling_delay_i_stat
Definition: hpm_rdc_drv.h:145
@ rising_delay_q_stat
Definition: hpm_rdc_drv.h:146
@ sample_rising_i_stat
Definition: hpm_rdc_drv.h:148
@ rising_delay_i_stat
Definition: hpm_rdc_drv.h:144
@ acc_vld_i_ovl_stat
Definition: hpm_rdc_drv.h:154
@ acc_amp_ovh_stat
Definition: hpm_rdc_drv.h:156
@ sample_falling_q_stat
Definition: hpm_rdc_drv.h:151
@ acc_vld_i_ovh_stat
Definition: hpm_rdc_drv.h:152
@ sample_falling_i_stat
Definition: hpm_rdc_drv.h:149
@ acc_vld_q_stat
Definition: hpm_rdc_drv.h:143
@ acc_amp_ovl_stat
Definition: hpm_rdc_drv.h:157
@ falling_delay_q_stat
Definition: hpm_rdc_drv.h:147
@ 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
#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:1134
#define RDC_INT_EN_SAMPLE_RISING_I_EN_MASK
Definition: hpm_rdc_regs.h:1074
#define RDC_RISE_DELAY_I_RISE_DELAY_GET(x)
Definition: hpm_rdc_regs.h:791
#define RDC_INT_EN_ACC_VLD_I_OVH_EN_MASK
Definition: hpm_rdc_regs.h:1114
#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:859
#define RDC_INT_EN_ACC_AMP_OVL_EN_MASK
Definition: hpm_rdc_regs.h:1164
#define RDC_INT_EN_RISING_DELAY_I_EN_MASK
Definition: hpm_rdc_regs.h:1034
#define RDC_INT_EN_ACC_AMP_OVH_EN_MASK
Definition: hpm_rdc_regs.h:1154
#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:1024
#define RDC_INT_EN_ACC_VLD_Q_OVL_EN_MASK
Definition: hpm_rdc_regs.h:1144
#define RDC_INT_EN_RISING_DELAY_Q_EN_MASK
Definition: hpm_rdc_regs.h:1054
#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:910
#define RDC_INT_EN_ACC_VLD_Q_OVH_EN_MASK
Definition: hpm_rdc_regs.h:1124
#define RDC_RISE_DELAY_Q_RISE_DELAY_GET(x)
Definition: hpm_rdc_regs.h:897
#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:955
#define RDC_SIGN_CNT_Q_CNT_NEG_GET(x)
Definition: hpm_rdc_regs.h:965
#define RDC_INT_EN_ACC_VLD_I_EN_MASK
Definition: hpm_rdc_regs.h:1014
#define RDC_FALL_DELAY_I_FALL_DELAY_GET(x)
Definition: hpm_rdc_regs.h:804
#define RDC_ACC_CNT_I_CNT_POS_GET(x)
Definition: hpm_rdc_regs.h:849
#define RDC_INT_EN_SAMPLE_FALLING_Q_EN_MASK
Definition: hpm_rdc_regs.h:1104
#define RDC_INT_EN_FALLING_DELAY_Q_EN_MASK
Definition: hpm_rdc_regs.h:1064
#define RDC_SAMPLE_RISE_Q_VALUE_GET(x)
Definition: hpm_rdc_regs.h:920
#define RDC_INT_EN_SAMPLE_FALLING_I_EN_MASK
Definition: hpm_rdc_regs.h:1084
#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:1004
#define RDC_SAMPLE_FALL_I_VALUE_GET(x)
Definition: hpm_rdc_regs.h:824
#define RDC_INT_EN_SAMPLE_RISING_Q_EN_MASK
Definition: hpm_rdc_regs.h:1094
#define RDC_SIGN_CNT_Q_CNT_POS_GET(x)
Definition: hpm_rdc_regs.h:974
#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:868
#define RDC_SAMPLE_RISE_I_VALUE_GET(x)
Definition: hpm_rdc_regs.h:814
#define RDC_INT_EN_FALLING_DELAY_I_EN_MASK
Definition: hpm_rdc_regs.h:1044
#define RDC_SAMPLE_FALL_Q_VALUE_GET(x)
Definition: hpm_rdc_regs.h:930
#define RDC_SYNC_OUT_CTRL_SYNC_OUT_SEL_SET(x)
Definition: hpm_rdc_regs.h:528
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 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
__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:203
uint16_t edge_distance
Definition: hpm_rdc_drv.h:206
uint16_t continue_edge_num
Definition: hpm_rdc_drv.h:205
uint32_t exc_carrier_period
Definition: hpm_rdc_drv.h:210
uint32_t sync_delay_i
Definition: hpm_rdc_drv.h:211
uint32_t amp_max
Definition: hpm_rdc_drv.h:213
uint32_t amp_min
Definition: hpm_rdc_drv.h:214
uint32_t sync_delay_q
Definition: hpm_rdc_drv.h:212
bool error_data_remove
Definition: hpm_rdc_drv.h:209
uint8_t right_shift_without_sign
Definition: hpm_rdc_drv.h:208
Rdc input configuration.
Definition: hpm_rdc_drv.h:189
uint8_t acc_cycle_len
Definition: hpm_rdc_drv.h:191
uint32_t acc_input_port_q
Definition: hpm_rdc_drv.h:196
rdc_acc_stamp_time_t acc_stamp
Definition: hpm_rdc_drv.h:192
uint32_t acc_input_port_i
Definition: hpm_rdc_drv.h:194
rdc_rectify_signal_t rectify_signal_sel
Definition: hpm_rdc_drv.h:190
uint32_t acc_input_chn_i
Definition: hpm_rdc_drv.h:193
uint32_t acc_input_chn_q
Definition: hpm_rdc_drv.h:195
Rdc output configuration.
Definition: hpm_rdc_drv.h:164
uint8_t pwm_deadzone_n
Definition: hpm_rdc_drv.h:181
bool trig_by_hw
Definition: hpm_rdc_drv.h:176
int32_t amp_offset
Definition: hpm_rdc_drv.h:170
rdc_output_pwm_period_t pwm_period
Definition: hpm_rdc_drv.h:168
bool pwm_exc_n_low_active
Definition: hpm_rdc_drv.h:175
uint8_t dac_chn_q_sel
Definition: hpm_rdc_drv.h:179
uint32_t hw_trig_delay
Definition: hpm_rdc_drv.h:177
uint8_t pwm_deadzone_p
Definition: hpm_rdc_drv.h:180
rdc_output_precision_t excitation_precision
Definition: hpm_rdc_drv.h:167
uint8_t dac_chn_i_sel
Definition: hpm_rdc_drv.h:178
uint16_t amp_man
Definition: hpm_rdc_drv.h:171
bool pwm_exc_p_low_active
Definition: hpm_rdc_drv.h:174
rdc_output_mode_t mode
Definition: hpm_rdc_drv.h:165
bool output_swap
Definition: hpm_rdc_drv.h:169
uint32_t excitation_period_cycle
Definition: hpm_rdc_drv.h:166
bool pwm_dither_enable
Definition: hpm_rdc_drv.h:173
uint16_t amp_exp
Definition: hpm_rdc_drv.h:172