打印
[学习笔记]

ATC芯片生成PWM波形——一路的上升沿对齐另一路的下降沿

[复制链接]
1776|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 wangjj19950516 于 2021-5-6 14:20 编辑

如题,最近有客户有这样一个需求:需要做PWM输出,要求2路输出可独立控制占空比,但一路的上升沿与另一路的下降沿对齐。
这个要求通过配置PWM模块是可以实现的,下面简单讲一下原理:

1.首先,两路输出需要独立控制占空比,则应设置为PWM输出的独立模式;
   其次,两路的一个边沿要在任何情况下都要对齐,则应选择向上计数模式,每次在初始时刻对齐边沿
   最后,一路的上升沿对齐另一路的下降沿,则这两路的极性应设置为相反。
下图显示了边沿对齐的PWM配置不同极性后输出的波形,计数器从CNTIN开始向上计数,当与设置的最大计数值MCVR匹配时,则完成了一个周期,重新从CNTIN开始计数,CHnV用于控制占空比。
       当设置为高有效时,从初始时刻开始,该通道输出高电平,直到计数值与CHnV匹配,则将输出拉低,占空比为(2+1)/(4+1) = 60%.
       当设置为低有效时,从初始时刻开始,该通道输出低电平,直到计数值与CHnV匹配,则将输出拉高,占空比为1-(2=1)/(4+1)= 40%.


2.程序配置
void PWM_GPIO_Config(void)
{
    GPIO_SetFunc(GPIOB, GPIO_PIN5, GPIO_FUN1);//PWM1_CH0
    GPIO_SetFunc(GPIOB, GPIO_PIN4, GPIO_FUN1);//PWM1_CH1        
}
void PWM_Config(void)
{
    PWM_SimplyConfigType SimplyConfig;
    memset(&SimplyConfig, 0, sizeof(SimplyConfig));
        
        
    SimplyConfig.allChCombineMode       = PWM_INDEPENDENT_MODE; //独立模式
    SimplyConfig.countMode              = PWM_UP_COUNT; //向上计数,边沿对齐
   
    /* PWM_CLK_SOURCE_BUS */
    SimplyConfig.clkSource              = PWM_CLK_SOURCE_APB; //PWM模块时钟源选择APB时钟,24MHZ
    SimplyConfig.clkPsc                 = 0; //时钟分频系数
    SimplyConfig.initValue              = 0;//初始计数值
    SimplyConfig.maxValue               = 24000;//最大计数值,决定频率。24M/maxValue = 24000000/24000 = 1000HZ
    SimplyConfig.chValue[0]             = 10000;//通道0匹配值
    SimplyConfig.chValue[1]             = 20000;//通道1匹配值
   
    SimplyConfig.interruptEn            = DISABLE;
    SimplyConfig.callBack               = NULL;
    PWM_SimplyInit(PWM1, &SimplyConfig);
    PWM_SetChannelELSR(PWM1, PWM_CH_0, PWM_HIGH_TRUE);//通道0极性为高有效
    PWM_SetChannelELSR(PWM1, PWM_CH_1, PWM_LOW_TRUE);//通道1极性为低有效

}
int main(void)
{
        PWM_GPIO_Config();
        PWM_Config();
        
        while(1)
        {
               
        }
}
生成波形如下图:黄色为PWM_CH0,绿色为PWM_CH1.可以看出CH0的上升沿与CH1的下降沿对齐

如果需要不同的对齐边沿,可以修改通道的极性来实现,可以为相同的极性,也可为不同的极性。

附上调试代码: PWM_上升沿对齐下降沿.rar (1.61 MB)

使用特权

评论回复

相关帖子

沙发
weifeng90| | 2021-5-7 19:18 | 只看该作者
谢谢楼主的分享

使用特权

评论回复
板凳
单片小菜| | 2021-5-7 22:52 | 只看该作者
这个是软件看的吗?

使用特权

评论回复
地板
嵌入小菜菜| | 2021-5-7 23:51 | 只看该作者
感谢楼主的分享,持续关注中。不错的帖子。

使用特权

评论回复
5
wangjj19950516|  楼主 | 2021-5-8 14:00 | 只看该作者
单片小菜 发表于 2021-5-7 22:52
这个是软件看的吗?

看输出波形呀,理解原理之后就看的更明白了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

86

帖子

2

粉丝