Hi:
我使用一组带死区功能的PWMA和PWMB来控制一个桥臂的上下管,
正常工作时:希望PWMA和PWMB输出为互补的波形(一个周期内除死区外一高一低)
关机时:希望PWMA和PWMB输出都为低。
请问,我要是用什么方法来让PWMA和PWMB实现“正常工作”和“关机”两种状态的切换的呢?不用考虑周期,占空比这些配制,只考虑开关。
我使用了一些方法,但是我觉得都不正统:
1)关机时关掉死区功能,AQCTLA、AQCTLB配置输出为低;开机时开启死区功能,用原有配置输出互补波形。
2)关机时修改DBRED、DBFED值大于PRD值,使PWM输出不能置高;开机时DBRED、DBFED值修改为正常值,输出正常互补波形。
3)关机时利用Software-forced trip功能使PWM输出低,开机时去掉Software-forced tripping功能,输出正常互补波形。(这个功能需要Trip模块配置,麻烦)
我觉得最好的是可以AQCSFRC continuous S/W force的功能强制A和B为低,但是这个模块在死区模块之前。导致输出还是按照死区设定输出(高低互补形式),所以不可以啦。
TI的大侠们,怎样做才是正常安全便捷的呢?
谢谢!
Green Deng:
我认为配置TZ模块是最可靠的,从原理上讲也是最符合逻辑的。用TZ模块的CBC模式,给个触发源就关断PWM,触发源消失就恢复PWM。
TZ模块TI有提供例程的,我不知道你用的是哪款芯片,可以在下面的路径里面找到你的芯片对应的例程:
C:\ti\c2000\C2000Ware_3_01_00_00\device_support
Aiden:
回复 Green Deng:
Hi:
Green Deng,CBC模式下,Software-forced trip事件在下个周期就会被自动清除。不能一直处于我想要的关机状态。
Green Deng:
回复 Aiden:
不会啊,EPwm1Regs.TZFRC.bit.CBC = 1;只要你不清零,它一直都是使能的,怎么会自动清除
另外注意这个寄存器是EALLOW保护的。
Aiden:
回复 Green Deng:
我使用的是280049,相信其他系列DSP功能也类似:
而且EPwm1Regs.TZFRC.bit.CBC这个信号是不能手动清零的:
说以这个信号是自动清除的
Green Deng:
回复 Aiden:
我觉得图2中的这句话并不是说这个bit会自动清除的意思,而是说读取这个bit会返回0。如果是自动清除的位,会写明“automatically cleared”
Aiden:
回复 Green Deng:
图二是告诉你,这个bit只能写1,写1是强制产生一个Trip时间;但是写0是无意义的。那么这个事件是怎么清除的呢(不可能一直保持在那那里),就是通过图一的描述来清除的。建议你把这一章节仔细阅读一下。
Green Deng:
回复 Aiden:
感谢你的指导,我会再好好研读一下这部分内容。
另外,不知道你的问题解决了没有?如果没有的话建议可以去E2E英文论坛上咨询一下:e2e.ti.com/…/171
Green Deng:
回复 Aiden:
非常感谢你的反馈!