“线程:sysconfig, C2000WARE”中讨论的其它部件
我想使用 sysconfig ePWM 功能生成带死区的互补输出。 我根据自己的理解进行了设置,但输出不会在互补模式下生成,尽管输出之间有一些死区。 我已经设置了20 KHz 输出,2 usec 死区用于上升边缘和下降边缘延迟。 EPWM1A (黄色)和 EPWM1B (蓝色)上生成的输出如下所示:
sysconfig 工具的设置如下所示:
请告诉我,上述配置有什么问题,以及如何修复。
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.
我想使用 sysconfig ePWM 功能生成带死区的互补输出。 我根据自己的理解进行了设置,但输出不会在互补模式下生成,尽管输出之间有一些死区。 我已经设置了20 KHz 输出,2 usec 死区用于上升边缘和下降边缘延迟。 EPWM1A (黄色)和 EPWM1B (蓝色)上生成的输出如下所示:
sysconfig 工具的设置如下所示:
请告诉我,上述配置有什么问题,以及如何修复。
然后我会使用 ePWM 死区模块。这会阻止 HW 中的信号在这些情况下发出信号。
您可以在 ePWM 文件夹中查看 ePWM 死区示例吗?
这是一个例子: dev.ti.com/.../node
Nima Eskandari 您好,
事实上,在将此问题写入此门户之前,我已经探索了 ePWM_EX8_d死 区。 我观察到,在本例中,时间基,死区模式和动作限定符等都是手动编程的。 在该示例中,通过 sysconfig 工具似乎没有为 ePWM 时间基,计数器比较和操作限定符等设置。 在研究代码中的配置后,已完成以下设置以获得死区输出。 我已验证输出与死区是互补的。 请查看这些设置是否正常。
我在尝试您的建议时遇到以下错误:
此外,在您的示例代码中,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 执行相同的设置。