Part Number:TMS320F28335
PWM模块计数到0触发中断到进入中断程序的延时是多少?级联H桥进行载波移相时需要对不同的PWM模块载波进行移相,每个PWM模块如果都采用计数到0进行装载比较值的话,移相后一个周期会出现前后两个周期环路计算的比较值,如果采用一个PWM1模块作为基准,用PWM1模块计数到0触发中断立即配置PWM2/3…的比较值后进行环路运算,来规避PWM2/3…在周期中间加载比较值的问题,但是不知道PWM触发到进入中断的延时是多少
Yale Li:
您好,您有使用TB模块的同步功能吗?
,
haihong long:
您好!使用了TB时基计数器的同步功能,不同的PWM在同步事件到来时,计数器根据相位装载不同的移相值,不同的PWM模块在同步事件时刻计数值的起始不一致,比较值如果采用影子模式,在计数器到0或者周期值时加载,那么不同移相角的PWM模块比较值装载到活动寄存器的时刻就会不一致,就会造成一个周期内有两个不同比较值的情况吧?但是28335没有发现有在同步事件发生时刻将所有同步PWM模块的比较值进行装载的模式,请问有其他解决办法吗?
,
Yale Li:
您实际测试过吗?
我觉得并不会发生您说的情况。
所有ePWM模块可以在TBCTR = 0时装载影子寄存器的值(包括周期值,比较值);
同步信号可以在TBCTR = 0时从基准的ePWM模块输出,需要移相的ePWM模块在收到信号时便会装载移相值。
,
haihong long:
您说的移相值是在同步信号到来的时候进行装载,所有的PWM都能同时移相到设定的移相值,可是比较值不是在同步信号到了的时候进行装载,比较值是在每个PWM的TBCTR=0或者周期值时装载,同步信号到来以后这个TBCTR的值是移相值,比如所有PWM的周期是300,PWM2相对PWM1的移相值为100,那么同步信号达到,PWM2从100减计数到0时刻才会装载比较值,但是PWM1在同步信号达到的时候就装载了比较值
,
Yale Li:
Yale Li 说:同步信号可以在TBCTR = 0时从基准的ePWM模块输出
,
haihong long:
您说的同步信号的输出是没有问题的,我一直说的是不同模块的比较值CMPA/B装载不能在同步信号到来时进行装载的问题,上面的例子,PWM1,PWM2的周期都是300,PWM1同步信号输出采用直接输出同步信号输入,保证PWM1和PWM2同时接收到同步信号,然后PWM1不移相,PWM2相对PWM1移相100,这个时候如果是增减计数模式,那么PWM1就是从0开始增计数,PWM1在0处进行装载它的比较值CMPA/B,但是PWM2是从100开始减计数到0,延时了100个时钟以后才能装载它的比较值CMPA/B,这样在载波移相的工况下就会出现一个周期时间内,PWM1和PWM2装载的比较值时间相差较大,有没有能够实现在同步信号到来时,PWM1和PWM2能够同步进行装载比较值的实现方式
,
Yale Li:
我理解您的意思,我实验之后再回复您
,
haihong long:
您可以用两个差异较大的比较值在相邻的两个周期进行交替反复的装载验证这个问题,谢谢,期待您的解答。
,
Yale Li:
好的,我可能会稍晚一点回复您,不过有了结果我会第一时间回复
,
Yale Li:
非常抱歉,回复您晚了。
确实会出现您说的问题,这篇文章做了非常详细的总结,您可以看一下:详细总结EPWM模块之间的同步
但是TMS320F28335并不支持里面所描述的新特性。
不同类型的ePWM:
(spru566o_C2000 Real-Time Control Peripheral Reference Guide (Rev. O)P43 : 3.3.7 Enhanced Pulse Width Modulator (ePWM) Module : Table 3-28. Enhanced Pulse Width Modulator (ePWM) Module Type Description)
我也向资深工程师进行了咨询,他们认为最好的解决方法就是使用支持新特性的设备
,
haihong long:
谢谢,如果要解决这个问题那就只能换性能更好的C2000DSP了,看了28377D是更新了同步信号时刻进行装载的功能,应该是你说的换个类型的PWM。
,
Yale Li:
是的
,
haihong long:
感谢您不厌其烦的回复,也希望这个帖子对于后面想做载波移相的人一个参考,同时希望后面看到这个帖子的做过载波移相的优秀工程师回复这个帖子说说你们的方案,谢谢!
,
Yale Li:
您客气了,应该的