17 #include "driver/mcpwm.h"
20 #define PS_PWM_LOG_LEVEL ESP_LOG_INFO
25 #define MCPWM_INPUT_CLK 160000000
29 #define BASE_CLK_PRESCALE_DEFAULT 1
32 #define TIMER_CLK_PRESCALE_DEFAULT 1
35 static const uint16_t period_min = 4;
71 uint8_t base_clk_prescale;
72 uint8_t timer_clk_prescale;
127 float lead_red,
float lead_fed,
128 float lag_red,
float lag_fed,
130 mcpwm_action_on_pwmxa_t disable_action_lead_leg,
131 mcpwm_action_on_pwmxa_t disable_action_lag_leg);
148 mcpwm_action_on_pwmxa_t disable_action_lead_leg,
149 mcpwm_action_on_pwmxa_t disable_action_lag_leg);
253 int gpio_fault_shutdown,
254 mcpwm_fault_input_level_t fault_pin_active_level);
262 int gpio_fault_shutdown);
291 #ifdef PSPWM_USE_UP_DOWN_CTR_MODE_API
327 esp_err_t pspwm_up_down_ctr_mode_init(mcpwm_unit_t mcpwm_num,
337 mcpwm_action_on_pwmxa_t disable_action_lead_leg,
338 mcpwm_action_on_pwmxa_t disable_action_lag_leg);
352 esp_err_t pspwm_up_down_ctr_mode_set_frequency(mcpwm_unit_t mcpwm_num,
362 esp_err_t pspwm_up_down_ctr_mode_set_deadtimes(mcpwm_unit_t mcpwm_num,
372 esp_err_t pspwm_up_down_ctr_mode_set_ps_duty(mcpwm_unit_t mcpwm_num,
esp_err_t pspwm_enable_hw_fault_shutdown(mcpwm_unit_t mcpwm_num, int gpio_fault_shutdown, mcpwm_fault_input_level_t fault_pin_active_level)
Enable hardware fault shutdown ("tripzone") input on given GPIO pin.
Definition: ps_pwm.c:449
esp_err_t pspwm_set_frequency(mcpwm_unit_t mcpwm_num, float frequency)
Set frequency when running PS-PWM generator in up-counting mode.
Definition: ps_pwm.c:186
esp_err_t pspwm_set_ps_duty(mcpwm_unit_t mcpwm_num, float ps_duty)
Set PS-PWM phase shift between lead and lag leg output pairs.
Definition: ps_pwm.c:333
esp_err_t pspwm_init_symmetrical(mcpwm_unit_t mcpwm_num, int gpio_lead_a, int gpio_lead_b, int gpio_lag_a, int gpio_lag_b, float frequency, float ps_duty, float lead_dt, float lag_dt, bool output_enabled, mcpwm_action_on_pwmxa_t disable_action_lead_leg, mcpwm_action_on_pwmxa_t disable_action_lag_leg)
Shortcut version of pspwm_init() with identical rising and falling edge dead times applied for each o...
Definition: ps_pwm.c:162
esp_err_t pspwm_set_deadtimes_symmetrical(mcpwm_unit_t mcpwm_num, float lead_dt, float lag_dt)
Shortcut version of pspwm_set_deadtimes() with identical rising and falling edge dead times applied f...
Definition: ps_pwm.c:323
esp_err_t pspwm_get_clk_conf_ptr(mcpwm_unit_t mcpwm_num, pspwm_clk_conf_t **clk_conf)
Return a pointer to PSPWM stage clock configuration.
Definition: ps_pwm.c:497
bool pspwm_get_hw_fault_shutdown_occurred(mcpwm_unit_t mcpwm_num)
Returns true when the hardware fault shutdown pin has been activated.
Definition: ps_pwm.c:382
bool pspwm_get_hw_fault_shutdown_present(mcpwm_unit_t mcpwm_num)
Returns true while the hardware fault shutdown pin is active i.e. for as long as the failure is still...
Definition: ps_pwm.c:371
esp_err_t pspwm_disable_output(mcpwm_unit_t mcpwm_num)
Disable PWM output immediately by software-triggering the one-shot fault input of the "trip-zone" fau...
Definition: ps_pwm.c:401
esp_err_t pspwm_set_deadtimes(mcpwm_unit_t mcpwm_num, float lead_red, float lead_fed, float lag_red, float lag_fed)
Set deadtime values individually for leading leg rising and falling edge as well as for lagging leg r...
Definition: ps_pwm.c:246
esp_err_t pspwm_init(mcpwm_unit_t mcpwm_num, int gpio_lead_a, int gpio_lead_b, int gpio_lag_a, int gpio_lag_b, float frequency, float ps_duty, float lead_red, float lead_fed, float lag_red, float lag_fed, bool output_enabled, mcpwm_action_on_pwmxa_t disable_action_lead_leg, mcpwm_action_on_pwmxa_t disable_action_lag_leg)
Set up the PS-PWM generator module for up-counting mode, allowing individual dead-time values for ris...
Definition: ps_pwm.c:63
esp_err_t pspwm_get_setpoint_ptr(mcpwm_unit_t mcpwm_num, pspwm_setpoint_t **setpoint)
Return a pointer to PSPWM stage runtime setpoints.
Definition: ps_pwm.c:477
void pspwm_clear_hw_fault_shutdown_occurred(mcpwm_unit_t mcpwm_num)
Resets the fault shutdown active flag without re-enabling the output.
Definition: ps_pwm.c:395
esp_err_t pspwm_resync_enable_output(mcpwm_unit_t mcpwm_num)
(Re-)enable PWM output by clearing fault handler one-shot trigger after software-triggering a re-sync...
Definition: ps_pwm.c:420
esp_err_t pspwm_get_setpoint_limits_ptr(mcpwm_unit_t mcpwm_num, pspwm_setpoint_limits_t **setpoint_limits)
Return a pointer to PSPWM stage setpoint limits as calculated from clock configuration.
Definition: ps_pwm.c:487
esp_err_t pspwm_disable_hw_fault_shutdown(mcpwm_unit_t mcpwm_num, int gpio_fault_shutdown)
Disable hardware fault shutdown pin, resetting the GPIO to default state.
Definition: ps_pwm.c:464