Part Number:TMS320F28035
看上面图应该是在COMPSTS置1处,RAMPSTS会载入RAMPMAXREF值,但是调试的现象是COMP置1后,RAMPSTS会保持计数到的值不变,到下一个PWMSYNC到来之后继续计数,
EALLOW;// 比较器和DAC使能;Comp1Regs.COMPCTL.bit.COMPDACEN = 1;Comp1Regs.RAMPMAXREF_SHDW = 0xfff0;Comp1Regs.RAMPDECVAL_SHDW = 0x0100;// 0:COMP-链接内部DAC模块 1:链接外部引脚Comp1Regs.COMPCTL.bit.COMPSOURCE = 0;// 1:内部DAC:由 RAMPSTS 寄存器控制; 0:DAC由 DACVAL 寄存器控制Comp1Regs.DACCTL.bit.DACSOURCE = 1;//PWMSYNC1 is the source syncRAMPSOURCE+1Comp1Regs.DACCTL.bit.RAMPSOURCE = 0;Comp1Regs.DACCTL.bit.FREE_SOFT =0;// Synchronized value of comparator is passed throughComp1Regs.COMPCTL.bit.QUALSEL = 5;//0:Asynchronous version of Comparator output is passed//1:Synchronous version of Comparator output is passedComp1Regs.COMPCTL.bit.SYNCSEL=0;// 输出信号反转;COMP+>COMP-,输出高电平;反之,输出低;Comp1Regs.COMPCTL.bit.CMPINV = 0;EDIS;
希望大佬帮忙给看看是哪配置的问题
Green Deng:
你好,抱歉对这个模块不太熟悉,我会将你的问题升级到英文E2E,有回复会更新到这边。
,
zhiyong liu:
好的,谢谢
,
Green Deng:
目前还没回复,还请耐心等待
,
Green Deng:
我没有看到附加配置有任何问题。你提到“RAMPSTS会保持计数到的值不变”,你的意思是没有看到它进入 RAMPMAXREF 值?此外,当它对下一个 PWMSYNC 进行计数时,它会重置为 RAMPMAXREF 并开始计数,还是继续从前一个值开始计数?
是否可以在 PWMSYNC 脉冲旁边检查比较器的输出?对于 PWMSYNC 脉冲,可以只监控相应的 EPWM 输出。HRPCTL 寄存器的 PWMSYNCSEL 位设置为什么?默认情况下,PWMSYNC 由 TBCTR = PRD 脉冲生成。如果是这种情况,请在 TBCTR=PRD 时执行 AQ 操作。可以在 TBCTR=PRD 时切换输出。如果你无法更改配置,可以使用相同的时基设置设置另一个 EPWM 模块,并在一个范围内监控该 EPWM 模块。
,
zhiyong liu:
对,没看到进入RAMPMAXREF值,在COMPSTS变为1后,继续单步运行,RAMPSTS会保持之前计数到的值,COMPSTS也一直保持1;不像图上标识的那样,RAMPSTS在COMPSTS上升沿,置为RAMPMAXREF,COMPSTS也在几个系统周期之后置为0;
配置
EPwm1Regs.HRPCTL.bit.PWMSYNCSEL=0;PWMSYNC在TBCTR=PRD时生成
有的时候是在下一个PWMSYNC,RAMPSTS继续从上一个计数到的值下降。有的时候是从RAMPMAXREF开始计数;
由TBCTR=ZRO时AQ,改为TBCTR=PRD时AQ现象一样。
另外对于您说的这两句话是否可以在 PWMSYNC 脉冲旁边检查比较器的输出?如果你无法更改配置,可以使用相同的时基设置设置另一个 EPWM 模块,并在一个范围内监控该 EPWM 模块。不太理解
,
Green Deng:
收到,已经反馈过去了
,
Green Deng:
zhiyong liu 说:在COMPSTS变为1后,继续单步运行,RAMPSTS会保持之前计数到的值,COMPSTS也一直保持1;
之后COMPSTS总是1吗?我想知道单步操作是否会影响行为。能否看一下正常运行应用程序,并在启用“Continuous Refresh”的情况下监视表达式窗口,并查看COMPSTS是否更改?
zhiyong liu 说:由TBCTR=ZRO时AQ,改为TBCTR=PRD时AQ现象一样。
这里的意思其实是,我希望看到一个范围内的输出,如果 (EPwm1Regs.HRPCTL.bit.PWMSYNCSEL=0;) 那么我希望看到一个示波器捕获,其中清楚地指示 TBCTR=PRD 事件以及比较器输出。 可以设置 AQ 操作以在 TBCTR=PRD 时切换输出并检查示波器上的 EPWMxA。
在同一范围捕获中,监视comp1输出。如果COMPSTS始终为1,我们应该检查范围中的comp1以确认此行为。