为什么不是同频率呢?

[复制链接]
622|12
 楼主| shimx 发表于 2016-8-20 18:23 | 显示全部楼层 |阅读模式
PWM, se, hz, kd, os
让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,为什么不是同频率呢?
huangchui 发表于 2016-8-20 18:24 | 显示全部楼层
例程上的例子是这么设置的?
 楼主| shimx 发表于 2016-8-20 18:25 | 显示全部楼层
嗯,只不过相位相同?
jiajs 发表于 2016-8-20 18:28 | 显示全部楼层
在EPWM2中同样需要设置分频,加上这两句就好了
EPwm2Regs.TBCTL.bit.HSPCLKDIV = 2;
EPwm2Regs.TBCTL.bit.CLKDIV = 2;
zhanghqi 发表于 2016-8-20 18:28 | 显示全部楼层
是啊,毕竟EPwm1Regs.TBCTL.bit.HSPCLKDIV 、EPwm1Regs.TBCTL.bit.CLKDIV    两个位都是属于EPWM1的,挺容易忘记
zhenykun 发表于 2016-8-20 18:29 | 显示全部楼层
2000的EPWM多路之间真的蛮独立的。
 楼主| shimx 发表于 2016-8-20 18:30 | 显示全部楼层
果然是,真乃大神啊
jlyuan 发表于 2016-8-20 18:31 | 显示全部楼层
我也正在写这方面的程序。但是想问一下楼主,楼主在实现的时候,是不是在epwm中断程序中加了EPwm2Regs.TBCTL.bit.SWFSYNC=1这样一句话,强制有一次同步信号,使相位寄存器能够加载。
dengdc 发表于 2016-8-20 18:33 | 显示全部楼层
哦,楼上也是一样的问题?
jlyuan 发表于 2016-8-20 18:34 | 显示全部楼层
我也是按照楼主这样写的,但相位还是一样
 楼主| shimx 发表于 2016-8-20 18:34 | 显示全部楼层
结贴了,多谢大家讨论这么多哈,呵呵
309030 发表于 2016-8-20 21:57 | 显示全部楼层
EPwm2Regs.TBCTL.bit.HSPCLKDIV = 2;
EPwm2Regs.TBCTL.bit.CLKDIV = 2;
baimiaocun2015 发表于 2016-8-21 14:10 | 显示全部楼层
这两个时钟源是相同的还是?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

857

主题

10661

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部