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.

[参考译文] LAUNCHXL-F2800137:SysConfig

Guru**** 1999175 points
Other Parts Discussed in Thread: LAUNCHXL-F2800137, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/1269147/launchxl-f2800137-sysconfig

器件型号:LAUNCHXL-F2800137
主题中讨论的其他器件: SysConfig

您好!

当我使用 SysConfig 为 LAUNCHXL-F2800137开发固件时遇到两个问题。 一个问题是、当我使用 SysConfig 在新项目中添加 ePWM 时、PWMA/B 引脚上没有 EPWM 脉冲。 另一个问题是、在现有的示例项目中、我设置了 EPWM 事件触发器、但中断只执行一次。 您能否指导如何使用 SysConfig 设置 EPWM 事件触发器、以便为每个 EPWM 脉冲执行中断?

谢谢。此致、

洪涛

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

    尊敬的洪涛:

    您能否提供您在其中看不到 PWM 信号输出的配置? 然后我可以尝试对其进行调试。

    对于该中断、请确保您正确确认了该中断并清除了任何中断标志

    此致、

    彼得  

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

    尊敬的 Peter:

    生成的源"board.c"中的 EPWM_Init ()如下所示。

    void ePWM_init (){
    ePWM_setClockPrescaler (DriverPulsePWM_BASE、ePWM_Clock_divider _1、ePWM_HSCLOCK_divider 1);
    ePWM_setTimeBasePeriod (DriverPulsePWM_BASE、120);
    EPWM_setTimeBaseCounter (DriverPulsePWM_BASE、0);
    EPWM_setTimeBaseCounterMode (DriverPulsePWM_BASE、EPWM_COUNTER_MODE_UP_DOWN);
    EPWM_disablePhaseShiftLoad (DriverPulsePWM_BASE);
    EPWM_setPhaseShift (DriverPulsePWM_BASE、0);
    EPWM_setCounterCompareValue (DriverPulsePWM_BASE、EPWM_COUNTER_COMPARE_A、60);
    EPWM_setCounterCompareShadowLoadMode (DriverPulsePWM_Base、EPWM_COUNTER_COMPARE_A、EPWM_COMP_LOAD_ON_CNTR_ZERO);
    EPWM_setCounterCompareValue (DriverPulsePWM_BASE、EPWM_COUNTER_COMPARE_B、0);
    EPWM_setCounterCompareShadowLoadMode (DriverPulsePWM_Base、EPWM_COUNTER_COMPARE_B、EPWM_COMP_LOAD_ON_CNTR_ZERO);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
    ePWM_setDeadBandDelayMode (DriverPulsePWM_BASE、ePWM_DB_RED、TRUE);
    ePWM_setRisingEdgeDelayCount (DriverPulsePWM_BASE、20);
    ePWM_setDeadBandDelayMode (DriverPulsePWM_BASE、ePWM_DB_FED、true);
    EPWM_setFallingEdgeDelayCount (DriverPulsePWM_BASE、20);

    此致、

    洪涛

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

    尊敬的洪涛:

    感谢您提供您的特定配置。  

    ePWM_setActionQualifierAction (theDriverPulsePWM_BASE、ePWM_AQ_OUTPUT_A、ePWM_AQ_OUTPUT_NO_CHANGE、ePWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_A、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
    EPWM_setActionQualifierAction (DriverPulsePWM_BASE、EPWM_AQ_OUTPUT_B、EPWM_AQ_OUTPUT_NO_CHANGE、EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);

    在检查代码时、您似乎没有配置任何操作限定符。 您将需要根据想要的 ePWM 输出来配置动作限定器。

    假设您需要 EPWMA 上有50%占空比的输出、那么应将 A 输出配置为上计数时 CMPA 设置为高电平、下计数时 CMPA 设置为低电平。

    此致、

    彼得