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.

[参考译文] TMS320F28379D:用于生成互补输出的 sysconfig ePWM 设置

Guru**** 2595805 points
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1085591/tms320f28379d-sysconfig-epwm-settings-for-generating-complementary-output

部件号:TMS320F28379D
“线程:sysconfigC2000WARE”中讨论的其它部件

我想使用 sysconfig ePWM 功能生成带死区的互补输出。 我根据自己的理解进行了设置,但输出不会在互补模式下生成,尽管输出之间有一些死区。 我已经设置了20 KHz 输出,2 usec 死区用于上升边缘和下降边缘延迟。 EPWM1A (黄色)和 EPWM1B (蓝色)上生成的输出如下所示:

sysconfig 工具的设置如下所示:

请告诉我,上述配置有什么问题,以及如何修复。

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

    您是否尝试使用死区或反向操作来反转?

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

    我想使用更安全的方法,因为这些方法会驱动半桥,因此两个输出的逻辑都不可能同时处于高位。 请建议正确的方法。

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

    然后我会使用 ePWM 死区模块。这会阻止 HW 中的信号在这些情况下发出信号。

    您可以在 ePWM 文件夹中查看 ePWM 死区示例吗?

    这是一个例子: dev.ti.com/.../node

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

    实际上,我打算通过 sysconfig 工具执行此操作。 您在我发送的设置中发现了问题吗? 我将在明天回到办公室时研究您推荐的示例。

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

    示例基于 sysconfig 构建! 这是我们最新的 SDK C2000WARE 4.01版

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

    Nima Eskandari 您好,

    事实上,在将此问题写入此门户之前,我已经探索了 ePWM_EX8_d死 区。 我观察到,在本例中,时间基,死区模式和动作限定符等都是手动编程的。  在该示例中,通过 sysconfig 工具似乎没有为 ePWM 时间基,计数器比较和操作限定符等设置。  在研究代码中的配置后,已完成以下设置以获得死区输出。 我已验证输出与死区是互补的。 请查看这些设置是否正常。  

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

    您的设置看起来不错!  

    唯一的问题是:

    您不希望下降边缘延迟输入为:"输入信号是上升边缘延迟的输出"?

    NIMA

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

    我在尝试您的建议时遇到以下错误:

    此外,在您的示例代码中,ePWMA 被设置为上升边缘延迟和下降边缘延迟的来源:

    void setupEPWMActiveHighComplementary(uint32_t base)
    {
        //
        // Use EPWMA as the input for both RED and FED
        //
        EPWM_setRisingEdgeDeadBandDelayInput(base, EPWM_DB_INPUT_EPWMA);
        EPWM_setFallingEdgeDeadBandDelayInput(base, EPWM_DB_INPUT_EPWMA);
    
        //
        // Set the RED and FED values
        //
        EPWM_setFallingEdgeDelayCount(base, 200);
        EPWM_setRisingEdgeDelayCount(base, 400);
    
        //
        // Invert only the Falling Edge delayed output (AHC)
        //
        EPWM_setDeadBandDelayPolarity(base, EPWM_DB_RED, EPWM_DB_POLARITY_ACTIVE_HIGH);
        EPWM_setDeadBandDelayPolarity(base, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);
    
        //
        // Use the delayed signals instead of the original signals
        //
        EPWM_setDeadBandDelayMode(base, EPWM_DB_RED, true);
        EPWM_setDeadBandDelayMode(base, EPWM_DB_FED, true);
    
        //
        // DO NOT Switch Output A with Output B
        //
        EPWM_setDeadBandOutputSwapMode(base, EPWM_DB_OUTPUT_A, false);
        EPWM_setDeadBandOutputSwapMode(base, EPWM_DB_OUTPUT_B, false);
    
    }
    
    

    我尝试通过 sysconfig 执行相同的设置。

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

    您的配置正确! 我将在内部检查另一个。