This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

带死区功能的PWM组怎同时关闭、开启PWM输出

Other Parts Discussed in Thread: C2000WARE

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的大侠们,怎样做才是正常安全便捷的呢?

谢谢!

  • 我认为配置TZ模块是最可靠的,从原理上讲也是最符合逻辑的。用TZ模块的CBC模式,给个触发源就关断PWM,触发源消失就恢复PWM。
    TZ模块TI有提供例程的,我不知道你用的是哪款芯片,可以在下面的路径里面找到你的芯片对应的例程:
    C:\ti\c2000\C2000Ware_3_01_00_00\device_support
  • Hi:
    Green Deng,CBC模式下,Software-forced trip事件在下个周期就会被自动清除。不能一直处于我想要的关机状态。
  • 不会啊,EPwm1Regs.TZFRC.bit.CBC = 1;只要你不清零,它一直都是使能的,怎么会自动清除
    另外注意这个寄存器是EALLOW保护的。
  • 我使用的是280049,相信其他系列DSP功能也类似:

    而且EPwm1Regs.TZFRC.bit.CBC这个信号是不能手动清零的:

    说以这个信号是自动清除的

  • 我觉得图2中的这句话并不是说这个bit会自动清除的意思,而是说读取这个bit会返回0。如果是自动清除的位,会写明“automatically cleared”
  • 图二是告诉你,这个bit只能写1,写1是强制产生一个Trip时间;但是写0是无意义的。那么这个事件是怎么清除的呢(不可能一直保持在那那里),就是通过图一的描述来清除的。建议你把这一章节仔细阅读一下。
  • 感谢你的指导,我会再好好研读一下这部分内容。
    另外,不知道你的问题解决了没有?如果没有的话建议可以去E2E英文论坛上咨询一下:e2e.ti.com/.../171
  • 后来我仔细测试过了,280049使用Trip的CBC和OSHT两种模式下的操作方式:
    CBC模式:
    关机条件(PWMA、PWMB都输出低):利用EPwm1Regs.TZFRC.bit.CBC = 1;产生Trip事件,关键是在这之前先通过
    EPwm1Regs.TZCLR.bit.CBCPULSE = 3; 禁止Trip事件自动清零条件,这样就不会被
    自动清除(上面已经谈到这一点)。
    而且这个配置只有在280049上才有,其他系列是不能配置的,每个周期Trip
    事件都会被自动清除。
    开机条件(PWM回复死区互补输出): 配置EPwm1Regs.TZCLR.bit.CBCPULSE = 0 、1、2;使Trip事件被自动清除。

    OSTH模式:
    关机条件(PWMA、PWMB都输出低):利用EPwm1Regs.TZFRC.bit.OST = 1;产生Trip事件。
    开机条件(PWM回复死区互补输出):利用EPwm1Regs.TZCLR.bit.OST = 1;清除Trip事件。(该模式下只能手动清楚)

    总结:280049DSP两种模式都可以做到,但是OSTH模式更简洁,也更合理;
    C2000 其他DSP不能使用CBC模式,只能使用OSTH模式。
  • 非常感谢你的反馈!