esp32外设使用-MCPWM载波模块使用

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

实战派 ESP32-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

esp32外设使用-MCPWM载波模块使用

概述

载波模块主要用在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-S3,双模无线开发板

ESP32-S3 原生支持 ESP-IDF,WiFi + 蓝牙一次搞定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值