12 #include "hpm_soc_ip_feature.h"
13 #include "hpm_trgm_regs.h"
14 #include "hpm_trgmmux_src.h"
105 #if defined(TRGM_SOC_HAS_FILTER_SHIFT) && TRGM_SOC_HAS_FILTER_SHIFT
106 uint32_t len = length;
137 #if defined(TRGM_SOC_HAS_FILTER_SHIFT) && TRGM_SOC_HAS_FILTER_SHIFT
247 #if defined(TRGM_SOC_HAS_DMAMUX_EN) && TRGM_SOC_HAS_DMAMUX_EN
254 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_2) || defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_1)
264 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_2)
265 uint16_t val_n, val_p;
268 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_1)
269 static uint16_t last_val = 0;
282 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_2)
283 val_n = TRGM_PWM_CALIB_STATUS1_CALIB_RESULT_N_GET(trgm->PWM_CALIB_STATUS1);
284 val_p = TRGM_PWM_CALIB_STATUS1_CALIB_RESULT_P_GET(trgm->PWM_CALIB_STATUS1);
285 if ((val_n > 3) && (val_p > 3)) {
286 delay_val = TRGM_PWM_DELAY_CFG_DELAY_CHAN_CALIB_N_SW_SET(val_n) |
287 TRGM_PWM_DELAY_CFG_DELAY_CHAN_CALIB_P_SW_SET(val_p);
294 #if defined(HPM_IP_FEATURE_TRGM_HRPWM_CALIBRATION_1)
296 if (last_val == 0U) {
297 if (delay_val > 10) {
298 last_val = delay_val;
305 diff_val = ((delay_val - last_val) > 0) ? (delay_val - last_val) : (last_val - delay_val);
307 if (((
float)diff_val / last_val) > 0.25f) {
309 last_val = delay_val;
#define TRGM_TRGOCFG_OUTINV_SET(x)
Definition: hpm_trgm_regs.h:96
#define TRGM_TRGOCFG_REDG2PEN_MASK
Definition: hpm_trgm_regs.h:114
#define TRGM_TRGOCFG_FEDG2PEN_MASK
Definition: hpm_trgm_regs.h:104
#define TRGM_DMACFG_DMAMUX_EN_MASK
Definition: hpm_trgm_regs.h:134
#define TRGM_FILTCFG_SYNCEN_MASK
Definition: hpm_trgm_regs.h:64
#define TRGM_FILTCFG_OUTINV_MASK
Definition: hpm_trgm_regs.h:39
#define TRGM_FILTCFG_FILTLEN_BASE_SHIFT
Definition: hpm_trgm_regs.h:84
#define TRGM_FILTCFG_MODE_MASK
Definition: hpm_trgm_regs.h:54
#define TRGM_FILTCFG_FILTLEN_BASE_SET(x)
Definition: hpm_trgm_regs.h:85
#define TRGM_FILTCFG_FILTLEN_BASE_MASK
Definition: hpm_trgm_regs.h:83
#define TRGM_TRGOCFG_TRIGOSEL_MASK
Definition: hpm_trgm_regs.h:124
#define TRGM_FILTCFG_OUTINV_SET(x)
Definition: hpm_trgm_regs.h:41
#define TRGM_FILTCFG_SYNCEN_SET(x)
Definition: hpm_trgm_regs.h:66
#define TRGM_FILTCFG_MODE_SET(x)
Definition: hpm_trgm_regs.h:56
#define TRGM_TRGOCFG_TRIGOSEL_SET(x)
Definition: hpm_trgm_regs.h:126
#define TRGM_FILTCFG_FILTLEN_SHIFT_SHIFT
Definition: hpm_trgm_regs.h:74
#define TRGM_DMACFG_DMASRCSEL_SET(x)
Definition: hpm_trgm_regs.h:146
#define TRGM_FILTCFG_FILTLEN_SHIFT_MASK
Definition: hpm_trgm_regs.h:73
#define TRGM_FILTCFG_FILTLEN_SHIFT_SET(x)
Definition: hpm_trgm_regs.h:75
#define TRGM_FILTCFG_FILTLEN_MASK
Definition: hpm_trgm_regs.h:65
#define TRGM_FILTCFG_FILTLEN_SET(x)
Definition: hpm_trgm_regs.h:67
#define TRGM_PWM_CALIB_CFG_CALIB_HW_ENABLE_MASK
Definition: hpm_trgm_regs.h:771
#define TRGM_PWM_CALIB_STATUS0_CALIB_RESULT_GET(x)
Definition: hpm_trgm_regs.h:791
#define TRGM_PWM_CALIB_CFG_CALIB_SW_START_MASK
Definition: hpm_trgm_regs.h:762
#define TRGM_PWM_CALIB_STATUS0_CALIB_ON_GET(x)
Definition: hpm_trgm_regs.h:783
trgm_output_type
Output type.
Definition: hpm_trgm_drv.h:37
static void trgm_input_filter_config(TRGM_Type *ptr, uint8_t input, trgm_input_filter_t *filter)
Configure filter.
Definition: hpm_trgm_drv.h:202
trgm_pwmv2_calibration_mode_t
Definition: hpm_trgm_drv.h:45
static void trgm_input_filter_set_filter_shift(TRGM_Type *ptr, uint8_t input, uint8_t shift)
Set filter length.
Definition: hpm_trgm_drv.h:135
static void trgm_input_filter_enable_sync(TRGM_Type *ptr, uint8_t input)
Enable sync input with TRGM clock.
Definition: hpm_trgm_drv.h:153
struct trgm_output trgm_output_t
Output configuration.
static void trgm_output_update_source(TRGM_Type *ptr, uint8_t output, uint8_t source)
Update source for TRGM output.
Definition: hpm_trgm_drv.h:217
static void trgm_input_filter_set_mode(TRGM_Type *ptr, uint8_t input, trgm_filter_mode_t mode)
Set filter working mode.
Definition: hpm_trgm_drv.h:176
enum trgm_filter_mode trgm_filter_mode_t
Filter mode.
static void trgm_output_config(TRGM_Type *ptr, uint8_t output, trgm_output_t *config)
Configure output.
Definition: hpm_trgm_drv.h:230
enum trgm_output_type trgm_output_type_t
Output type.
static void trgm_input_filter_set_filter_length(TRGM_Type *ptr, uint8_t input, uint32_t length)
Set filter length.
Definition: hpm_trgm_drv.h:103
static void trgm_input_filter_disable_sync(TRGM_Type *ptr, uint8_t input)
Disable sync input with TRGM clock.
Definition: hpm_trgm_drv.h:164
struct trgm_input_filter trgm_input_filter_t
Input filter configuration.
static void trgm_dma_request_config(TRGM_Type *ptr, uint8_t dma_out, uint8_t dma_src)
Configure DMA request.
Definition: hpm_trgm_drv.h:245
trgm_filter_mode
Filter mode.
Definition: hpm_trgm_drv.h:26
static void trgm_enable_io_output(TRGM_Type *ptr, uint32_t mask)
Enable IO output.
Definition: hpm_trgm_drv.h:80
static void trgm_input_filter_invert(TRGM_Type *ptr, uint8_t input, bool invert)
Invert filter output.
Definition: hpm_trgm_drv.h:189
static void trgm_disable_io_output(TRGM_Type *ptr, uint32_t mask)
Disable IO output.
Definition: hpm_trgm_drv.h:91
@ trgm_output_pulse_at_input_rising_edge
Definition: hpm_trgm_drv.h:40
@ trgm_output_pulse_at_input_falling_edge
Definition: hpm_trgm_drv.h:39
@ trgm_output_pulse_at_input_both_edge
Definition: hpm_trgm_drv.h:41
@ trgm_output_same_as_input
Definition: hpm_trgm_drv.h:38
@ trgm_pwmv2_calibration_mode_end
Definition: hpm_trgm_drv.h:48
@ trgm_pwmv2_calibration_mode_wait
Definition: hpm_trgm_drv.h:47
@ trgm_pwmv2_calibration_mode_begin
Definition: hpm_trgm_drv.h:46
@ trgm_filter_mode_rapid_change
Definition: hpm_trgm_drv.h:28
@ trgm_filter_mode_delay
Definition: hpm_trgm_drv.h:29
@ trgm_filter_mode_bypass
Definition: hpm_trgm_drv.h:27
@ trgm_filter_mode_stable_high
Definition: hpm_trgm_drv.h:31
@ trgm_filter_mode_stable_low
Definition: hpm_trgm_drv.h:30
Definition: hpm_trgm_regs.h:12
__R uint32_t PWM_CALIB_STATUS0
Definition: hpm_trgm_regs.h:45
__RW uint32_t TRGOCFG[137]
Definition: hpm_trgm_regs.h:15
__RW uint32_t DMACFG[8]
Definition: hpm_trgm_regs.h:17
__RW uint32_t PWM_CALIB_CFG
Definition: hpm_trgm_regs.h:43
__RW uint32_t FILTCFG[28]
Definition: hpm_trgm_regs.h:13
__RW uint32_t PWM_DELAY_CFG
Definition: hpm_trgm_regs.h:42
__RW uint32_t GCR
Definition: hpm_trgm_regs.h:19
Output configuration.
Definition: hpm_trgm_drv.h:64
trgm_output_type_t type
Definition: hpm_trgm_drv.h:66
bool invert
Definition: hpm_trgm_drv.h:65
uint8_t input
Definition: hpm_trgm_drv.h:67