这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 【CH582M】CH582M的PWM控制器示例1-交错模式

共1条 1/1 1 跳转至

【CH582M】CH582M的PWM控制器示例1-交错模式

专家
2026-09-11 11:45:24     打赏

使用CH582M单片机的PWM控制器,在交错模式下,PWM4和PWM5、PWM6和PWM7、PWM8和PWM9、PWM10和PWM11为交错方式工作。作为例子,我们这里只测试PWM4和PWM5、PWM6和PWM7、PWM8和PWM9。因为PWM10对应的GPIO已经被下载器使用了。另外,作为对比PWM6和PWM7不用交替模式,而是依旧使用各自单独工作的模式,

#include "CH58x_common.h"
/*********************************************************************
 * @fn      main
 *
 * @brief   主函数
 *
 * @return  none
 */
int main() {
    SetSysClock(CLK_SOURCE_PLL_60MHz);              // 系统时钟频率:60MHz
    /* 配置GPIO */
    GPIOA_ModeCfg(GPIO_Pin_12, GPIO_ModeOut_PP_5mA); // PA12 - PWM4
    GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA); // PA13 - PWM5
    GPIOB_ModeCfg(GPIO_Pin_0, GPIO_ModeOut_PP_5mA);  // PB0 - PWM6
    GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA);  // PB4 - PWM7
    GPIOB_ModeCfg(GPIO_Pin_6, GPIO_ModeOut_PP_5mA);  // PB6 - PWM8
    GPIOB_ModeCfg(GPIO_Pin_7, GPIO_ModeOut_PP_5mA);  // PB7 - PWM9
    GPIOB_ModeCfg(GPIO_Pin_23, GPIO_ModeOut_PP_5mA); // PB23 - PWM11
    // 时钟分频寄存器(R8_PWM_CLOCK_DIV) 
    PWMX_CLKCfg(60);                                   // PWM的时钟频率 cycle = Fsys/60 = 1MHz,周期1μs
    // 配置控制寄存器(R8_PWM_CONFIG)
    PWMX_CycleCfg(PWMX_Cycle_256);                     // 周期 = 256*cycle,即PWM波的周期为 256 * 1μs = 256μs
    // 交错模式下
    PWMX_AlterOutCfg(RB_PWM4_5_STAG_EN, ENABLE);
    PWMX_AlterOutCfg(RB_PWM6_7_STAG_EN, DISABLE);
    PWMX_AlterOutCfg(RB_PWM8_9_STAG_EN, ENABLE);
    // 配置 占空比
    PWMX_ACTOUT(CH_PWM4, 128, High_Level, ENABLE);  
    PWMX_ACTOUT(CH_PWM5, 128, High_Level, ENABLE);  
    PWMX_ACTOUT(CH_PWM6, 64, High_Level, ENABLE);  
    PWMX_ACTOUT(CH_PWM7, 64, High_Level, ENABLE);  
    PWMX_ACTOUT(CH_PWM8, 32, High_Level, ENABLE);  
    PWMX_ACTOUT(CH_PWM9, 32, High_Level, ENABLE);  
    while(1) {
    }
}

逻辑分析仪获得的波形(PWM4 - CH0, PWM5 - CH1, PWM6 -CH2,PWM7- CH3, PWM8- CH4,PWM- ):

image.png

可以看到 PWM4 和 PWM5 、PWM8 和PWM9 的高电平交替输出。而PWM6和PWM7是同步输出的。

如果上级代码中 的 PWM5 的 参数由 High_Level 改为 Low_Level ,则输出变成:

image.png

因此交替模式下,交替双方是可以单独控制输出极性的。

由测量出来的波形来看,交错模式相当于交替输出,而不是我们习以为常的那种硬件互补输出方式,也不存在死区控制,因此,如果你需要的是用于电机驱动的严格互补 PWM(带死区),CH582M 可不是最佳选择。





关键词: CH582M     PWM    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]