打印

EPWM同频率输出的问题

[复制链接]
3279|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lijinpeng90|  楼主 | 2013-7-12 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
让EPWM1和EPWM2以相同的频率输出,只是前后相位不同,EPWM1主要设置如下(频率为100Hz)
        EPwm1Regs.TBPRD = 18750;
        EPwm1Regs.TBPHS.half.TBPHS = 0;
        EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
        EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
        EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
        EPwm1Regs.TBCTL.bit.SYNCOSEL =TB_CTR_ZERO;

        EPwm1Regs.TBCTL.bit.HSPCLKDIV = 2;
        EPwm1Regs.TBCTL.bit.CLKDIV = 2;   

        EPwm1Regs.CMPA.half.CMPA = 12500;
        EPwm1Regs.CMPB = 6250;
EPWM2的主要设置如下:
        EPwm2Regs.TBPRD = 18750;
        EPwm2Regs.TBPHS.half.TBPHS = 12500;                 
        EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
        EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;               //使能PHASE寄存器
        EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW;
        EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;

        EPwm2Regs.CMPA.half.CMPA = 12500;
        EPwm2Regs.CMPB = 6250;
为什么EPWM2的输出频率是800Hz,为什么不是同频率呢?例程上的例子是这么设置的,只不过相位相同?求教导!!!

相关帖子

沙发
lijinpeng90|  楼主 | 2013-7-12 10:59 | 只看该作者
明白了,自问自答哦吧,在EPWM2中同样需要设置分频,加上这两句就好了
EPwm2Regs.TBCTL.bit.HSPCLKDIV = 2;
EPwm2Regs.TBCTL.bit.CLKDIV = 2;

使用特权

评论回复
板凳
zhangmangui| | 2013-7-12 12:16 | 只看该作者
lijinpeng90 发表于 2013-7-12 10:59
明白了,自问自答哦吧,在EPWM2中同样需要设置分频,加上这两句就好了
EPwm2Regs.TBCTL.bit.HSPCLKDIV = 2; ...

好  问题解决了  那就感谢分享
支持你原创精华贴   赢大奖

使用特权

评论回复
地板
独孤求败2030| | 2013-7-12 15:54 | 只看该作者
是啊,毕竟EPwm1Regs.TBCTL.bit.HSPCLKDIV 、EPwm1Regs.TBCTL.bit.CLKDIV    两个位都是属于EPWM1的,挺容易忘记。2000的EPWM多路之间真的蛮独立的。

使用特权

评论回复
5
shanhaijing| | 2013-7-29 21:25 | 只看该作者
好贴,我也正在写这方面的程序。但是想问一下楼主,楼主在实现的时候,是不是在epwm中断程序中加了EPwm2Regs.TBCTL.bit.SWFSYNC=1这样一句话,强制有一次同步信号,使相位寄存器能够加载。因为我也是按照楼主这样写的,但相位还是一样

使用特权

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

本版积分规则

25

主题

65

帖子

1

粉丝