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.

[参考译文] TMS320F280041C:如何在过流保护后实现延迟关断?

Guru**** 2513185 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1247984/tms320f280041c-how-to-achieve-a-delayed-shutdown-after-a-over-current-protection

器件型号:TMS320F280041C

您好、专家:

   我的产品是 DC-DC 转换器、由于温度高、会出现电感饱和现象、最终带来过流保护、但是这次如果 MOS 关断会造成 MOS

超过阈值的关断应力并造成损坏。 我想问专家如何在触发保护后实现延迟关断、换句话说、当电感电流为零时、关闭 MOS 驱动器

实现软关断、然后确保 MOS 管不会损坏。


   最后、我还想了解一下通过 TZ 寄存器关闭 MOS 和通过 AQ 寄存器关闭 MOS 之间的区别、例如:

   EPwm4Regs.TZFRC.bit.OST =1;

   和 EPwm48Regs AQCSFRC。 位 CSFA = AQFRC_LOW;

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

    尊敬的 Feng:

    当您说您想要实现软关断时、您是说您是想逐渐减小 ePWM 输出的占空比直到达到零? 如果是、唯一的方法是通过软件、也可以通过在每个周期写入 CMPA 或 CMPB 值、每次减小该值来实现。

    TZ OST 力和动作限定符力的区别在于 TZFRC 是永久的、除非通过 TZCLR 寄存器清除。 动作限定器的作用力会立即改变输出的状态,但当发生下一个动作限定器事件时,输出会再次改变。  跳闸区域模块会完全覆盖输出、以便在跳闸清除之前没有像动作限定器这样的 ePWM 子模块可以控制输出。

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

    您好,Jones,
    ,您的反馈 μ F、我的意思是我想在下一个周期开始时立即关闭 ePWM 输出、因为已经发生了过流故障、例如此周期中的过流故障触发了 TZ 中断、 但我需要在下一个周期开始时立即关闭 PWM 输出、因为谐振电感器的电流此时仅为零电流。 此时、MOS 应力最小。
    第二个问题是 TZ 和 AQ 寄存器是执行以下语句以立即关闭 PWM、还是可以将它们配置为在下一个周期开始时执行。

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

    尊敬的 Feng:

    动作限定器模块可用于通过以下两种方式之一使 PWM 输出清零:

    1) 1)如果您的 PWM 输出在0时被清除并在 CMPA 或 CMPB 上设置、您可以向 CMPA/CMPB 寄存器写入0值。 只要您在 TBCTR=0上影子加载 CMPA/CMPB 寄存器、这将导致输出在下一个周期的开始被清除、并保持清除状态、直到您再次修改 CMPA/CMPB 值。

    2) 2)如果 PWM 输出设置为0并在 CMPA 或 CMPB 上清除、则可以更改动作限定器设置以清除0上的输出。 为此、我建议不要对控制 TBCTR = 0上的动作限定器事件的动作限定器寄存器使用影子加载。 这将导致输出在下一个周期于 CTR=0时被清除、并保持清除状态、直到您配置 TBCTR=0以重新设置 PWM 输出。

    如果您有任何其他问题、请告诉我。

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

    您好,Jones,
      感谢您的反馈。  这就是说 、使用"将0值写入 CMPA/CMPB 寄存器。 只要您在 TBCTR=0上影子加载 CMPA/CMPB 寄存器"是最好的方法?

      如果我使用 TZ 中断函数等待 TBCTR =去分析时间来关闭 PWM 的时间。  例如:

    中断失效 epwm4_tz_isr (void)
    {
    静态 Uint16解算时间= 0;
    Dealytime=(UINT16)(D2DParas.RunPrd*0.5);
    while ((EPwm6Regs.TBCTR <=(dealytime+10))&&(EPwm6Regs.TBCTR >=(dealytime-10)))
    {
      EPwm6Regs.TZFRC.bit.OST = 1;
      EPwm7Regs.TZFRC.bit.OST = 1;

    EALLOW;
    Cmpss7Regs.COMPSTSCLR.bit.HLATCHCLR = 1;
    EDIS;
    PieCtrlRegs.PIEACK.ACK.ACK2 = 1;

    正确与否?

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

    尊敬的 Feng:

    是的,这是我的意思。 如果希望输出在下一个周期开始时关断、我建议使用 CMPA 值0。 但是、如果对 CMPA 寄存器的写入可能发生在 TBCTR = 0之前或之时、如果您在 TBCTR=0上影子加载 CMPA、则存在100%占空比的风险。 如果使用向上计数模式、则可以通过在 TBCTR=PRD 上加载 CMPA 来避免这种风险。

    为了阐明您  对 ISR 的疑问、以下代码是否打算替换为对 CMPA 寄存器的写入?

    EPwm6Regs.TZFRC.bit.OST = 1;
    EPwm7Regs.TZFRC.bit.OST = 1;

    谢谢!

    卢克