 |
AM263Px MCU+ SDK
11.00.00
|
|
Go to the documentation of this file.
42 #ifndef RESOLVER_V1_H_
43 #define RESOLVER_V1_H_
63 #include <drivers/hw_include/hw_types.h>
64 #include <drivers/hw_include/cslr_soc.h>
66 #include <drivers/hw_include/cslr_resolver.h>
79 #define RDC_CORE_OFFSET (CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS_1 - CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS_0)
83 #define RDC_EXCITATION_FREQUENCY_MIN_PHASE (0U)
86 #define RDC_EXCITATION_FREQUENCY_MAX_PHASE (7999U)
90 #define RDC_MAX_EXCITATION_AMPLITUDE (249U)
94 #define RDC_RESOLVER_CORE0 (0U)
97 #define RDC_RESOLVER_CORE1 (1U)
102 #define RDC_ADC_CAL_CHANNEL0 (0U)
103 #define RDC_ADC_CAL_CHANNEL1 (1U)
104 #define RDC_ADC_CAL_CHANNEL2 (2U)
105 #define RDC_ADC_CAL_CHANNEL3 (3U)
106 #define RDC_ADC_CAL_CHANNEL_CAL2 (4U)
107 #define RDC_ADC_CAL_CHANNEL_CAL3 (5U)
108 #define RDC_ADC_CAL_CHANNEL_CAL0 (6U)
109 #define RDC_ADC_CAL_CHANNEL_CAL1 (7U)
112 #define RDC_DC_OFFSET_SIN_ESTIMATION (0U)
113 #define RDC_DC_OFFSET_COS_ESTIMATION (1U)
116 #define RDC_MIN_IDEAL_SAMPLE_PEAK_AVG_LIMIT (0U)
117 #define RDC_MAX_IDEAL_SAMPLE_PEAK_AVG_LIMIT (7U)
119 #define RDC_MAX_IDEAL_SAMPLE_BPF_ADJUST (0x0000001FU)
121 #define RDC_SINGALMODE_SINGLE_ENDED (0U)
122 #define RDC_SINGALMODE_DIFFERENTIAL_ENDED (1U)
134 #define RDC_ADC_BURST_COUNT_DISABLE (1U)
137 #define RDC_ADC_BURST_COUNT_2 (2U)
140 #define RDC_ADC_BURST_COUNT_4 (4U)
143 #define RDC_ADC_BURST_COUNT_8 (8U)
146 #define RDC_ADC_BURST_COUNT_16 (16U)
149 #define RDC_ADC_BURST_COUNT_32 (32U)
164 #define RDC_SEQUENCER_MODE_0 (0U)
168 #define RDC_SEQUENCER_MODE_1 (1U)
173 #define RDC_SEQUENCER_MODE_2 (2U)
181 #define RDC_SEQUENCER_MODE_3 (3U)
189 #define RDC_SEQUENCER_MODE_4 (4U)
196 #define RDC_SEQUENCER_MODE_5 (5U)
210 #define RDC_EXCITATION_FREQUENCY_5K (50)
213 #define RDC_EXCITATION_FREQUENCY_10K (100)
216 #define RDC_EXCITATION_FREQUENCY_20K (200)
232 #define OVERSAMPLING_RATIO_16 (8)
237 #define OVERSAMPLING_RATIO_20 (10)
254 #define RDC_INTERRUPT_SOURCE_LOWAMPLITUDE_ERR (0x00000001U)
255 #define RDC_INTERRUPT_SOURCE_HIGHAMPLITUDE_COS_FAULT_ERR (0x00000002U)
256 #define RDC_INTERRUPT_SOURCE_HIGHAMPLITUDE_SIN_FAULT_ERR (0x00000004U)
257 #define RDC_INTERRUPT_SOURCE_SINSQCOSSQ_LO_ERR (0x00000008U)
258 #define RDC_INTERRUPT_SOURCE_SINSQCOSSQ_HI_ERR (0x00000010U)
259 #define RDC_INTERRUPT_SOURCE_COS_MULTI_ZC_ERROR_ERR (0x00000020U)
260 #define RDC_INTERRUPT_SOURCE_SIN_MULTI_ZC_ERROR_ERR (0x00000040U)
261 #define RDC_INTERRUPT_SOURCE_COS_NEG_ZC_PEAK_MISMATCH_ERR (0x00000080U)
262 #define RDC_INTERRUPT_SOURCE_COS_POS_ZC_PEAK_MISMATCH_ERR (0x00000100U)
263 #define RDC_INTERRUPT_SOURCE_SIN_NEG_ZC_PEAK_MISMATCH_ERR (0x00000200U)
264 #define RDC_INTERRUPT_SOURCE_SIN_POS_ZC_PEAK_MISMATCH_ERR (0x00000400U)
265 #define RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_SIN_LO_ERR (0x00000800U)
266 #define RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_COS_LO_ERR (0x00001000U)
267 #define RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_HI_ERR (0x00002000U)
268 #define RDC_INTERRUPT_SOURCE_PHASEDRIFT_COS_LO_ERR (0x00004000U)
269 #define RDC_INTERRUPT_SOURCE_PHASEDRIFT_COS_HI_ERR (0x00008000U)
270 #define RDC_INTERRUPT_SOURCE_GAINDRIFT_SIN_LO_ERR (0x00010000U)
271 #define RDC_INTERRUPT_SOURCE_GAINDRIFT_SIN_HI_ERR (0x00020000U)
272 #define RDC_INTERRUPT_SOURCE_GAINDRIFT_COS_LO_ERR (0x00040000U)
273 #define RDC_INTERRUPT_SOURCE_GAINDRIFT_COS_HI_ERR (0x00080000U)
274 #define RDC_INTERRUPT_SOURCE_OFFSETDRIFT_SIN_LO_ERR (0x00100000U)
275 #define RDC_INTERRUPT_SOURCE_OFFSETDRIFT_SIN_HI_ERR (0x00200000U)
276 #define RDC_INTERRUPT_SOURCE_OFFSETDRIFT_COS_LO_ERR (0x00400000U)
277 #define RDC_INTERRUPT_SOURCE_OFFSETDRIFT_COS_HI_ERR (0x00800000U)
278 #define RDC_INTERRUPT_SOURCE_TRACK_LOCK_ERR (0x01000000U)
280 #define RDC_INTERRUPT_SOURCE_ALL (RDC_INTERRUPT_SOURCE_LOWAMPLITUDE_ERR | \
281 RDC_INTERRUPT_SOURCE_HIGHAMPLITUDE_COS_FAULT_ERR | \
282 RDC_INTERRUPT_SOURCE_HIGHAMPLITUDE_SIN_FAULT_ERR | \
283 RDC_INTERRUPT_SOURCE_SINSQCOSSQ_LO_ERR | \
284 RDC_INTERRUPT_SOURCE_SINSQCOSSQ_HI_ERR | \
285 RDC_INTERRUPT_SOURCE_COS_MULTI_ZC_ERROR_ERR | \
286 RDC_INTERRUPT_SOURCE_SIN_MULTI_ZC_ERROR_ERR | \
287 RDC_INTERRUPT_SOURCE_COS_NEG_ZC_PEAK_MISMATCH_ERR | \
288 RDC_INTERRUPT_SOURCE_COS_POS_ZC_PEAK_MISMATCH_ERR | \
289 RDC_INTERRUPT_SOURCE_SIN_NEG_ZC_PEAK_MISMATCH_ERR | \
290 RDC_INTERRUPT_SOURCE_SIN_POS_ZC_PEAK_MISMATCH_ERR | \
291 RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_SIN_LO_ERR | \
292 RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_COS_LO_ERR | \
293 RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_HI_ERR | \
294 RDC_INTERRUPT_SOURCE_PHASEDRIFT_COS_LO_ERR | \
295 RDC_INTERRUPT_SOURCE_PHASEDRIFT_COS_HI_ERR | \
296 RDC_INTERRUPT_SOURCE_GAINDRIFT_SIN_LO_ERR | \
297 RDC_INTERRUPT_SOURCE_GAINDRIFT_SIN_HI_ERR | \
298 RDC_INTERRUPT_SOURCE_GAINDRIFT_COS_LO_ERR | \
299 RDC_INTERRUPT_SOURCE_GAINDRIFT_COS_HI_ERR | \
300 RDC_INTERRUPT_SOURCE_OFFSETDRIFT_SIN_LO_ERR | \
301 RDC_INTERRUPT_SOURCE_OFFSETDRIFT_SIN_HI_ERR | \
302 RDC_INTERRUPT_SOURCE_OFFSETDRIFT_COS_LO_ERR | \
303 RDC_INTERRUPT_SOURCE_OFFSETDRIFT_COS_HI_ERR | \
304 RDC_INTERRUPT_SOURCE_TRACK_LOCK_ERR)
315 #define RDC_CAL_ADC0 (0U)
318 #define RDC_CAL_ADC1 (1U)
330 #define RDC_IDEAL_SAMPLE_TIME_MODE_0_AUTO_DETECT (0U)
334 #define RDC_IDEAL_SAMPLE_TIME_MODE_1_AUTO_DETECT_ON_SIN (1U)
338 #define RDC_IDEAL_SAMPLE_TIME_MODE_2_AUTO_DETECT_ON_COS (2U)
342 #define RDC_IDEAL_SAMPLE_TIME_MODE_3_AUTO_DETECT_OFF (3U)
678 uint8_t peakHistgoramBucket[20];
694 base + CSL_RESOLVER_REGS_GLOBAL_CFG,
696 base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
697 ~CSL_RESOLVER_REGS_GLOBAL_CFG_SOC_WIDTH_MASK) |
698 (((uint8_t)socWidth) << CSL_RESOLVER_REGS_GLOBAL_CFG_SOC_WIDTH_SHIFT));
707 static inline uint8_t
711 (uint8_t) ((HW_RD_REG32(base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
712 CSL_RESOLVER_REGS_GLOBAL_CFG_SOC_WIDTH_MASK) >> CSL_RESOLVER_REGS_GLOBAL_CFG_SOC_WIDTH_SHIFT));
732 base + CSL_RESOLVER_REGS_GLOBAL_CFG,
734 base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
735 ~CSL_RESOLVER_REGS_GLOBAL_CFG_BURST_CNT_MASK) |
736 ((uint32_t)(((uint8_t)burstCount) << CSL_RESOLVER_REGS_GLOBAL_CFG_BURST_CNT_SHIFT)));
751 static inline uint8_t
755 (uint8_t) ((HW_RD_REG32(base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
756 CSL_RESOLVER_REGS_GLOBAL_CFG_BURST_CNT_MASK) >> CSL_RESOLVER_REGS_GLOBAL_CFG_BURST_CNT_SHIFT)
770 base + CSL_RESOLVER_REGS_GLOBAL_CFG,
772 base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
773 ~CSL_RESOLVER_REGS_GLOBAL_CFG_SINGLE_EN_MASK) |
774 ((uint32_t)((1U) << CSL_RESOLVER_REGS_GLOBAL_CFG_SINGLE_EN_SHIFT)));
787 base + CSL_RESOLVER_REGS_GLOBAL_CFG,
789 base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
790 ~CSL_RESOLVER_REGS_GLOBAL_CFG_SINGLE_EN_MASK));
804 (HW_RD_REG32(base + CSL_RESOLVER_REGS_GLOBAL_CFG) & CSL_RESOLVER_REGS_GLOBAL_CFG_SINGLE_EN_MASK) == CSL_RESOLVER_REGS_GLOBAL_CFG_SINGLE_EN_MASK
827 static inline uint32_t
830 return ((HW_RD_REG32(
831 base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
832 CSL_RESOLVER_REGS_GLOBAL_CFG_MODE_MASK) >>
833 CSL_RESOLVER_REGS_GLOBAL_CFG_MODE_SHIFT);
863 base + CSL_RESOLVER_REGS_GLOBAL_CFG,
865 base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
866 ~CSL_RESOLVER_REGS_GLOBAL_CFG_MODE_MASK) |
867 ((uint32_t)((operationalMode) << CSL_RESOLVER_REGS_GLOBAL_CFG_MODE_SHIFT)));
879 base + CSL_RESOLVER_REGS_GLOBAL_CFG,
881 base + CSL_RESOLVER_REGS_GLOBAL_CFG) &
882 ~CSL_RESOLVER_REGS_GLOBAL_CFG_MASTER_EN_MASK) |
883 ((uint32_t)((1U) << CSL_RESOLVER_REGS_GLOBAL_CFG_MASTER_EN_SHIFT)));
895 base + CSL_RESOLVER_REGS_GLOBAL_CFG,
897 base + CSL_RESOLVER_REGS_GLOBAL_CFG) |
898 CSL_RESOLVER_REGS_GLOBAL_CFG_MASTER_EN_MASK) &
899 ~((uint32_t)((1U) << CSL_RESOLVER_REGS_GLOBAL_CFG_MASTER_EN_SHIFT)));
913 (HW_RD_REG32(base + CSL_RESOLVER_REGS_GLOBAL_CFG) & CSL_RESOLVER_REGS_GLOBAL_CFG_MASTER_EN_MASK) == CSL_RESOLVER_REGS_GLOBAL_CFG_MASTER_EN_MASK
934 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1,
936 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1) &
937 ~CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_EXC_FREQ_PHASE_CFG_MASK) |
938 ((uint32_t)(phase << CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_EXC_FREQ_PHASE_CFG_SHIFT)));
948 static inline uint32_t
953 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1) &
954 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_EXC_FREQ_PHASE_CFG_MASK) >>
955 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_EXC_FREQ_PHASE_CFG_SHIFT);
975 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1,
977 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1) &
978 ~CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_EXC_FREQ_SEL_MASK) |
979 ((uint32_t)(FrequencySel << CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_EXC_FREQ_SEL_SHIFT)));
991 static inline uint32_t
996 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1) &
997 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_EXC_FREQ_SEL_MASK) >>
998 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_EXC_FREQ_SEL_SHIFT);
1007 static inline uint32_t
1012 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1) &
1013 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_ADC_SAMPLE_RATE_MASK) >>
1014 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG1_ADC_SAMPLE_RATE_SHIFT);
1026 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2,
1028 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2) &
1029 ~CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EN_MASK) |
1030 ((uint32_t)((1U) << CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EN_SHIFT)));
1042 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2,
1044 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2) |
1045 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EN_MASK) &
1046 ~((uint32_t)((1U) << CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EN_SHIFT)));
1059 return((HW_RD_REG32(base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2) &
1060 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EN_MASK) == CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EN_MASK);
1073 static inline uint32_t
1078 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2) &
1079 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EVENT_MASK) >>
1080 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EVENT_SHIFT);
1092 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2,
1094 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2) &
1095 ~CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EVENT_MASK) |
1096 ((uint32_t)((1U) << CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_SYNC_IN_EVENT_SHIFT)));
1106 static inline uint32_t
1111 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2) &
1112 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_PHASE_INFO_MASK) >>
1113 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_PHASE_INFO_SHIFT);
1126 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2,
1128 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2) &
1129 ~CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_TO_SOC_DLY_START_MASK) |
1130 ((uint32_t)(socDelay << CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_TO_SOC_DLY_START_SHIFT)));
1139 static inline uint16_t
1143 (uint16_t) ((HW_RD_REG32(base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2) &
1144 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_TO_SOC_DLY_START_MASK) >> CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG2_PWM_TO_SOC_DLY_START_SHIFT)
1161 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG3,
1163 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG3) &
1164 ~CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG3_EXC_AMP_CTRL_MASK) |
1165 ((uint32_t)(amplitude << CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG3_EXC_AMP_CTRL_SHIFT)));
1174 static inline uint32_t
1179 base + CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG3) &
1180 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG3_EXC_AMP_CTRL_MASK) >>
1181 CSL_RESOLVER_REGS_EXCIT_SAMPLE_CFG3_EXC_AMP_CTRL_SHIFT);
1197 base + CSL_RESOLVER_REGS_IRQSTATUS_SYS,
1199 base + CSL_RESOLVER_REGS_IRQSTATUS_SYS) &
1200 ~CSL_RESOLVER_REGS_IRQSTATUS_SYS_SEQ_ERR_MASK) |
1201 ((uint32_t)((1U) << CSL_RESOLVER_REGS_IRQSTATUS_SYS_SEQ_ERR_SHIFT)));
1213 base + CSL_RESOLVER_REGS_IRQENABLE_CLR_SYS,
1215 base + CSL_RESOLVER_REGS_IRQENABLE_CLR_SYS) &
1216 ~CSL_RESOLVER_REGS_IRQENABLE_CLR_SYS_SEQ_ERR_MASK) |
1217 ((uint32_t)((1U) << CSL_RESOLVER_REGS_IRQENABLE_CLR_SYS_SEQ_ERR_SHIFT)));
1229 return((HW_RD_REG32(base + CSL_RESOLVER_REGS_IRQSTATUS_SYS) & CSL_RESOLVER_REGS_IRQSTATUS_SYS_SEQ_ERR_MASK) == CSL_RESOLVER_REGS_IRQSTATUS_SYS_SEQ_ERR_MASK);
1241 base + CSL_RESOLVER_REGS_IRQSTATUS_SYS,
1243 base + CSL_RESOLVER_REGS_IRQSTATUS_SYS) &
1244 ~CSL_RESOLVER_REGS_IRQSTATUS_SYS_SEQ_ERR_MASK) |
1245 ((uint32_t)((1U) << CSL_RESOLVER_REGS_IRQSTATUS_SYS_SEQ_ERR_SHIFT)));
1257 base + CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS,
1259 base + CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS) &
1260 ~CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS_SEQ_ERR_MASK) |
1261 ((uint32_t)((1U) << CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS_SEQ_ERR_SHIFT)));
1269 static inline uint32_t
1274 base + CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS) &
1275 ~CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS_SEQ_ERR_MASK) |
1276 ((uint32_t)((1U) << CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS_SEQ_ERR_SHIFT)));
1292 uint32_t regOffset = CSL_RESOLVER_REGS_IRQENABLE_SET_SYS_0 + (ResolverCore *
RDC_CORE_OFFSET);
1298 ((uint32_t)interruptSource));
1308 static inline uint32_t
1311 uint32_t regOffset = CSL_RESOLVER_REGS_IRQENABLE_SET_SYS_0 + (ResolverCore *
RDC_CORE_OFFSET);
1330 uint32_t regOffset = CSL_RESOLVER_REGS_IRQENABLE_CLR_SYS_0 + (ResolverCore *
RDC_CORE_OFFSET);
1336 ((uint32_t)interruptSource));
1352 uint32_t regOffset = CSL_RESOLVER_REGS_IRQSTATUS_SYS_0 + (ResolverCore *
RDC_CORE_OFFSET);
1375 uint32_t regOffset = CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS_0 + (ResolverCore *
RDC_CORE_OFFSET);
1391 static inline uint32_t
1396 uint32_t regOffset = CSL_RESOLVER_REGS_IRQSTATUS_RAW_SYS_0 + (ResolverCore *
RDC_CORE_OFFSET);
1410 static inline uint32_t
1415 uint32_t regOffset = CSL_RESOLVER_REGS_IRQSTATUS_SYS_0 + (ResolverCore *
RDC_CORE_OFFSET);
1438 base + CSL_RESOLVER_REGS_CAL_CFG) &
1439 CSL_RESOLVER_REGS_CAL_CFG_CAL_DONE_MASK) >>
1440 CSL_RESOLVER_REGS_CAL_CFG_CAL_DONE_SHIFT) &
1453 base + CSL_RESOLVER_REGS_CAL_CFG,
1455 base + CSL_RESOLVER_REGS_CAL_CFG) &
1456 ~CSL_RESOLVER_REGS_CAL_CFG_CAL_DONE_MASK) |
1457 ((uint32_t)((1U) << CSL_RESOLVER_REGS_CAL_CFG_CAL_DONE_SHIFT)));
1478 base + CSL_RESOLVER_REGS_CAL_CFG,
1480 base + CSL_RESOLVER_REGS_CAL_CFG) &
1481 ~CSL_RESOLVER_REGS_CAL_CFG_CAL_CHSEL_MASK) |
1482 ((uint32_t)(calChannel << CSL_RESOLVER_REGS_CAL_CFG_CAL_CHSEL_SHIFT)));
1494 base + CSL_RESOLVER_REGS_CAL_CFG,
1496 base + CSL_RESOLVER_REGS_CAL_CFG) &
1497 ~CSL_RESOLVER_REGS_CAL_CFG_CAL_EN_MASK) |
1498 ((uint32_t)((1U) << CSL_RESOLVER_REGS_CAL_CFG_CAL_EN_SHIFT)));
1508 static inline uint16_t
1511 uint32_t regData = HW_RD_REG32(
1512 base + CSL_RESOLVER_REGS_CAL_OBS) &
1513 (CSL_RESOLVER_REGS_CAL_OBS_CAL_ADC0_DATA_MASK |
1514 CSL_RESOLVER_REGS_CAL_OBS_CAL_ADC1_DATA_MASK);
1517 return ((uint16_t)((regData & CSL_RESOLVER_REGS_CAL_OBS_CAL_ADC0_DATA_MASK) >>
1518 CSL_RESOLVER_REGS_CAL_OBS_CAL_ADC0_DATA_SHIFT));
1520 return ((uint16_t)((regData & CSL_RESOLVER_REGS_CAL_OBS_CAL_ADC1_DATA_MASK) >>
1521 CSL_RESOLVER_REGS_CAL_OBS_CAL_ADC1_DATA_SHIFT));
1541 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG1_0 + (core *
RDC_CORE_OFFSET);
1542 uint32_t mask = (CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFF_CAL_COEF1_MASK |
1543 CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFF_CAL_COEF2_MASK);
1545 uint32_t value = (coef1 << CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFF_CAL_COEF1_SHIFT) |
1546 (coef2 << CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFF_CAL_COEF2_SHIFT);
1569 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG1_0 + (core *
RDC_CORE_OFFSET);
1570 uint32_t value = HW_RD_REG32(base+regOffset);
1572 *coef1 = (uint8_t)((value & CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFF_CAL_COEF1_MASK) >> CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFF_CAL_COEF1_SHIFT);
1573 *coef2 = (uint8_t)((value & CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFF_CAL_COEF2_MASK) >> CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFF_CAL_COEF2_SHIFT);
1590 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG1_0 + (core *
RDC_CORE_OFFSET);
1596 ~CSL_RESOLVER_REGS_DC_OFF_CFG1_0_BANDPASSFILTER_ON_MASK) |
1597 ((uint32_t)((1U) << CSL_RESOLVER_REGS_DC_OFF_CFG1_0_BANDPASSFILTER_ON_SHIFT)));
1610 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG1_0 + (core *
RDC_CORE_OFFSET);
1616 CSL_RESOLVER_REGS_DC_OFF_CFG1_0_BANDPASSFILTER_ON_MASK) &
1617 ~((uint32_t)((1U) << CSL_RESOLVER_REGS_DC_OFF_CFG1_0_BANDPASSFILTER_ON_SHIFT)));
1632 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG1_0 + (core *
RDC_CORE_OFFSET);
1634 return((HW_RD_REG32(base + regOffset) & CSL_RESOLVER_REGS_DC_OFF_CFG1_0_BANDPASSFILTER_ON_MASK) == CSL_RESOLVER_REGS_DC_OFF_CFG1_0_BANDPASSFILTER_ON_MASK);
1649 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG1_0 + (core *
RDC_CORE_OFFSET);
1655 ~CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFFSET_CORR_ON_MASK));
1671 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG1_0 + (core *
RDC_CORE_OFFSET);
1674 (HW_RD_REG32(base + regOffset) &
1675 CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFFSET_CORR_ON_MASK) == CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFFSET_CORR_ON_MASK
1691 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG1_0 + (core *
RDC_CORE_OFFSET);
1697 CSL_RESOLVER_REGS_DC_OFF_CFG1_0_OFFSET_CORR_ON_MASK));
1714 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG2_0 + (core *
RDC_CORE_OFFSET);
1715 uint32_t mask = (CSL_RESOLVER_REGS_DC_OFF_CFG2_0_SIN_MAN_OFF_ADJ_MASK |
1716 CSL_RESOLVER_REGS_DC_OFF_CFG2_0_COS_MAN_OFF_ADJ_MASK);
1718 uint32_t value = (((uint32_t)((uint16_t)sin)) << CSL_RESOLVER_REGS_DC_OFF_CFG2_0_SIN_MAN_OFF_ADJ_SHIFT) |
1719 (((uint32_t)((uint16_t)cos)) << CSL_RESOLVER_REGS_DC_OFF_CFG2_0_COS_MAN_OFF_ADJ_SHIFT);
1745 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF_CFG2_0 + (core *
RDC_CORE_OFFSET);
1746 uint32_t mask = (CSL_RESOLVER_REGS_DC_OFF_CFG2_0_SIN_MAN_OFF_ADJ_MASK |
1747 CSL_RESOLVER_REGS_DC_OFF_CFG2_0_COS_MAN_OFF_ADJ_MASK);
1749 uint32_t value = HW_RD_REG32(base + regOffset) & mask;
1751 *sin = (int16_t) (value >> CSL_RESOLVER_REGS_DC_OFF_CFG2_0_SIN_MAN_OFF_ADJ_SHIFT);
1752 *cos = (int16_t) (value >> CSL_RESOLVER_REGS_DC_OFF_CFG2_0_COS_MAN_OFF_ADJ_SHIFT);
1766 static inline int16_t
1769 uint32_t regOffset = CSL_RESOLVER_REGS_DC_OFF0 + (core *
RDC_CORE_OFFSET);
1770 uint32_t mask = CSL_RESOLVER_REGS_DC_OFF0_SIN_OFFSET_MASK | CSL_RESOLVER_REGS_DC_OFF0_COS_OFFSET_MASK;
1772 return ((int16_t)(HW_RD_REG32(
1775 (sinCosValue * CSL_RESOLVER_REGS_DC_OFF0_COS_OFFSET_SHIFT));
1793 uint32_t regOffset = CSL_RESOLVER_REGS_SAMPLE_CFG1_0 + (core *
RDC_CORE_OFFSET);
1798 ~CSL_RESOLVER_REGS_SAMPLE_CFG1_0_IDEAL_SAMPLE_TIME_OVR_MASK) |
1799 ((uint32_t)(overrideValue << CSL_RESOLVER_REGS_SAMPLE_CFG1_0_IDEAL_SAMPLE_TIME_OVR_SHIFT)));
1810 static inline uint8_t
1813 uint32_t regOffset = CSL_RESOLVER_REGS_SAMPLE_CFG1_0 + (core *
RDC_CORE_OFFSET);
1814 uint32_t value = HW_RD_REG32(base + regOffset) & CSL_RESOLVER_REGS_SAMPLE_CFG1_0_IDEAL_SAMPLE_TIME_OVR_MASK;
1815 return((uint8_t) (value >> CSL_RESOLVER_REGS_SAMPLE_CFG1_0_IDEAL_SAMPLE_TIME_OVR_SHIFT));
1826 static inline uint8_t
1829 uint32_t regOffset = CSL_RESOLVER_REGS_SAMPLE_CFG1_0 + (core *
RDC_CORE_OFFSET);
1833 CSL_RESOLVER_REGS_SAMPLE_CFG1_0_IDEAL_SAMPLE_TIME_MASK) >>
1834 CSL_RESOLVER_REGS_SAMPLE_CFG1_0_IDEAL_SAMPLE_TIME_SHIFT);
1851 uint32_t regOffset = CSL_RESOLVER_REGS_SAMPLE_CFG2_0 + (core *
RDC_CORE_OFFSET);
1856 ~CSL_RESOLVER_REGS_SAMPLE_CFG2_0_SAMPLE_DET_THRESHOLD_MASK) |
1857 ((uint32_t)(absThresholdValue << CSL_RESOLVER_REGS_SAMPLE_CFG2_0_SAMPLE_DET_THRESHOLD_SHIFT)));
1868 static inline uint16_t
1871 uint32_t regOffset = CSL_RESOLVER_REGS_SAMPLE_CFG2_0 + (core *
RDC_CORE_OFFSET);
1872 return ((uint16_t) (
1873 (HW_RD_REG32 (base + regOffset) & CSL_RESOLVER_REGS_SAMPLE_CFG2_0_SAMPLE_DET_THRESHOLD_MASK)
1874 >> CSL_RESOLVER_REGS_SAMPLE_CFG2_0_SAMPLE_DET_THRESHOLD_SHIFT));
1889 uint32_t regOffset = CSL_RESOLVER_REGS_SAMPLE_CFG2_0 + (core *
RDC_CORE_OFFSET);
1895 ~CSL_RESOLVER_REGS_SAMPLE_CFG2_0_BANDPASSFILTERSAMPLEADJUST_MASK) |
1896 ((uint32_t)(sampleAdjustCount << CSL_RESOLVER_REGS_SAMPLE_CFG2_0_BANDPASSFILTERSAMPLEADJUST_SHIFT)));
1899 static inline uint8_t
1902 uint32_t regOffset = CSL_RESOLVER_REGS_SAMPLE_CFG2_0 + (core *
RDC_CORE_OFFSET);
1903 return ((uint8_t) ((HW_RD_REG32(base + regOffset) &
1904 ~CSL_RESOLVER_REGS_SAMPLE_CFG2_0_BANDPASSFILTERSAMPLEADJUST_MASK)
1905 >> CSL_RESOLVER_REGS_SAMPLE_CFG2_0_BANDPASSFILTERSAMPLEADJUST_SHIFT));
1920 uint32_t regOffset = CSL_RESOLVER_REGS_SAMPLE_CFG2_0 + (core *
RDC_CORE_OFFSET);
1924 CSL_RESOLVER_REGS_SAMPLE_CFG2_0_PEAK_AVG_LIMIT_DONE_MASK) &
1925 ((uint32_t)((1U) << CSL_RESOLVER_REGS_SAMPLE_CFG2_0_PEAK_AVG_LIMIT_DONE_SHIFT))) != 0U);
1944 uint32_t regOffset = CSL_RESOLVER_REGS_DEC_GF_CFG0 + (core *
RDC_CORE_OFFSET);
1946 (mode & ~(CSL_RESOLVER_REGS_DEC_GF_CFG0_IDEAL_SAMPLE_MODE_MAX)) == 0U);
1951 ~CSL_RESOLVER_REGS_DEC_GF_CFG0_IDEAL_SAMPLE_MODE_MASK) |
1952 ((uint32_t)(mode << CSL_RESOLVER_REGS_DEC_GF_CFG0_IDEAL_SAMPLE_MODE_SHIFT)));
1968 static inline uint8_t
1971 uint32_t regOffset = CSL_RESOLVER_REGS_DEC_GF_CFG0 + (core *
RDC_CORE_OFFSET);
1972 uint32_t value = HW_RD_REG32(base + regOffset) & CSL_RESOLVER_REGS_DEC_GF_CFG0_IDEAL_SAMPLE_MODE_MASK;
1973 return ((uint8_t) (value >> CSL_RESOLVER_REGS_DEC_GF_CFG0_IDEAL_SAMPLE_MODE_SHIFT));
1988 uint32_t regOffset = CSL_RESOLVER_REGS_DEC_GF_CFG0 + (core *
RDC_CORE_OFFSET);
1993 ~CSL_RESOLVER_REGS_DEC_GF_CFG0_ENABLE_BOTTOM_MASK) |
1994 ((uint32_t)((1U) << CSL_RESOLVER_REGS_DEC_GF_CFG0_ENABLE_BOTTOM_SHIFT)));
2009 uint32_t regOffset = CSL_RESOLVER_REGS_DEC_GF_CFG0 + (core *
RDC_CORE_OFFSET);
2010 return ((HW_RD_REG32(base + regOffset) &
2011 CSL_RESOLVER_REGS_DEC_GF_CFG0_ENABLE_BOTTOM_MASK) == CSL_RESOLVER_REGS_DEC_GF_CFG0_ENABLE_BOTTOM_MASK);
2024 uint32_t regOffset = CSL_RESOLVER_REGS_DEC_GF_CFG0 + (core *
RDC_CORE_OFFSET);
2029 CSL_RESOLVER_REGS_DEC_GF_CFG0_ENABLE_BOTTOM_MASK) &
2030 ~((uint32_t)((1U) << CSL_RESOLVER_REGS_DEC_GF_CFG0_ENABLE_BOTTOM_SHIFT)));
2049 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG1_0 + (core *
RDC_CORE_OFFSET);
2053 CSL_RESOLVER_REGS_PG_EST_CFG1_0_AUTOPHASEGAINREADYDONE_MASK) &
2054 ((uint32_t)((1U) << CSL_RESOLVER_REGS_PG_EST_CFG1_0_AUTOPHASEGAINREADYDONE_SHIFT))) != 0U);
2069 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG1_0 + (core *
RDC_CORE_OFFSET);
2072 HW_RD_REG32(base + regOffset) | CSL_RESOLVER_REGS_PG_EST_CFG1_0_AUTOPHASEGAINREADYDONE_MASK);
2087 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG1_0 + (core *
RDC_CORE_OFFSET);
2088 DebugP_assert(pgEstimationLimit <= CSL_RESOLVER_REGS_PG_EST_CFG1_0_PG_TRAIN_LIMIT_MAX);
2093 ~CSL_RESOLVER_REGS_PG_EST_CFG1_0_PG_TRAIN_LIMIT_MASK) |
2094 ((uint32_t)(pgEstimationLimit << CSL_RESOLVER_REGS_PG_EST_CFG1_0_PG_TRAIN_LIMIT_SHIFT)));
2105 static inline uint8_t
2108 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG1_0 + (core *
RDC_CORE_OFFSET);
2109 return ((uint8_t) ((HW_RD_REG32(base + regOffset) &
2110 CSL_RESOLVER_REGS_PG_EST_CFG1_0_PG_TRAIN_LIMIT_MASK) >> CSL_RESOLVER_REGS_PG_EST_CFG1_0_PG_TRAIN_LIMIT_SHIFT));
2125 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2126 DebugP_assert((cosPhaseBypass & (~CSL_RESOLVER_REGS_PG_EST_CFG2_0_PHASECOSBYP0_MAX)) == 0U);
2131 ~CSL_RESOLVER_REGS_PG_EST_CFG2_0_PHASECOSBYP0_MASK) |
2132 ((uint32_t)(cosPhaseBypass << CSL_RESOLVER_REGS_PG_EST_CFG2_0_PHASECOSBYP0_SHIFT)));
2144 static inline int16_t
2147 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2148 return ((int16_t) ((HW_RD_REG32(base + regOffset) &
2149 CSL_RESOLVER_REGS_PG_EST_CFG2_0_PHASECOSBYP0_MASK) >> CSL_RESOLVER_REGS_PG_EST_CFG2_0_PHASECOSBYP0_SHIFT));
2162 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2167 CSL_RESOLVER_REGS_PG_EST_CFG2_0_BYPASSPHASEGAINCORR0_MASK) &
2168 ~((1U) << CSL_RESOLVER_REGS_PG_EST_CFG2_0_BYPASSPHASEGAINCORR0_SHIFT));
2182 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2187 ~CSL_RESOLVER_REGS_PG_EST_CFG2_0_BYPASSPHASEGAINCORR0_MASK) |
2188 ((1U) << CSL_RESOLVER_REGS_PG_EST_CFG2_0_BYPASSPHASEGAINCORR0_SHIFT));
2203 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2205 (HW_RD_REG32(base + regOffset) &
2206 CSL_RESOLVER_REGS_PG_EST_CFG2_0_BYPASSPHASEGAINCORR0_MASK) != CSL_RESOLVER_REGS_PG_EST_CFG2_0_BYPASSPHASEGAINCORR0_MASK
2220 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2225 ~CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOPHASECONTROL0_MASK) |
2226 ((1U) << CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOPHASECONTROL0_SHIFT));
2239 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2244 CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOPHASECONTROL0_MASK) &
2245 ~((1U) << CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOPHASECONTROL0_SHIFT));
2260 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2262 ((HW_RD_REG32(base + regOffset) & CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOPHASECONTROL0_MASK) == CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOPHASECONTROL0_MASK)
2276 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2281 ~CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOGAINCONTROL0_MASK) |
2282 ((1U) << CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOGAINCONTROL0_SHIFT));
2295 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2300 CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOGAINCONTROL0_MASK) &
2301 ~((1U) << CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOGAINCONTROL0_SHIFT));
2316 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG2_0 + (core *
RDC_CORE_OFFSET);
2318 (HW_RD_REG32(base + regOffset) & CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOGAINCONTROL0_MASK) == CSL_RESOLVER_REGS_PG_EST_CFG2_0_AUTOGAINCONTROL0_MASK
2334 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG3_0 + (core *
RDC_CORE_OFFSET);
2336 uint32_t value = ((uint32_t)(((uint32_t)cosGainBypass) << 16)) | ((uint32_t)((uint16_t)sinGainBypass));
2339 base + regOffset, value);
2354 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG3_0 + (core *
RDC_CORE_OFFSET);
2355 uint32_t value = HW_RD_REG32(base+regOffset);
2357 *sinGainBypass = (uint16_t) ((value & CSL_RESOLVER_REGS_PG_EST_CFG3_0_GAINSINBYP0_MASK) >> CSL_RESOLVER_REGS_PG_EST_CFG3_0_GAINSINBYP0_SHIFT);
2358 *cosGainBypass = (uint16_t) ((value & CSL_RESOLVER_REGS_PG_EST_CFG3_0_GAINCOSBYP0_MASK) >> CSL_RESOLVER_REGS_PG_EST_CFG3_0_GAINCOSBYP0_SHIFT);
2370 static inline int16_t
2373 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG4_0 + (core *
RDC_CORE_OFFSET);
2377 CSL_RESOLVER_REGS_PG_EST_CFG4_0_PHASEESTIMATEFINAL_MASK) >>
2378 CSL_RESOLVER_REGS_PG_EST_CFG4_0_PHASEESTIMATEFINAL_SHIFT);
2399 uint32_t regOffset = CSL_RESOLVER_REGS_PG_EST_CFG5_0 + (core *
RDC_CORE_OFFSET);
2400 uint32_t cosSqAccValue = HW_RD_REG32(base + regOffset);
2402 *cosGainEstimateSq = ((uint32_t) 1 << 29)/cosSqAccValue;
2404 regOffset = CSL_RESOLVER_REGS_PG_EST_CFG6_0 + (core *
RDC_CORE_OFFSET);
2406 uint32_t sinSqAccValue = HW_RD_REG32(base + regOffset);
2407 *sinGainEstimateSq = ((uint32_t) 1 << 29)/sinSqAccValue;
2428 uint8_t kvelfilt = track2Constants->
kvelfilt;
2429 uint32_t cfg1 = (kvelfilt << CSL_RESOLVER_REGS_TRACK2_CFG1_0_KVELFILT_SHIFT);
2431 uint32_t mask_cfg1 = (CSL_RESOLVER_REGS_TRACK2_CFG1_0_KVELFILT_MASK);
2433 uint32_t regOffset_cfg1 = CSL_RESOLVER_REGS_TRACK2_CFG1_0 + (core *
RDC_CORE_OFFSET);
2435 base + regOffset_cfg1,
2437 base + regOffset_cfg1) &
2453 uint32_t regOffset_cfg1 = CSL_RESOLVER_REGS_TRACK2_CFG1_0 + (core *
RDC_CORE_OFFSET);
2454 track2Constants->
kvelfilt = (uint8_t) (HW_RD_REG32(base + regOffset_cfg1) >> CSL_RESOLVER_REGS_TRACK2_CFG1_0_KVELFILT_SHIFT);
2467 uint32_t regOffset = CSL_RESOLVER_REGS_TRACK2_CFG2_0 + (core *
RDC_CORE_OFFSET);
2473 ~CSL_RESOLVER_REGS_TRACK2_CFG2_0_BOOST_MASK) |
2474 ((uint32_t)((1U) << CSL_RESOLVER_REGS_TRACK2_CFG2_0_BOOST_SHIFT)));
2486 uint32_t regOffset = CSL_RESOLVER_REGS_TRACK2_CFG2_0 + (core *
RDC_CORE_OFFSET);
2492 CSL_RESOLVER_REGS_TRACK2_CFG2_0_BOOST_MASK) &
2493 ~((uint32_t)((1U) << CSL_RESOLVER_REGS_TRACK2_CFG2_0_BOOST_SHIFT)));
2507 static inline int16_t
2510 uint32_t regOffset = CSL_RESOLVER_REGS_ANGLE_ARCTAN_0 + (core *
RDC_CORE_OFFSET);
2512 (int16_t)HW_RD_REG16(
2525 static inline int16_t
2528 uint32_t regOffset = CSL_RESOLVER_REGS_ANGLE_TRACK2_0 + (core *
RDC_CORE_OFFSET);
2530 (int16_t)HW_RD_REG16(
2544 static inline int32_t
2547 uint32_t regOffset = CSL_RESOLVER_REGS_VELOCITY_TRACK2_0 + (core *
RDC_CORE_OFFSET);
2549 (int32_t)HW_RD_REG32(
2573 uint8_t resolverCore,
2576 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG1_0 + (
RDC_CORE_OFFSET * resolverCore);
2577 uint32_t value = HW_RD_REG32(base + regOffset);
2582 CSL_RESOLVER_REGS_DIAG1_0_OFFSETDRIFT_THRESHOLD_HI_MASK) >>
2583 CSL_RESOLVER_REGS_DIAG1_0_OFFSETDRIFT_THRESHOLD_HI_SHIFT));
2585 CSL_RESOLVER_REGS_DIAG1_0_OFFSETDRIFT_THRESHOLD_LO_MASK) >>
2586 CSL_RESOLVER_REGS_DIAG1_0_OFFSETDRIFT_THRESHOLD_LO_SHIFT));
2615 uint8_t resolverCore,
2618 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG1_0 + (
RDC_CORE_OFFSET * resolverCore);
2619 uint32_t value = (((uint32_t)((uint16_t)(monitorData->
offset_drift_threshold_hi))) << CSL_RESOLVER_REGS_DIAG1_0_OFFSETDRIFT_THRESHOLD_HI_SHIFT) |
2620 (((uint32_t)((uint16_t)(monitorData->
offset_drift_threshold_lo))) << CSL_RESOLVER_REGS_DIAG1_0_OFFSETDRIFT_THRESHOLD_LO_SHIFT);
2621 uint32_t interruptSource = 0;
2631 base + regOffset, value);
2678 uint8_t resolverCore,
2681 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG14_0 + (
RDC_CORE_OFFSET * resolverCore);
2683 uint32_t value = HW_RD_REG32(base + regOffset);
2689 CSL_RESOLVER_REGS_DIAG14_0_GAINDRIFT_THRESHOLD_HI_MASK) >>
2690 CSL_RESOLVER_REGS_DIAG14_0_GAINDRIFT_THRESHOLD_HI_SHIFT));
2692 CSL_RESOLVER_REGS_DIAG14_0_GAINDRIFT_THRESHOLD_LO_MASK) >>
2693 CSL_RESOLVER_REGS_DIAG14_0_GAINDRIFT_THRESHOLD_LO_SHIFT));
2701 regOffset = CSL_RESOLVER_REGS_DIAG15_0 + (
RDC_CORE_OFFSET * resolverCore);
2728 uint8_t resolverCore,
2731 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG14_0 + (
RDC_CORE_OFFSET * resolverCore);
2732 uint32_t value = (((uint32_t)((uint16_t)(monitorData->
gain_drift_threshold_hi))) << CSL_RESOLVER_REGS_DIAG14_0_GAINDRIFT_THRESHOLD_HI_SHIFT) |
2733 (((uint32_t)((uint16_t)(monitorData->
gain_drift_threshold_lo))) << CSL_RESOLVER_REGS_DIAG14_0_GAINDRIFT_THRESHOLD_LO_SHIFT);
2735 uint32_t interruptSource = 0;
2745 regOffset = CSL_RESOLVER_REGS_DIAG15_0 + (
RDC_CORE_OFFSET * resolverCore);
2751 base + regOffset, value);
2797 uint8_t resolverCore,
2800 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG16_0 + (
RDC_CORE_OFFSET * resolverCore);
2802 uint32_t value = HW_RD_REG32(base + regOffset);
2808 CSL_RESOLVER_REGS_DIAG16_0_PHASEDRIFT_THRESHOLD_HI_MASK) >>
2809 CSL_RESOLVER_REGS_DIAG16_0_PHASEDRIFT_THRESHOLD_HI_SHIFT));
2811 CSL_RESOLVER_REGS_DIAG16_0_PHASEDRIFT_THRESHOLD_LO_MASK) >>
2812 CSL_RESOLVER_REGS_DIAG16_0_PHASEDRIFT_THRESHOLD_LO_SHIFT));
2818 regOffset = CSL_RESOLVER_REGS_DIAG17_0 + (
RDC_CORE_OFFSET * resolverCore);
2841 uint8_t resolverCore,
2844 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG16_0 + (
RDC_CORE_OFFSET * resolverCore);
2845 uint32_t value = (((uint32_t)((uint16_t)(monitorData->
phase_drift_threshold_hi))) << CSL_RESOLVER_REGS_DIAG16_0_PHASEDRIFT_THRESHOLD_HI_SHIFT) |
2846 (((uint32_t)((uint16_t)(monitorData->
phase_drift_threshold_lo))) << CSL_RESOLVER_REGS_DIAG16_0_PHASEDRIFT_THRESHOLD_LO_SHIFT);
2848 uint32_t interruptSource = 0;
2854 regOffset = CSL_RESOLVER_REGS_DIAG17_0 + (
RDC_CORE_OFFSET * resolverCore);
2860 base + regOffset, value);
2901 uint8_t resolverCore,
2904 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG2_0 + (
RDC_CORE_OFFSET * resolverCore);
2906 uint32_t value = HW_RD_REG32(base + regOffset);
2912 CSL_RESOLVER_REGS_DIAG2_0_EXCFREQDETECTED_SIN_MASK) >>
2913 CSL_RESOLVER_REGS_DIAG2_0_EXCFREQDETECTED_SIN_SHIFT));
2915 CSL_RESOLVER_REGS_DIAG2_0_EXCFREQDETECTED_COS_MASK) >>
2916 CSL_RESOLVER_REGS_DIAG2_0_EXCFREQDETECTED_COS_SHIFT));
2918 regOffset = CSL_RESOLVER_REGS_DIAG3_0 + (
RDC_CORE_OFFSET * resolverCore);
2919 value = HW_RD_REG32(base + regOffset);
2922 CSL_RESOLVER_REGS_DIAG3_0_EXCFREQDRIFT_THRESHOLD_HI_MASK) >>
2923 CSL_RESOLVER_REGS_DIAG3_0_EXCFREQDRIFT_THRESHOLD_HI_SHIFT));
2925 CSL_RESOLVER_REGS_DIAG3_0_EXCFREQDRIFT_THRESHOLD_LO_MASK) >>
2926 CSL_RESOLVER_REGS_DIAG3_0_EXCFREQDRIFT_THRESHOLD_LO_SHIFT));
2928 regOffset = CSL_RESOLVER_REGS_DIAG4_0 + (
RDC_CORE_OFFSET * resolverCore);
2929 value = HW_RD_REG32(base + regOffset);
2932 CSL_RESOLVER_REGS_DIAG4_0_EXCFREQ_LEVEL_MASK) >>
2933 CSL_RESOLVER_REGS_DIAG4_0_EXCFREQ_LEVEL_SHIFT));
2935 CSL_RESOLVER_REGS_DIAG4_0_EXCFREQDRIFT_GLITCHCOUNT_MASK) >>
2936 CSL_RESOLVER_REGS_DIAG4_0_EXCFREQDRIFT_GLITCHCOUNT_SHIFT));
2967 uint8_t resolverCore,
2970 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG3_0 + (
RDC_CORE_OFFSET * resolverCore);
2971 uint32_t value = (((uint32_t)((uint16_t)(monitorData->
excfreqdrift_threshold_hi))) << CSL_RESOLVER_REGS_DIAG3_0_EXCFREQDRIFT_THRESHOLD_HI_SHIFT) |
2972 (((uint32_t)((uint16_t)(monitorData->
excfreqdrift_threshold_lo))) << CSL_RESOLVER_REGS_DIAG3_0_EXCFREQDRIFT_THRESHOLD_LO_SHIFT);
2973 uint32_t interruptSource = 0;
2983 base + regOffset, value);
2985 regOffset = CSL_RESOLVER_REGS_DIAG4_0 + (
RDC_CORE_OFFSET * resolverCore);
2986 value = (((uint32_t)((uint16_t)(monitorData->
excfreq_level))) << CSL_RESOLVER_REGS_DIAG4_0_EXCFREQ_LEVEL_SHIFT) |
2987 (((uint32_t)((uint16_t)(monitorData->
excfreqdrift_glitchcount))) << CSL_RESOLVER_REGS_DIAG4_0_EXCFREQDRIFT_GLITCHCOUNT_SHIFT);
2990 base + regOffset, value);
3031 uint8_t resolverCore,
3034 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG13_0 + (
RDC_CORE_OFFSET * resolverCore);
3035 uint32_t value = HW_RD_REG32(
3038 monitorData->
sin_multi_zc_error_count = (uint8_t)((value & CSL_RESOLVER_REGS_DIAG13_0_SIN_MULTI_ZC_ERROR_COUNT_MASK) >> CSL_RESOLVER_REGS_DIAG13_0_SIN_MULTI_ZC_ERROR_COUNT_SHIFT);
3040 monitorData->
cos_multi_zc_error_count = (uint8_t)((value & CSL_RESOLVER_REGS_DIAG13_0_COS_MULTI_ZC_ERROR_COUNT_MASK) >> CSL_RESOLVER_REGS_DIAG13_0_COS_MULTI_ZC_ERROR_COUNT_SHIFT);
3042 regOffset = CSL_RESOLVER_REGS_DIAG12_0 + (
RDC_CORE_OFFSET * resolverCore);
3043 value = HW_RD_REG32(
3045 monitorData->
rotpeak_level = (value & CSL_RESOLVER_REGS_DIAG12_0_ROTPEAK_LEVEL_MASK) >> CSL_RESOLVER_REGS_DIAG12_0_ROTPEAK_LEVEL_SHIFT;
3046 monitorData->
rotpeak_level = (value & CSL_RESOLVER_REGS_DIAG12_0_ROTFREQ_LEVEL_MASK) >> CSL_RESOLVER_REGS_DIAG12_0_ROTFREQ_LEVEL_SHIFT;
3081 uint8_t resolverCore,
3084 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG12_0 + (
RDC_CORE_OFFSET * resolverCore);
3085 uint32_t value = (((uint32_t)((uint16_t)(monitorData->
rotpeak_level))) << CSL_RESOLVER_REGS_DIAG12_0_ROTPEAK_LEVEL_SHIFT) |
3086 (((uint32_t)((uint16_t)(monitorData->
rotfreq_level))) << CSL_RESOLVER_REGS_DIAG12_0_ROTFREQ_LEVEL_SHIFT);
3092 uint32_t interruptSources = 0;
3136 uint32_t resolverCore,
3139 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG9_0 + (resolverCore *
RDC_CORE_OFFSET);
3140 uint32_t value = HW_RD_REG32(
3144 CSL_RESOLVER_REGS_DIAG9_0_SINSQCOSSQ_THRESHOLD_HI_SHIFT;
3146 CSL_RESOLVER_REGS_DIAG9_0_SINSQCOSSQ_THRESHOLD_LO_SHIFT;
3148 regOffset = CSL_RESOLVER_REGS_DIAG10_0 + (resolverCore *
RDC_CORE_OFFSET);
3149 value = HW_RD_REG32(
3152 monitorData->
sinsqcossq_cossq = (value & CSL_RESOLVER_REGS_DIAG10_0_SINSQCOSSQ_COSSQ_MASK) >>
3153 CSL_RESOLVER_REGS_DIAG10_0_SINSQCOSSQ_COSSQ_SHIFT;
3154 monitorData->
sinsqcossq_sinsq = (value & CSL_RESOLVER_REGS_DIAG10_0_SINSQCOSSQ_SINSQ_MASK) >>
3155 CSL_RESOLVER_REGS_DIAG10_0_SINSQCOSSQ_SINSQ_SHIFT;
3159 regOffset = CSL_RESOLVER_REGS_DIAG11_0 + (resolverCore *
RDC_CORE_OFFSET);
3162 CSL_RESOLVER_REGS_DIAG11_0_SINSQCOSSQ_GLITCHCOUNT_MASK) >>
3163 CSL_RESOLVER_REGS_DIAG11_0_SINSQCOSSQ_GLITCHCOUNT_SHIFT);
3185 uint32_t resolverCore,
3188 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG9_0 + (resolverCore *
RDC_CORE_OFFSET);
3189 uint32_t value = (((uint32_t)((uint16_t)(monitorData->
sinsqcossq_threshold_hi))) << CSL_RESOLVER_REGS_DIAG9_0_SINSQCOSSQ_THRESHOLD_HI_SHIFT) |
3190 (((uint32_t)((uint16_t)(monitorData->
sinsqcossq_threshold_lo))) << CSL_RESOLVER_REGS_DIAG9_0_SINSQCOSSQ_THRESHOLD_LO_SHIFT);
3192 base + regOffset, value);
3194 regOffset = CSL_RESOLVER_REGS_DIAG11_0 + (resolverCore *
RDC_CORE_OFFSET);
3201 uint32_t interruptSources = 0;
3231 uint8_t resolverCore,
3234 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG7_0 + (resolverCore *
RDC_CORE_OFFSET);
3235 uint32_t value = HW_RD_REG32(
3240 CSL_RESOLVER_REGS_DIAG7_0_HIGHAMPLITUDE_GLITCHCOUNT_SHIFT;
3243 CSL_RESOLVER_REGS_DIAG7_0_HIGHAMPLITUDE_THRESHOLD_SHIFT;
3244 regOffset = CSL_RESOLVER_REGS_DIAG8_0 + (resolverCore *
RDC_CORE_OFFSET);
3245 value = HW_RD_REG32(
3248 monitorData->
highAmplitude_sin_value = (int16_t) ((value & CSL_RESOLVER_REGS_DIAG8_0_HIGHAMPLITUDE_SIN_MASK) >> \
3249 CSL_RESOLVER_REGS_DIAG8_0_HIGHAMPLITUDE_SIN_SHIFT);
3251 monitorData->
highAmplitude_cos_value = (int16_t) ((value & CSL_RESOLVER_REGS_DIAG8_0_HIGHAMPLITUDE_COS_MASK) >> \
3252 CSL_RESOLVER_REGS_DIAG8_0_HIGHAMPLITUDE_COS_SHIFT);
3272 uint8_t resolverCore,
3275 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG7_0 + (resolverCore *
RDC_CORE_OFFSET);
3276 uint32_t value = (((uint32_t)((uint16_t)(monitorData->
highAmplitude_glitchcount))) << CSL_RESOLVER_REGS_DIAG7_0_HIGHAMPLITUDE_GLITCHCOUNT_SHIFT) |
3277 (((uint32_t)((uint16_t)(monitorData->
highAmplitude_threshold))) << CSL_RESOLVER_REGS_DIAG7_0_HIGHAMPLITUDE_THRESHOLD_SHIFT);
3278 uint32_t enabledInterruptSources = 0;
3279 uint32_t interruptSources = 0;
3311 uint8_t resolverCore,
3315 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG5_0 + (resolverCore *
RDC_CORE_OFFSET);
3317 uint32_t value = HW_RD_REG32(
3320 CSL_RESOLVER_REGS_DIAG5_0_LOWAMPLITUDE_THRESHOLD_SHIFT;
3322 CSL_RESOLVER_REGS_DIAG5_0_LOWAMPLITUDE_GLITCHCOUNT_SHIFT;
3326 regOffset = CSL_RESOLVER_REGS_DIAG6_0 + (resolverCore *
RDC_CORE_OFFSET);
3327 value = HW_RD_REG32(
3329 monitorData->
lowAmplitude_cos_value = (int16_t)((value & CSL_RESOLVER_REGS_DIAG6_0_LOWAMPLITUDE_COS_MASK) >>\
3330 CSL_RESOLVER_REGS_DIAG6_0_LOWAMPLITUDE_COS_SHIFT);
3332 monitorData->
lowAmplitude_sin_value = (int16_t)((value & CSL_RESOLVER_REGS_DIAG6_0_LOWAMPLITUDE_SIN_MASK) >>\
3333 CSL_RESOLVER_REGS_DIAG6_0_LOWAMPLITUDE_SIN_SHIFT);
3350 uint8_t resolverCore,
3354 uint32_t regOffset = CSL_RESOLVER_REGS_DIAG5_0 + (resolverCore *
RDC_CORE_OFFSET);
3355 uint32_t value = ((uint32_t)(monitorData->
lowAmplitude_glitchcount << CSL_RESOLVER_REGS_DIAG5_0_LOWAMPLITUDE_GLITCHCOUNT_SHIFT)) |
3356 ((uint32_t) (monitorData->
lowAmplitude_threshold << CSL_RESOLVER_REGS_DIAG5_0_LOWAMPLITUDE_THRESHOLD_SHIFT));
3360 base + regOffset, value);
3393 uint8_t resolverCore,
3396 uint32_t regOffset = CSL_RESOLVER_REGS_OBS_ADC_0 + (resolverCore *
RDC_CORE_OFFSET);
3397 uint32_t value = HW_RD_REG32(
3399 AdcData->
cos_adc = (int16_t)((value & CSL_RESOLVER_REGS_OBS_ADC_1_COS_ADC_MASK)>>CSL_RESOLVER_REGS_OBS_ADC_1_COS_ADC_SHIFT);
3400 AdcData->
sin_adc = (int16_t)((value & CSL_RESOLVER_REGS_OBS_ADC_1_SIN_ADC_MASK)>>CSL_RESOLVER_REGS_OBS_ADC_1_SIN_ADC_SHIFT);
3402 regOffset = CSL_RESOLVER_REGS_OBS_ADC_REC_0 + (resolverCore *
RDC_CORE_OFFSET);
3403 value = HW_RD_REG32(
3405 AdcData->
cos_rec = (int16_t)((value & CSL_RESOLVER_REGS_OBS_ADC_REC_1_COS_REC_MASK)>>CSL_RESOLVER_REGS_OBS_ADC_REC_1_COS_REC_SHIFT);
3406 AdcData->
sin_rec = (int16_t)((value & CSL_RESOLVER_REGS_OBS_ADC_REC_1_SIN_REC_MASK)>>CSL_RESOLVER_REGS_OBS_ADC_REC_1_SIN_REC_SHIFT);
3408 regOffset = CSL_RESOLVER_REGS_OBS_ADC_DC_0 + (resolverCore *
RDC_CORE_OFFSET);
3409 value = HW_RD_REG32(
3411 AdcData->
cos_dc = (int16_t)((value & CSL_RESOLVER_REGS_OBS_ADC_DC_1_COS_DC_MASK)>>CSL_RESOLVER_REGS_OBS_ADC_DC_1_COS_DC_SHIFT);
3412 AdcData->
sin_dc = (int16_t)((value & CSL_RESOLVER_REGS_OBS_ADC_DC_1_SIN_DC_MASK)>>CSL_RESOLVER_REGS_OBS_ADC_DC_1_SIN_DC_SHIFT);
3414 regOffset = CSL_RESOLVER_REGS_OBS_ADC_PGC_0 + (resolverCore *
RDC_CORE_OFFSET);
3415 value = HW_RD_REG32(
3417 AdcData->
cos_pgc = (int16_t)((value & CSL_RESOLVER_REGS_OBS_ADC_PGC_1_COS_PGC_MASK)>>CSL_RESOLVER_REGS_OBS_ADC_PGC_1_COS_PGC_SHIFT);
3418 AdcData->
sin_pgc = (int16_t)((value & CSL_RESOLVER_REGS_OBS_ADC_PGC_1_SIN_PGC_MASK)>>CSL_RESOLVER_REGS_OBS_ADC_PGC_1_SIN_PGC_SHIFT);
3431 uint32_t regOffset = CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0 + (resolverCore *
RDC_CORE_OFFSET);
3432 uint32_t value = HW_RD_REG32(
3434 histogram->
peakHistgoramBucket[0] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0_PEAKHISTOGRAM0_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0_PEAKHISTOGRAM0_0_SHIFT);
3435 histogram->
peakHistgoramBucket[1] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0_PEAKHISTOGRAM1_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0_PEAKHISTOGRAM1_0_SHIFT);
3436 histogram->
peakHistgoramBucket[2] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0_PEAKHISTOGRAM2_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0_PEAKHISTOGRAM2_0_SHIFT);
3437 histogram->
peakHistgoramBucket[3] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0_PEAKHISTOGRAM3_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM3_0_0_PEAKHISTOGRAM3_0_SHIFT);
3439 regOffset = CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0 + (resolverCore *
RDC_CORE_OFFSET);
3440 value = HW_RD_REG32(
3442 histogram->
peakHistgoramBucket[4] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0_PEAKHISTOGRAM4_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0_PEAKHISTOGRAM4_0_SHIFT);
3443 histogram->
peakHistgoramBucket[5] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0_PEAKHISTOGRAM5_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0_PEAKHISTOGRAM5_0_SHIFT);
3444 histogram->
peakHistgoramBucket[6] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0_PEAKHISTOGRAM6_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0_PEAKHISTOGRAM6_0_SHIFT);
3445 histogram->
peakHistgoramBucket[7] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0_PEAKHISTOGRAM7_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM7_4_0_PEAKHISTOGRAM7_0_SHIFT);
3447 regOffset = CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0 + (resolverCore *
RDC_CORE_OFFSET);
3448 value = HW_RD_REG32(
3450 histogram->
peakHistgoramBucket[8] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0_PEAKHISTOGRAM8_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0_PEAKHISTOGRAM8_0_SHIFT);
3451 histogram->
peakHistgoramBucket[9] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0_PEAKHISTOGRAM9_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0_PEAKHISTOGRAM9_0_SHIFT);
3452 histogram->
peakHistgoramBucket[10] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0_PEAKHISTOGRAM10_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0_PEAKHISTOGRAM10_0_SHIFT);
3453 histogram->
peakHistgoramBucket[11] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0_PEAKHISTOGRAM11_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM11_8_0_PEAKHISTOGRAM11_0_SHIFT);
3455 regOffset = CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0 + (resolverCore *
RDC_CORE_OFFSET);
3456 value = HW_RD_REG32(
3458 histogram->
peakHistgoramBucket[12] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0_PEAKHISTOGRAM12_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0_PEAKHISTOGRAM12_0_SHIFT);
3459 histogram->
peakHistgoramBucket[13] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0_PEAKHISTOGRAM13_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0_PEAKHISTOGRAM13_0_SHIFT);
3460 histogram->
peakHistgoramBucket[14] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0_PEAKHISTOGRAM14_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0_PEAKHISTOGRAM14_0_SHIFT);
3461 histogram->
peakHistgoramBucket[15] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0_PEAKHISTOGRAM15_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM15_12_0_PEAKHISTOGRAM15_0_SHIFT);
3463 regOffset = CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0 + (resolverCore *
RDC_CORE_OFFSET);
3464 value = HW_RD_REG32(
3466 histogram->
peakHistgoramBucket[16] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0_PEAKHISTOGRAM16_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0_PEAKHISTOGRAM16_0_SHIFT);
3467 histogram->
peakHistgoramBucket[17] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0_PEAKHISTOGRAM17_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0_PEAKHISTOGRAM17_0_SHIFT);
3468 histogram->
peakHistgoramBucket[18] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0_PEAKHISTOGRAM18_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0_PEAKHISTOGRAM18_0_SHIFT);
3469 histogram->
peakHistgoramBucket[19] = ((value & CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0_PEAKHISTOGRAM19_0_MASK) >> CSL_RESOLVER_REGS_OBS_PEAKHISTOGRAM19_16_0_PEAKHISTOGRAM19_0_SHIFT);
3542 #endif // RESOLVER_V1_H_
bool Pg_correctionEnable
Definition: resolver/v0/resolver.h:606
#define RDC_CAL_ADC0
Macro used to specify Calibration data for ADC 0.
Definition: resolver/v0/resolver.h:315
static int16_t RDC_getArcTanAngle(uint32_t base, uint8_t core)
Returns signed 16bit angle data from ArcTan. the data corresponds to -180 to +180 degrees angle in de...
Definition: resolver/v0/resolver.h:2508
bool lowAmplitude_error
Definition: resolver/v0/resolver.h:545
static bool RDC_isAdcSingleEndedModeEnabled(uint32_t base)
Returns if Single ended mode of sampling is enabled for the ADCs.
Definition: resolver/v0/resolver.h:801
static void RDC_getConfiguredDcOffsetCalCoef(uint32_t base, uint8_t core, uint8_t *coef1, uint8_t *coef2)
Returns the Configured Coefficient Values for DC Offset Estimation and correction logic.
Definition: resolver/v0/resolver.h:1567
uint8_t Input_signalMode
Definition: resolver/v0/resolver.h:625
static bool RDC_isDcOffsetAutoCorrectionEnabled(uint32_t base, uint8_t core)
Returns if DC Auto Offset Correction is enabled for give RDC Core.
Definition: resolver/v0/resolver.h:1668
static int16_t RDC_getDcOffsetEstimatedValues(uint32_t base, uint8_t core, uint8_t sinCosValue)
returns DC OFFSET estimation values
Definition: resolver/v0/resolver.h:1767
Structure to hold the control/status data for Diagnostics mentioned under Monitor excitation frequenc...
Definition: resolver/v0/resolver.h:443
#define RDC_DC_OFFSET_COS_ESTIMATION
Definition: resolver/v0/resolver.h:113
bool phase_drift_en
Definition: resolver/v0/resolver.h:427
int32_t RDC_verifyStaticConfigurations(uint32_t base, RDC_configParams *paramsInit, RDC_configParams *params)
Returns if the configurations in paramsInit to params.
#define RDC_INTERRUPT_SOURCE_PHASEDRIFT_COS_LO_ERR
Definition: resolver/v0/resolver.h:268
uint16_t sinsqcossq_cossq
Definition: resolver/v0/resolver.h:501
void RDC_coreParamsInit(Core_config_t *coreParams)
Inits the Core Parameters for the resolver core.
uint16_t excfreqdetected_sin
Definition: resolver/v0/resolver.h:444
bool sinsqcossq_lo
Definition: resolver/v0/resolver.h:504
#define RDC_EXCITATION_FREQUENCY_MIN_PHASE
Minimum Phase value that can be programmed for the Excitation signal.
Definition: resolver/v0/resolver.h:83
static void RDC_setDiagnosticsSinCosOffsetDriftData(uint32_t base, uint8_t resolverCore, Diag_Mon_SinCos_Offset_drift_data *monitorData)
Sets the Monitor Sin or Cos Offset Drift (DOS) diagnostics controls int16_t offset_drift_threshold_hi...
Definition: resolver/v0/resolver.h:2614
Structure to hold the control/status data for Diagnostics mentioned under Monitor Cos Phase drift (DO...
Definition: resolver/v0/resolver.h:421
bool gain_drift_sin_hi
Definition: resolver/v0/resolver.h:403
uint16_t excfreq_level
Definition: resolver/v0/resolver.h:448
static void RDC_clearSequencerInterrupt(uint32_t base)
Clear the Sequencer Error Interrupt status.
Definition: resolver/v0/resolver.h:1238
static uint8_t RDC_getConfiguredOverrideIdealSampleTime(uint32_t base, uint8_t core)
Returns the Configured Override value for the Ideal Sample Time.
Definition: resolver/v0/resolver.h:1811
int16_t cos_adc
Definition: resolver/v0/resolver.h:572
#define RDC_INTERRUPT_SOURCE_OFFSETDRIFT_SIN_HI_ERR
Definition: resolver/v0/resolver.h:275
static void RDC_disablePhaseGainEstimation(uint32_t base, uint8_t core)
Disbales Phase Gain Estimation in the background.
Definition: resolver/v0/resolver.h:2180
void RDC_getStaticConfigurations(uint32_t base, RDC_configParams *params)
Returns the Static Configurations.
static void RDC_setDcOffsetCalCoef(uint32_t base, uint8_t core, uint8_t coef1, uint8_t coef2)
Sets the DC Offset Coefficients coef1, coef2.
Definition: resolver/v0/resolver.h:1538
uint8_t DcParam3
Definition: resolver/v0/resolver.h:654
bool BpfDc_offsetCorrectionEnable
Definition: resolver/v0/resolver.h:591
Core_config_t core1
Definition: resolver/v0/resolver.h:637
static uint32_t RDC_getCoreInterruptSources(uint32_t base, uint32_t ResolverCore)
Returns Core interrupt sources.
Definition: resolver/v0/resolver.h:1411
int16_t sin_adc
Definition: resolver/v0/resolver.h:573
#define RDC_INTERRUPT_SOURCE_SINSQCOSSQ_HI_ERR
Definition: resolver/v0/resolver.h:258
bool offset_drift_cos_lo
Definition: resolver/v0/resolver.h:378
static void RDC_getDiagnosticsRotationalSignalIntegrityData(uint32_t base, uint8_t resolverCore, Diag_Mon_Rotational_Signal_Integrity_data *monitorData)
Returns the Monitor rotational signal integrity (DOS) diagnostics data bool cos_neg_zc_peak_mismatch_...
Definition: resolver/v0/resolver.h:3030
static uint32_t RDC_getCoreInterruptStatus(uint32_t base, uint32_t ResolverCore)
Returns Core interrupt Status.
Definition: resolver/v0/resolver.h:1392
static uint32_t RDC_getCoreEnabledInterruptSources(uint32_t base, uint8_t ResolverCore)
returns enabled Interrupt Sources
Definition: resolver/v0/resolver.h:1309
static void RDC_setTrack2Constants(uint32_t base, uint8_t core, Track2Constants_t *track2Constants)
sets up the Track2 loop constants the following are the constants that can be setup using this API
Definition: resolver/v0/resolver.h:2426
static uint16_t RDC_getCalibrationData(uint32_t base, uint8_t CalAdc)
Returns the CAL ADC data for given ADC, if the mode permits.
Definition: resolver/v0/resolver.h:1509
static void RDC_getDiagnosticsWeakAmplitudeData(uint32_t base, uint8_t resolverCore, Diag_Mon_Sin_Cos_Weak_Amplitude *monitorData)
Returns the Monitor weak Sin or Cos signal below a threshold (LOS) diagnostics data uint16_t lowAmpli...
Definition: resolver/v0/resolver.h:3309
uint16_t excfreqdrift_threshold_lo
Definition: resolver/v0/resolver.h:447
int16_t offset_drift_threshold_lo
Definition: resolver/v0/resolver.h:376
bool excfreqdrift_en
Definition: resolver/v0/resolver.h:453
bool sin_pos_zc_peak_mismatch_err
Definition: resolver/v0/resolver.h:473
#define RDC_MAX_IDEAL_SAMPLE_BPF_ADJUST
Definition: resolver/v0/resolver.h:119
int16_t BpfDc_manualCos
Definition: resolver/v0/resolver.h:595
bool phase_drift_cos_hi
Definition: resolver/v0/resolver.h:425
static uint16_t RDC_getConfiguredExcitationSignalSocDelay(uint32_t base)
Returns Configured Excitation Signal SOC Delay.
Definition: resolver/v0/resolver.h:1140
static uint32_t RDC_getAdcSampleRate(uint32_t base)
Gets the ADC Sampling Ratio.
Definition: resolver/v0/resolver.h:1008
static void RDC_enableGainAutoCorrection(uint32_t base, uint8_t core)
Enable Gain Auto correction.
Definition: resolver/v0/resolver.h:2274
#define RDC_INTERRUPT_SOURCE_COS_NEG_ZC_PEAK_MISMATCH_ERR
Definition: resolver/v0/resolver.h:261
#define RDC_EXCITATION_FREQUENCY_MAX_PHASE
Maximum Phase value that can be programmed for the Excitation signal.
Definition: resolver/v0/resolver.h:86
int16_t highAmplitude_cos_value
Definition: resolver/v0/resolver.h:524
uint8_t phase_drift_glitch_count
Definition: resolver/v0/resolver.h:424
static void RDC_disableCoreInterrupt(uint32_t base, uint32_t ResolverCore, uint32_t interruptSource)
Disable Core Interrupt.
Definition: resolver/v0/resolver.h:1325
uint16_t highAmplitude_threshold
Definition: resolver/v0/resolver.h:521
void RDC_init(uint32_t base, RDC_configParams *params)
Configures the RDC based on the parameter values.
Struct holds the Resolver Core Configurations Can be passed to RDC_coreParamsInit(Core_config_t* core...
Definition: resolver/v0/resolver.h:589
static void RDC_enableTrack2Boost(uint32_t base, uint8_t core)
enables the track2 Boost
Definition: resolver/v0/resolver.h:2465
static bool RDC_getIdealSamplePeakAvgLimitStatus(uint32_t base, uint8_t core)
Gets the status if the Peak Averaging Limit is reached.
Definition: resolver/v0/resolver.h:1918
#define RDC_INTERRUPT_SOURCE_PHASEDRIFT_COS_HI_ERR
Definition: resolver/v0/resolver.h:269
static void RDC_setIdealSampleBpfAdjust(uint32_t base, uint8_t core, uint8_t sampleAdjustCount)
the BPF sample adjust when the BPF is turned on. This configuration takes effect only on the auto mod...
Definition: resolver/v0/resolver.h:1887
bool excfreqdrift_cos_lo
Definition: resolver/v0/resolver.h:451
bool cos_pos_zc_peak_mismatch_err
Definition: resolver/v0/resolver.h:471
#define RDC_SEQUENCER_MODE_5
ADC0/1 Parallelly Sample Sin0, Cos0, Cos1, Sin1 Samples Sequentially For Core0/1. Both Sin(Cos) Sampl...
Definition: resolver/v0/resolver.h:196
static uint32_t RDC_getSequencerInterruptStatus(uint32_t base)
Returns Sequencer interrupt Status.
Definition: resolver/v0/resolver.h:1270
Track2Constants_t track2Constants
Definition: resolver/v0/resolver.h:612
uint16_t Pg_sinGainBypassValue
Definition: resolver/v0/resolver.h:608
#define RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_HI_ERR
Definition: resolver/v0/resolver.h:267
static void RDC_overrideIdealSampleTime(uint32_t base, uint8_t core, uint8_t overrideValue)
sets the Override value for the Ideal Sample Time selection.
Definition: resolver/v0/resolver.h:1791
#define RDC_INTERRUPT_SOURCE_HIGHAMPLITUDE_SIN_FAULT_ERR
Definition: resolver/v0/resolver.h:256
bool IdealSample_bottomSampleEnable
Definition: resolver/v0/resolver.h:601
#define RDC_RESOLVER_CORE0
Macro used to specify resolver core 0.
Definition: resolver/v0/resolver.h:94
uint8_t t2Param8
Definition: resolver/v0/resolver.h:659
static void RDC_setIdealSampleMode(uint32_t base, uint8_t core, uint8_t mode)
Ideal Sample Time Computation Mode selection.
Definition: resolver/v0/resolver.h:1942
uint16_t Pg_cosGainBypassValue
Definition: resolver/v0/resolver.h:609
static uint8_t RDC_getConfiguredPhaseGainEstimationTrainLimit(uint32_t base, uint8_t core)
Returns the configured Phase gain Estimation Train Limit.
Definition: resolver/v0/resolver.h:2106
void RDC_BaselineParametersInit(uint32_t base)
Inits Baseline Parameter configurations.
uint16_t lowAmplitude_threshold
Definition: resolver/v0/resolver.h:543
bool cos_multi_zc_error_err
Definition: resolver/v0/resolver.h:475
static void RDC_getConfiguredTrack2Constants(uint32_t base, uint8_t core, Track2Constants_t *track2Constants)
Returns the configured Track2 Constants.
Definition: resolver/v0/resolver.h:2451
bool BpfDc_bpfEnable
Definition: resolver/v0/resolver.h:590
static void RDC_setGainBypassValue(uint32_t base, uint8_t core, uint16_t sinGainBypass, uint16_t cosGainBypass)
Sets the Manual Gain Correction values for Sin and Cos.
Definition: resolver/v0/resolver.h:2332
static uint32_t RDC_getExcitationSignalAmplitudeControl(uint32_t base)
returns the Amplitude control for the excitation signal
Definition: resolver/v0/resolver.h:1175
uint16_t gain_drift_threshold_lo
Definition: resolver/v0/resolver.h:399
bool highAmplitude_sin_error
Definition: resolver/v0/resolver.h:525
static void RDC_disableAdcSingleEndedMode(uint32_t base)
Disable Single Ended Mode of operation.
Definition: resolver/v0/resolver.h:784
uint32_t Int_core1Interrupts
Definition: resolver/v0/resolver.h:641
bool adv_config
Definition: resolver/v0/resolver.h:624
#define RDC_INTERRUPT_SOURCE_OFFSETDRIFT_COS_LO_ERR
Definition: resolver/v0/resolver.h:276
bool gain_drift_sin_lo
Definition: resolver/v0/resolver.h:404
static void RDC_enableExcitationSignalSyncIn(uint32_t base)
Enables the Excitation Signal Sync In.
Definition: resolver/v0/resolver.h:1023
static uint8_t RDC_getConfiguredIdealSampleMode(uint32_t base, uint8_t core)
Returns the configured Ideal Sample Mode.
Definition: resolver/v0/resolver.h:1969
uint8_t lowAmplitude_glitchcount
Definition: resolver/v0/resolver.h:544
static bool RDC_isPhaseGainEstimationEnabled(uint32_t base, uint8_t core)
Returns if the Phase Gain Estimation logic is enabled.
Definition: resolver/v0/resolver.h:2201
struct to hold the track2 constant data
Definition: resolver/v0/resolver.h:357
static void RDC_clearCoreInterrupt(uint32_t base, uint32_t ResolverCore, uint32_t interruptSource)
Clear the Core Interrupt status.
Definition: resolver/v0/resolver.h:1347
#define RDC_CORE_OFFSET
Header Files.
Definition: resolver/v0/resolver.h:79
uint8_t Input_adcBurstCount
Definition: resolver/v0/resolver.h:627
static void RDC_setDiagnosticsRotationalSignalIntegrityData(uint32_t base, uint8_t resolverCore, Diag_Mon_Rotational_Signal_Integrity_data *monitorData)
Sets the Monitor rotational signal integrity (DOS) diagnostics Controls bool cos_neg_zc_peak_mismatch...
Definition: resolver/v0/resolver.h:3080
Structure to hold the control/status data for Diagnostics mentioned under Monitor Sin or Cos saturati...
Definition: resolver/v0/resolver.h:520
static void RDC_selectCalibrationChannel(uint32_t base, uint8_t calChannel)
Selects Calibration Channel for Cal sequence.
Definition: resolver/v0/resolver.h:1475
int16_t cos_pgc
Definition: resolver/v0/resolver.h:578
bool sinsqcossq_hi
Definition: resolver/v0/resolver.h:503
uint8_t IdealSample_overrideValue
Definition: resolver/v0/resolver.h:597
uint8_t excfreqdrift_glitchcount
Definition: resolver/v0/resolver.h:449
bool phase_drift_cos_lo
Definition: resolver/v0/resolver.h:426
Structure to hold the control/status data for Diagnostics mentioned under Monitor weak Sin or Cos sig...
Definition: resolver/v0/resolver.h:542
#define RDC_RESOLVER_CORE1
Macro used to specify resolver core 1.
Definition: resolver/v0/resolver.h:97
uint8_t Input_resolverSequencerMode
Definition: resolver/v0/resolver.h:628
int16_t highAmplitude_sin_value
Definition: resolver/v0/resolver.h:523
static void RDC_disableGainAutoCorrection(uint32_t base, uint8_t core)
Disable Gain Auto Correction.
Definition: resolver/v0/resolver.h:2293
int16_t sin_rec
Definition: resolver/v0/resolver.h:575
bool cos_neg_zc_peak_mismatch_err
Definition: resolver/v0/resolver.h:470
int16_t cos_dc
Definition: resolver/v0/resolver.h:576
static bool RDC_isPhaseAutoCorrectionEnabled(uint32_t base, uint16_t core)
Returns if the Phase Auto Correction is enabled.
Definition: resolver/v0/resolver.h:2258
static uint32_t RDC_getExcitationSignalFrequencySelect(uint32_t base)
Returns the selected Excitation Signal Frequency select.
Definition: resolver/v0/resolver.h:992
#define RDC_INTERRUPT_SOURCE_OFFSETDRIFT_COS_HI_ERR
Definition: resolver/v0/resolver.h:277
Core_config_t core0
Definition: resolver/v0/resolver.h:636
static void RDC_setExcitationSignalPhase(uint32_t base, uint16_t phase)
Sets the Phase value for the Excitation Signal. Phase values in the range [RDC_EXCITATION_FREQUENCY_M...
Definition: resolver/v0/resolver.h:929
Struct to hold the peakHistogram Buckets for Ideal Sample Calculation by SW. once the auto ideal samp...
Definition: resolver/v0/resolver.h:677
static void RDC_enableBPF(uint32_t base, uint8_t core)
enables Band Pass Filter before DC Offset logic.
Definition: resolver/v0/resolver.h:1587
uint8_t t2Param6
Definition: resolver/v0/resolver.h:657
#define RDC_INTERRUPT_SOURCE_LOWAMPLITUDE_ERR
Interrupt Sources Macros.
Definition: resolver/v0/resolver.h:254
static void RDC_setDiagnosticsHighAmplitudeData(uint32_t base, uint8_t resolverCore, Diag_Mon_Sin_Cos_High_Amplitude *monitorData)
Sets the Monitor Sin or Cos saturation or very high amplitude (DOS) diagnostics Controls uint16_t hig...
Definition: resolver/v0/resolver.h:3270
uint16_t rotpeak_level
Definition: resolver/v0/resolver.h:478
static uint8_t RDC_getConfiguredIdealSampleBpfAdjust(uint32_t base, uint8_t core)
Definition: resolver/v0/resolver.h:1900
bool sin_neg_zc_peak_mismatch_err
Definition: resolver/v0/resolver.h:472
static void RDC_disableSequencerInterrupt(uint32_t base)
Disable Sequencer Error Interrupt.
Definition: resolver/v0/resolver.h:1210
static void RDC_enableDcOffsetAutoCorrection(uint32_t base, uint8_t core)
Enables Auto DC Offset Correction from the estimated values Disables DC Offset Manual Correction logi...
Definition: resolver/v0/resolver.h:1688
static void RDC_setDiagnosticsSinCosGainDriftData(uint32_t base, uint8_t resolverCore, Diag_Mon_SinCos_Gain_drift_data *monitorData)
Sets the Monitor Sin or Cos Gain drift (DOS) diagnostics Controls uint16_t gain_drift_threshold_hi - ...
Definition: resolver/v0/resolver.h:2727
static void RDC_getPeakHistogramObservationalData(uint32_t base, uint8_t resolverCore, PeakHistogram_observationalData *histogram)
Returns the Peak Histogram Bucket data.
Definition: resolver/v0/resolver.h:3429
int16_t Pg_cosPhaseBypassValue
Definition: resolver/v0/resolver.h:610
#define RDC_INTERRUPT_SOURCE_GAINDRIFT_SIN_HI_ERR
Definition: resolver/v0/resolver.h:271
uint8_t sin_multi_zc_error_count
Definition: resolver/v0/resolver.h:477
static void RDC_forceSequencerInterrupt(uint32_t base)
Force the Sequencer Error Interrupt.
Definition: resolver/v0/resolver.h:1254
uint16_t ExcFrq_socDelay
Definition: resolver/v0/resolver.h:634
bool Int_seqEnable
Definition: resolver/v0/resolver.h:639
Structure to hold the control/status data for Diagnostics mentioned under Monitor Sin or Cos offset d...
Definition: resolver/v0/resolver.h:374
uint8_t adcParam1
Definition: resolver/v0/resolver.h:652
static void RDC_disableIdealSampleBottomSampling(uint32_t base, uint8_t core)
Disables Bottom Sampling.
Definition: resolver/v0/resolver.h:2022
static bool RDC_isBPFEnabled(uint32_t base, uint8_t core)
Returns if the BPF is enabled for given RDC Core.
Definition: resolver/v0/resolver.h:1629
static void RDC_setIdealSampleDetectionThreshold(uint32_t base, uint8_t core, uint16_t absThresholdValue)
sets Ideal Sample Detetction Threshold. validates the sample for the Ideal Sample time detection comp...
Definition: resolver/v0/resolver.h:1849
uint8_t gain_drift_glitch_count
Definition: resolver/v0/resolver.h:400
static bool RDC_isSequencerInterruptEnabled(uint32_t base)
Returns if the sequencer error interrupt is enabled.
Definition: resolver/v0/resolver.h:1227
#define RDC_INTERRUPT_SOURCE_SINSQCOSSQ_LO_ERR
Definition: resolver/v0/resolver.h:257
static void RDC_getDiagnosticsHighAmplitudeData(uint32_t base, uint8_t resolverCore, Diag_Mon_Sin_Cos_High_Amplitude *monitorData)
Returns the Monitor Sin or Cos saturation or very high amplitude (DOS) diagnostics data uint16_t high...
Definition: resolver/v0/resolver.h:3229
static int16_t RDC_getPhaseEstimation(uint32_t base, uint8_t core)
returns the Cos Phase Offset Estimation this can be used only if the RDC_getPhaseGainEstimationStatus...
Definition: resolver/v0/resolver.h:2371
static void RDC_enableCoreInterrupt(uint32_t base, uint32_t ResolverCore, uint32_t interruptSource)
enable Core Interrupt
Definition: resolver/v0/resolver.h:1287
static void RDC_enablePhaseAutoCorrection(uint32_t base, uint8_t core)
Enables Phase Auto Correction.
Definition: resolver/v0/resolver.h:2218
Structure to hold the control/status data for Diagnostics mentioned under Monitor signal integrity by...
Definition: resolver/v0/resolver.h:497
static void RDC_getDcOffsetManualCorrectionValue(uint32_t base, uint8_t core, int16_t *sin, int16_t *cos)
Gets the Sin, Cosine Manual Correction values for the Dc Offset block in the given resolver core.
Definition: resolver/v0/resolver.h:1742
#define RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_COS_LO_ERR
Definition: resolver/v0/resolver.h:266
static bool RDC_getPhaseGainEstimationStatus(uint32_t base, uint8_t core)
Gets status if the Phase Gain Estimation is complete.
Definition: resolver/v0/resolver.h:2047
uint8_t highAmplitude_glitchcount
Definition: resolver/v0/resolver.h:522
bool offset_drift_sin_hi
Definition: resolver/v0/resolver.h:379
int16_t BpfDc_manualSin
Definition: resolver/v0/resolver.h:594
uint8_t BpfDc_dcOffCal2
Definition: resolver/v0/resolver.h:593
#define RDC_SEQUENCER_MODE_0
or returned by RDC_getAdcSequencerOperationalMode()
Definition: resolver/v0/resolver.h:164
static int16_t RDC_getTrack2Angle(uint32_t base, uint8_t core)
Returns Signed 16 bit angle data from Track2 Loop. the data corresponds to -180 to 180 degrees angle ...
Definition: resolver/v0/resolver.h:2526
uint8_t Pg_estimationLimit
Definition: resolver/v0/resolver.h:604
bool t2Param9
Definition: resolver/v0/resolver.h:660
static bool RDC_isGainAutoCorrectionEnabled(uint32_t base, uint8_t core)
Returns if the Gain Auto Correction is.
Definition: resolver/v0/resolver.h:2314
void RDC_paramsInit(RDC_configParams *params)
Inits the resolver Configuration parameters.
uint16_t rotfreq_level
Definition: resolver/v0/resolver.h:479
#define RDC_INTERRUPT_SOURCE_GAINDRIFT_COS_LO_ERR
Definition: resolver/v0/resolver.h:272
uint8_t kvelfilt
Definition: resolver/v0/resolver.h:358
uint16_t excfreqdetected_cos
Definition: resolver/v0/resolver.h:445
#define RDC_INTERRUPT_SOURCE_ALL
Definition: resolver/v0/resolver.h:280
uint16_t PgParam4
Definition: resolver/v0/resolver.h:655
static void RDC_setDcOffsetManualCorrectionValue(uint32_t base, uint8_t core, int16_t sin, int16_t cos)
Sets the Sin, Cosine Manual Correction values for the Dc Offset block in the given resolver core.
Definition: resolver/v0/resolver.h:1711
uint8_t t2Param5
Definition: resolver/v0/resolver.h:656
int16_t sin_dc
Definition: resolver/v0/resolver.h:577
bool highAmplitude_cos_error
Definition: resolver/v0/resolver.h:526
uint16_t sinsqcossq_threshold_hi
Definition: resolver/v0/resolver.h:498
static void RDC_disableResolver(uint32_t base)
Disables the Resolver Operation.
Definition: resolver/v0/resolver.h:892
bool gain_drift_en
Definition: resolver/v0/resolver.h:405
static void RDC_setExcitationSignalFrequencySelect(uint32_t base, uint8_t FrequencySel)
Sets the Excitation frequency value from the selected values.
Definition: resolver/v0/resolver.h:968
#define RDC_INTERRUPT_SOURCE_GAINDRIFT_COS_HI_ERR
Definition: resolver/v0/resolver.h:273
static void RDC_setDiagnosticsSignalIntegritySquareSumData(uint32_t base, uint32_t resolverCore, Diag_Mon_Signal_Integrity_SinSq_CosSq *monitorData)
Sets the Monitor signal integrity by checking Sin2+Cos2=Constant (DOS) diagnostics Controls uint16_t ...
Definition: resolver/v0/resolver.h:3183
uint8_t ExcFrq_freqSel
Definition: resolver/v0/resolver.h:630
static void RDC_disableTrack2Boost(uint32_t base, uint8_t core)
disables the track2 Boost
Definition: resolver/v0/resolver.h:2484
static void RDC_clearCalibrationStatus(uint32_t base)
Clears Calibration Status for re-enabling Calibration Sequence.
Definition: resolver/v0/resolver.h:1450
int16_t phase_drift_threshold_hi
Definition: resolver/v0/resolver.h:422
uint16_t sinsqcossq_sinsq
Definition: resolver/v0/resolver.h:502
static void RDC_disablePhaseAutoCorrection(uint32_t base, uint8_t core)
Disables Phase Auto Correction.
Definition: resolver/v0/resolver.h:2237
static uint32_t RDC_getExcitationSignalPhase(uint32_t base)
Returns the Phase Value programmed for Excitation signal.
Definition: resolver/v0/resolver.h:949
static void RDC_setDiagnosticsCosPhaseDriftData(uint32_t base, uint8_t resolverCore, Diag_Mon_Cos_Phase_drift_data *monitorData)
Sets the Monitor Cos Phase drift (DOS) diagnostics Controls int16_t phase_drift_threshold_hi - the ph...
Definition: resolver/v0/resolver.h:2840
uint16_t ExcFrq_phase
Definition: resolver/v0/resolver.h:631
static void RDC_getAdcObservationalData(uint32_t base, uint8_t resolverCore, ADC_observationalData *AdcData)
Returns the Observational ADC data to struct type ADC_observationalData int16_t cos_adc - SW Observat...
Definition: resolver/v0/resolver.h:3391
static void RDC_enableAdcSingleEndedMode(uint32_t base)
Enable Single Ended Mode of operation.
Definition: resolver/v0/resolver.h:767
uint8_t t2Param7
Definition: resolver/v0/resolver.h:658
uint32_t Int_core0Interrupts
Definition: resolver/v0/resolver.h:640
static void RDC_enableIdealSampleBottomSampling(uint32_t base, uint8_t core)
Enables bottom Sampling. twice the sampling rate than disabled. the track2 loop runs twice the speed ...
Definition: resolver/v0/resolver.h:1986
int16_t phase_drift_threshold_lo
Definition: resolver/v0/resolver.h:423
bool excfreqdrift_sin_lo
Definition: resolver/v0/resolver.h:452
uint8_t sinsqcossq_glitchcount
Definition: resolver/v0/resolver.h:500
static bool RDC_getCalibrationStatus(uint32_t base)
Returns the Calibration Status.
Definition: resolver/v0/resolver.h:1434
bool gain_drift_cos_lo
Definition: resolver/v0/resolver.h:402
static void RDC_getDiagnosticsSinCosOffsetDriftData(uint32_t base, uint8_t resolverCore, Diag_Mon_SinCos_Offset_drift_data *monitorData)
Returns the Monitor Sin or Cos Offset Drift (DOS) diagnostics data int16_t offset_drift_threshold_hi ...
Definition: resolver/v0/resolver.h:2572
static void RDC_enableCalibration(uint32_t base)
Enables ADC Calibration.
Definition: resolver/v0/resolver.h:1491
static uint16_t RDC_getConfiguredIdealSampleDetectionThreshold(uint32_t base, uint8_t core)
Returns the confiugured Ideal Sample Detection Threshold.
Definition: resolver/v0/resolver.h:1869
Structure to hold the control/status data for Diagnostics mentioned under Monitor Sin or Cos Gain dri...
Definition: resolver/v0/resolver.h:397
uint16_t IdealSample_absThresholdValue
Definition: resolver/v0/resolver.h:598
static void RDC_disableExcitationSignalSyncIn(uint32_t base)
Disables the Excitation Signal Sync In.
Definition: resolver/v0/resolver.h:1039
int16_t sin_pgc
Definition: resolver/v0/resolver.h:579
bool zero_cross_rot_en
Definition: resolver/v0/resolver.h:480
static void RDC_getDiagnosticsSinCosGainDriftData(uint32_t base, uint8_t resolverCore, Diag_Mon_SinCos_Gain_drift_data *monitorData)
Returns the Monitor Sin or Cos Gain drift (DOS) diagnostics data uint16_t gain_drift_threshold_hi - t...
Definition: resolver/v0/resolver.h:2677
static void RDC_clearPhaseGainEstimationStatus(uint32_t base, uint8_t core)
Clears the Phase Gain Estimation status. This can be used for any udpates to the thresholds or the tr...
Definition: resolver/v0/resolver.h:2067
static void RDC_setAdcSequencerOperationalMode(uint32_t base, uint8_t operationalMode)
sets Sequencer Operational Mode Valid values are RDC_SEQUENCER_MODE_0 - ADC0 SAMPLES SIN AND ADC1 SAM...
Definition: resolver/v0/resolver.h:856
#define RDC_INTERRUPT_SOURCE_EXCFREQDRIFT_SIN_LO_ERR
Definition: resolver/v0/resolver.h:265
static void RDC_enableResolver(uint32_t base)
Enables the Resolver Operation.
Definition: resolver/v0/resolver.h:876
static void RDC_setAdcBurstCount(uint32_t base, uint8_t burstCount)
sets the ADC Burst count, samples to be averaged.
Definition: resolver/v0/resolver.h:729
static void RDC_enableSequencerInterrupt(uint32_t base)
Enable Sequencer Error Interrupt.
Definition: resolver/v0/resolver.h:1194
static uint8_t RDC_getIdealSampleTime(uint32_t base, uint8_t core)
Returns the Ideal Sample Time Esitimated by the resolver core.
Definition: resolver/v0/resolver.h:1827
uint8_t Input_socWidth
Definition: resolver/v0/resolver.h:626
static void RDC_setDiagnosticsExcFreqDegradationData(uint32_t base, uint8_t resolverCore, Diag_Mon_ExcFreq_Degradataion_data *monitorData)
Sets the Monitor excitation frequency degradation or loss (DOS) diagnostics Controls uint16_t excfreq...
Definition: resolver/v0/resolver.h:2966
static int16_t RDC_getConfiguredCosPhaseBypass(uint32_t base, uint8_t core)
Returns the configrued Cosine Phase Bypass value.
Definition: resolver/v0/resolver.h:2145
bool offset_drift_sin_lo
Definition: resolver/v0/resolver.h:380
uint16_t excfreqdrift_threshold_hi
Definition: resolver/v0/resolver.h:446
#define RDC_EXCITATION_FREQUENCY_20K
select 20KHz Excitation Sine Frequency
Definition: resolver/v0/resolver.h:216
static void RDC_getDiagnosticsSignalIntegritySquareSumData(uint32_t base, uint32_t resolverCore, Diag_Mon_Signal_Integrity_SinSq_CosSq *monitorData)
Returns the Monitor signal integrity by checking Sin2+Cos2=Constant (DOS) diagnostics data uint16_t s...
Definition: resolver/v0/resolver.h:3134
#define RDC_DC_OFFSET_SIN_ESTIMATION
Definition: resolver/v0/resolver.h:112
static uint8_t RDC_getConfiguredAdcBurstCount(uint32_t base)
Returns the configured Burst count value.
Definition: resolver/v0/resolver.h:752
static void RDC_enablePhaseGainEstimation(uint32_t base, uint8_t core)
Enables Phase Gain Estimation in the background.
Definition: resolver/v0/resolver.h:2160
#define RDC_MAX_EXCITATION_AMPLITUDE
Maximum Excitation Signal Amplitude.
Definition: resolver/v0/resolver.h:90
Structure to hold the control/status data for Diagnostics mentioned under Monitor rotational signal i...
Definition: resolver/v0/resolver.h:469
static void RDC_clearExcitationSignalEventStatus(uint32_t base)
Clears SyncIn event status.
Definition: resolver/v0/resolver.h:1089
static void RDC_disableDcOffsetAutoCorrection(uint32_t base, uint8_t core)
Disbales Auto Offset correction from the estimated values Enables DC Offset Manual Correction logic.
Definition: resolver/v0/resolver.h:1646
static void RDC_getConfiguredGainBypassValue(uint32_t base, uint8_t core, uint16_t *sinGainBypass, uint16_t *cosGainBypass)
Returns the sine and cosine gain bypass values configured.
Definition: resolver/v0/resolver.h:2352
static void RDC_setCosPhaseBypass(uint32_t base, uint8_t core, int16_t cosPhaseBypass)
sets the Cos Phase Manual Bypass Value
Definition: resolver/v0/resolver.h:2123
uint8_t IdealParam2
Definition: resolver/v0/resolver.h:653
static void RDC_setPhaseGainEstimationTrainLimit(uint32_t base, uint8_t core, uint8_t pgEstimationLimit)
Sets the Phase Gain Estimation train limit. if the programmed value is x, 2^x rotations are considere...
Definition: resolver/v0/resolver.h:2085
#define RDC_INTERRUPT_SOURCE_OFFSETDRIFT_SIN_LO_ERR
Definition: resolver/v0/resolver.h:274
uint8_t BpfDc_dcOffCal1
Definition: resolver/v0/resolver.h:592
static void RDC_forceCoreInterrupt(uint32_t base, uint32_t ResolverCore, uint32_t interruptSource)
Force the Core Interrupt.
Definition: resolver/v0/resolver.h:1370
static void RDC_setExcitationSignalSocDelay(uint32_t base, uint16_t socDelay)
Sets the SOC Delay from the PWM Exciation Signal.
Definition: resolver/v0/resolver.h:1123
uint8_t IdealSample_sampleAdjustCount
Definition: resolver/v0/resolver.h:599
#define RDC_INTERRUPT_SOURCE_SIN_NEG_ZC_PEAK_MISMATCH_ERR
Definition: resolver/v0/resolver.h:263
#define RDC_EXCITATION_FREQUENCY_5K
or returned by RDC_getExcitationSignalFrequencySelect()
Definition: resolver/v0/resolver.h:210
int16_t offset_drift_threshold_hi
Definition: resolver/v0/resolver.h:375
static uint32_t RDC_getExcitationSignalPhaseInfo(uint32_t base)
Returns the latched value of the last pwm_sync_in rise event of the pwm phase. this is updated on eve...
Definition: resolver/v0/resolver.h:1107
Struct holds the Baseline Parameter values Can be passed to RDC_BaselineParametersInit(uint32_t base)...
Definition: resolver/v0/resolver.h:651
uint8_t cos_multi_zc_error_count
Definition: resolver/v0/resolver.h:476
uint8_t IdealSample_mode
Definition: resolver/v0/resolver.h:600
bool sin_multi_zc_error_err
Definition: resolver/v0/resolver.h:474
uint16_t sinsqcossq_threshold_lo
Definition: resolver/v0/resolver.h:499
int16_t cos_rec
Definition: resolver/v0/resolver.h:574
#define RDC_EXCITATION_FREQUENCY_10K
select 10KHz Excitation Sine Frequency
Definition: resolver/v0/resolver.h:213
static uint32_t RDC_getAdcSequencerOperationalMode(uint32_t base)
returns Sequencer Operational Mode Valid values are RDC_SEQUENCER_MODE_0 - ADC0 SAMPLES SIN AND ADC1 ...
Definition: resolver/v0/resolver.h:828
int16_t lowAmplitude_cos_value
Definition: resolver/v0/resolver.h:547
#define DebugP_assert(expression)
Function to call for assert check.
Definition: DebugP.h:177
bool excfreqdrift_hi
Definition: resolver/v0/resolver.h:450
bool Pg_estimationEnable
Definition: resolver/v0/resolver.h:603
static int32_t RDC_getTrack2Velocity(uint32_t base, uint8_t core)
Returns Signed 32 bit Velocity data from Track2 Loop.
Definition: resolver/v0/resolver.h:2545
uint8_t peakHistgoramBucket[20]
Definition: resolver/v0/resolver.h:678
static void RDC_disableBPF(uint32_t base, uint8_t core)
Disables Band Pass Filter Logic before DC Offset logic.
Definition: resolver/v0/resolver.h:1607
bool ExcFrq_enableSyncIn
Definition: resolver/v0/resolver.h:633
#define RDC_INTERRUPT_SOURCE_COS_POS_ZC_PEAK_MISMATCH_ERR
Definition: resolver/v0/resolver.h:262
static bool RDC_isIdealSampleBottomSamplingEnabled(uint32_t base, uint8_t core)
Returns if the Bottom Sampling is enabled in the sample selection.
Definition: resolver/v0/resolver.h:2007
static void RDC_setDiagnosticsWeakAmplitudeData(uint32_t base, uint8_t resolverCore, Diag_Mon_Sin_Cos_Weak_Amplitude *monitorData)
Sets the Monitor weak Sin or Cos signal below a threshold (LOS) diagnostics Controls uint16_t lowAmpl...
Definition: resolver/v0/resolver.h:3348
static void RDC_setExcitationSignalAmplitudeControl(uint32_t base, uint8_t amplitude)
set the Amplitude control for the excitation signal
Definition: resolver/v0/resolver.h:1157
static void RDC_setAdcSocWidth(uint32_t base, uint8_t socWidth)
sets the Start of Conversion Width for the ADC conversion
Definition: resolver/v0/resolver.h:691
static uint8_t RDC_getConfiguredAdcSocWidth(uint32_t base)
Returns the configured ADC SOC Width value.
Definition: resolver/v0/resolver.h:708
static void RDC_getDiagnosticsExcFreqDegradationData(uint32_t base, uint8_t resolverCore, Diag_Mon_ExcFreq_Degradataion_data *monitorData)
Returns the Monitor excitation frequency degradation or loss (DOS) diagnostics data uint16_t excfreqd...
Definition: resolver/v0/resolver.h:2900
uint16_t gain_drift_threshold_hi
Definition: resolver/v0/resolver.h:398
int16_t lowAmplitude_sin_value
Definition: resolver/v0/resolver.h:546
#define RDC_INTERRUPT_SOURCE_GAINDRIFT_SIN_LO_ERR
Definition: resolver/v0/resolver.h:270
uint8_t ExcFrq_amplitude
Definition: resolver/v0/resolver.h:632
static void RDC_getDiagnosticsCosPhaseDriftData(uint32_t base, uint8_t resolverCore, Diag_Mon_Cos_Phase_drift_data *monitorData)
Returns the Monitor Cos Phase drift (DOS) diagnostics data int16_t phase_drift_threshold_hi - the con...
Definition: resolver/v0/resolver.h:2796
static bool RDC_isResolverEnabled(uint32_t base)
Returns if Resolver is enabled.
Definition: resolver/v0/resolver.h:910
#define RDC_INTERRUPT_SOURCE_HIGHAMPLITUDE_COS_FAULT_ERR
Definition: resolver/v0/resolver.h:255
static bool RDC_isExcitationSignalSyncInEnabled(uint32_t base)
Returns if the Excitation Sync-in Signal is enabled.
Definition: resolver/v0/resolver.h:1057
bool offset_drift_cos_hi
Definition: resolver/v0/resolver.h:377
static uint32_t RDC_getExcitationSignalEventStatus(uint32_t base)
returns if there is a sync in event after the RDC_enableResolver() has been called once this returns ...
Definition: resolver/v0/resolver.h:1074
#define RDC_INTERRUPT_SOURCE_SIN_POS_ZC_PEAK_MISMATCH_ERR
Definition: resolver/v0/resolver.h:264
bool Pg_autoCorrectionEnable
Definition: resolver/v0/resolver.h:607
Structure to hold the Observational Data reads int16_t cos_adc - SW Observational ADC data post latch...
Definition: resolver/v0/resolver.h:571
bool offset_drift_en
Definition: resolver/v0/resolver.h:381
static void RDC_getGainEstimation(uint32_t base, uint8_t core, float *sinGainEstimateSq, float *cosGainEstimateSq)
returns the Gain Squared estimates for sin and cosine gain values
Definition: resolver/v0/resolver.h:2397
Struct holds the RDC configurations Can be passed to RDC_paramsInit(RDC_configParams* params); RDC_in...
Definition: resolver/v0/resolver.h:623
bool gain_drift_cos_hi
Definition: resolver/v0/resolver.h:401