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.

[参考译文] TMS320F280025C:将 CLB 输出连接到 ePWM 模块上的 TripZone 输入、并强制所有输出为0

Guru**** 2442090 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1024367/tms320f280025c-connect-clb-output-to-tripzone-input-on-an-epwm-module-and-force-all-outputs-to-0

器件型号:TMS320F280025C
主题中讨论的其他器件:C2000WARE

我正在寻找将 CLB 输出连接到 ePWM 模块的 TripZone 的最佳方法。
以下是一些未经过测试的示例代码:
空 Init_Trigger_shutdown
(
uint32_t base、
Xbar_TripNum Trip、
Xbar_EPWMMuxConfig 多路复用配置、
uint32_t 多路复用器
)

Xbar_setEPWMMuxConfig (TRIP、多路复用配置);
Xbar_enableEPWMMUX (TRIP、多路复用器);

ePWM_setTripZoneAction (base、ePWM_TZ_ACT_EVENT_TZA、ePWM_TZ_ACT_LOW);// ZCD 强制提前终止
ePWM_setTripZoneAction (base、ePWM_TZ_ACT_EVENT_TSZ、ePWM_TZ_ACT_LOW);// ZCD 强制提前终止
};

和呼叫:

INIT_Trigger_shutdown (
EPWM3_BASE、
Xbar_TRIP7、
Xbar_ePWM_MUX05_CLB2_OUT4、
Xbar_MUX05
);

我是否需要使用从 CLB 到 ePWM 的输出4或5?
使用 TZ1-3而不是 TRIP7会怎么样?
如何将 TRIP 信号绑定到 TripZoneAction?
我的目的是让 CLB 向 ePWM 模块发出信号并将所有输出设置为0。
是否有更好的方法?

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

    ePWM XBAR 可以使用 CLB1和 CLB2的 CLB_OUT4和 CLB_OUT5。

    在 ePWM tripzone 模块中,可以使用 TRIP4和 TRIP5。

    在数字比较模块中、您可以使用 TRIP7及以上。

    您可以将 ePWM XBAR TRIPx (x =上面提到的跳闸之一)配置为使用 CLB OUT。

    然后根据所选的跳闸、相应地配置 TZ 或 DC 模块。

    NIMA

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

    我是这款处理器的新手、不理解您的回答。

    如何为您参考的每个模块找到合适的 API 调用?

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

    亨利

    您是否:

    1.回顾了 XBAR、CLB 和 ePWM 章节的 TRM?

    2.查看了 C2000Ware 中的 EPWM driverlib 示例?

    3.已查看 C2000Ware 中的 CLB driverlib 示例?

    NIMA

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

    当然可以。

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

    因此、您需要致电:

    Xbar_setEPWMMuxConfig (TRIP、多路复用配置);

    其中、TRIP 是跳闸编号、而 muxConfig 是 CLBx_OUT4/5。

    然后选择该行程是 CBC 还是 OST。 假设您选择 OST:

    ePWM_enableTripZoneSignals (uint32_t base、uint16_t tzSignal)

    然后设置操作:

    ePWM_setTripZoneAction (base、ePWM_TZ_ACT_EVENT_TZA、ePWM_TZ_ACTION_);

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

    谢谢、

    这似乎是我发现的、但尚未测试:

    INIT_Trigger_shutdown (
    EPWM3_BASE、
    Xbar_TRIP4、
    Xbar_ePWM_MUX05_CLB2_OUT4、
    Xbar_MUX05
    );

    空 Init_Trigger_shutdown
    (
    uint32_t base、
    Xbar_TripNum Trip、
    Xbar_EPWMMuxConfig 多路复用配置、
    uint32_t 多路复用器
    )

    Xbar_setEPWMMuxConfig (TRIP、多路复用配置);//例如(XBAR_TRIP4、XBAR_EPWM_MUX05_CLB2_OUT4)
    Xbar_enableEPWMMUX (TRIP、多路复用器);//例如(XBAR_TRIP4、XBAR_MUX05);
    ePWM_enableTripZoneSignals (base、ePWM_TZ_SIGNAL _CBC4);//逐周期 TRIP4
    ePWM_setTripZoneAction (base、ePWM_TZ_ACT_EVENT_TZA、ePWM_TZ_ACT_LOW);// ePWMA = 0
    ePWM_setTripZoneAction (base、ePWM_TZ_ACT_EVENT_TSZ、ePWM_TZ_ACT_LOW);// ePWMB = 0
    ePWM_selectCyclByCyclone TripZoneClearEvent (base、ePWM_TZ_CBC_PULSE_CLR_CNTR_ZERO);//当计数器= 0时清除
    };

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

    我的资源不足、不得不将 CLB OUT4和 OUT5用于其他目的。 我尝试使用 TRIP7将 CLB 连接到 ePWM、但 ePWM 已通过另一个跳闸连接到 CLB、我无法确定如何处理各个跳闸事件。 我的想法是使用 TZ1而不是 TRIP7、 但它似乎需要连接到输入 X-BAR、并且我没有可用于连接到 CLB 输出 X-BAR 的 GPIO。 另一个想法是在每个跳闸事件上生成一个中断、但这可能会使事情减慢太多。

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

    您可以通过 CLB OUT 覆盖功能覆盖 ePWM 输出。 如果您不使用 HRPWM、而是使用 EPWM1或 EPWM2、则可以执行此操作。

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

    我找到了一个未使用的 GPIO 引脚并使用它来生成中断。 然后、ISR 将所需信号设置为0。 除了 ISR 延迟明显(650ns)外、TI 还能正常工作。 感谢您的想法。