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.

[参考译文] TMS320F28335:基于 ADC 上的电压反馈关闭 ePWM 模块。

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/978736/tms320f28335-turning-off-epwm-module-based-on-voltage-feedback-at-adc

器件型号:TMS320F28335

我尝试从 F28335同时运行三相逆变器和双有源电桥转换器(DAB)。 对于逆变器、我将执行触发序列并将该字发送到 GPIO 引脚进行触发。 对于 DAB、我使用 ePWM 模块1和2来获得两对复杂脉冲、但是、根据特定的输出电压反馈(VDF)、我需要关闭 DAB、即 EPWM1A、  EPWM1B、 EPWM2A、 EPWM2B 全部应为零。 我正在尝试使用 操作限定符连续软件强制寄存器(AQCSFRC)来实现此目的。 但是、我看到 EPWMxA 和 EPWMxB 仍然是一个复杂的过程。 我无法将这两个电压一起强制为零。  

我使用以下代码。 逻辑是、如果<vdf<295. 为3、ePWM 模块应该关闭

如果(VDF > 295)
{EPwm1Regs.AQCSFRC.ALL = 0x00; //禁用强制、即无效
EPwm2Regs.AQCSFRC.ALL = 0x00;}  //强制禁用、即无效


否则(VDF< 255)
{EPwm1Regs.AQCSFRC.ALL = 0x00;  //禁用强制、即无效
EPwm2Regs.AQCSFRC.ALL = 0x00;}  //强制禁用、即无效


其他
{EPwm1Regs.AQCSFRC.ALL = 0x05;   //关闭 EPWM1A 和 EPWM1B
EPwm2Regs.AQCSFRC.ALL = 0x05;}  //关闭 EPWM2A 和 EPWM2B

 

我有什么问题吗? 最好使用跳闸区域模块。 我不知道如何根据电压反馈来配置跳闸区域。 我们非常感谢您在这方面提供的帮助!  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好!

    我建议查看 F283xx TRM 中标记为"时基子模块方框图"的图。  在其中、您将注意到"去带"子模块位于"操作限定符"之后。  这意味着死区将始终尝试添加。

    您还将注意到跳闸区域子模块恰好在 PWM 信号输出之前。  

    我建议您研究 TZ。  您可以根据软件中的条件强制跳闸(TZFRC)、也可以通过软件清除跳闸条件。


    谢谢、
    Brett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dwijasish、

    Brett 的回答是正确的。 请查看图。 每个模块依次影响 PWM 输出、直到到达 GPIO 引脚。

    由于 DB 始终创建 AQ 发送给它的互补对、因此当 DB 配置为互补模式时、AQ 软件强制不能用于强制为低电平。

    请使用跳闸区域来实现此目的。

    此致、
    Cody  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Brett 和 Cody、

    感谢您在这方面的帮助。 我确实意识到、我必须使用 TZ 子模块来根据我的需要操作系统。 我浏览了 ePWM 的参考指南、并了解了如何通过软件强制 ePWM 输出。 我使 TZFRC 1关闭 ePWM 模块、并在需要启动 ePWM 时再次使 TZCLR 位为高电平。 代码如下所示。

    如果(VDF < 255)
    {EALLOW;
    EPwm1Regs.TZCLR.bit.OST = 1;
    EPwm2Regs.TZCLR.bit.OST = 1;
    EDIS;}


    否则(VDF > 255 & VDF < 295)
    {EALLOW;
    EPwm1Regs.TZFRC.bit.OST = 1;
    EPwm2Regs.TZFRC.bit.OST = 1;
    EDIS;}


    否则(VDF > 295)
    {EALLOW;
    EPwm1Regs.TZCLR.bit.OST = 1;
    EPwm2Regs.TZCLR.bit.OST = 1;
    EDIS;}

    此致、

    Dwijasish