概述
载波模块主要用在PWM输出信号与驱动器之间通过变压器隔离的应用,使用高频载波对PWM进行调制输出。如下图所示的波形,第一个脉冲宽度可单独配置,目的在于提供高能量脉冲以接通电源开关;随后的脉冲可整体调整频率和占空比,用于保持上电的状态。

关键函数说明
注意载波配置需在mcpwm_init()函数之后,否则载波无输出。
//载波模块配置
mcpwm_carrier_config_t car_cfg = {
.carrier_period = 1, // 载波周期:1-16; 载波周期 = (carrier_period + 1)*800ns
.carrier_duty = 1, // 载波占空比:1-8; 载波占空比 = carrier_duty * 12.5%
.pulse_width_in_os = 1, //第一个脉冲宽度 1-16; 第一个脉冲宽度 = (载波周期)*(pulse_width_in_os + 1)
.carrier_os_mode = MCPWM_ONESHOT_MODE_EN, //开启/关闭第一个脉冲设置:MCPWM_ONESHOT_MODE_EN / MCPWM_ONESHOT_MODE_DIS
.carrier_ivt_mode = MCPWM_CARRIER_OUT_IVT_DIS //输出载波是否反相:MCPWM_CARRIER_OUT_IVT_EN / MCPWM_CARRIER_OUT_IVT_DIS
};
//初始化载波模块
ESP_ERROR_CHECK(mcpwm_carrier_init(
MCPWM_UNIT_0, // MCPWM_UNIT_0/1
MCPWM_TIMER_0, // MCPWM_TIMER_0/1/2
&car_cfg));
//启动载波输出
ESP_ERROR_CHECK(mcpwm_carrier_enable(
MCPWM_UNIT_0, // MCPWM_UNIT_0/1
MCPWM_TIMER_0)); // MCPWM_TIMER_0/1/2
//关闭载波输出
esp_err_t mcpwm_carrier_disable(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num)
//设置载波周期
esp_err_t mcpwm_carrier_set_period(mcpwm_unit_t mcpwm_num, mcpwm_timer_t timer_num

本文介绍ESP32中MCPWM载波模块的使用方法,包括关键函数说明及示例程序。载波模块主要用于通过变压器隔离PWM输出信号与驱动器,通过高频载波调制PWM信号。

4864

被折叠的 条评论
为什么被折叠?



