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.

[参考译文] TMS320F280049C:如何在 TMS320F280049C 中更新 PWM 占空比

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1230955/tms320f280049c-how-to-update-pwm-duty-cycle-in-tms320f280049c

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

我正在尝试修改代码 C:\ti\c2000\C2000Ware_4_00_00\driverlib\f28004x\examples\epwm\epwm_ex3_synchronization.c

我的目标是将 PWM 占空比从1%缓慢增加到50%。 目前、我没有任何设定点或 ADC 输入。 我只是想逐渐更新占空比。

如果可能、我会很乐意提供帮助。

Ashik

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

    您好!

    您可以根据 PWM 上升/下降沿在常规事件上发出中断。 在中断服务例程中、您可以选择使用 CMPA/B 逐渐更新 EPWM 占空比
    C2000Ware 中确实有一个示例、您可以参阅- epwm_ex2_updown_AQ

    谢谢。
    Aditya.

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

    感谢您提供的信息。  目前、我需要2组 PWM。 我尝试做的是在 PWM 1和2之间给出相移。 最初、PWM 1和2都将从0%/1%占空比开始。 此时、相移将为零。 随着相移的增加、占空比将增加、它将达到最大50%。 我正在尝试将 PWM 占空比与相移的增量同步、这似乎非常困难。 我们将感谢您提供任何帮助。

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

    您好!

    我不确定 C2000Ware 中是否提供了确切的示例。  最初使用的示例-  epwm_ex3_synchronous 是我可以在您的应用中看到的最接近您的应用的值。 您可以合并示例2和3、这将非常符合您的要求。


    Aditya.

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

    您好、Aditya:

    我现在正在使用代码 epwm_ex13_up_aq.c。我已在此处附加了代码。  我现在可以将占空比更改至50%。 我还可以使用看门狗中的变量"Ph"放置相移。 但是、要更改"Ph"、我需要在看门狗中使 AshikFlag 和 loop_counter===2900。 但我希望使代码独立于这两个变量(AshikFlag 和 loop_counter)。 当 PWM 达到50%占空比时、我要从看门狗更改变量的相位。 但我不知道如何在 PWM 达到50%占空比时编写条件。 希望您可以帮助解决这个问题。 谢谢

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //###########################################################################
    //
    // FILE: epwm_ex13_up_aq.c
    //
    // TITLE: Action Qualifier Module - Using up count.
    //
    //! \addtogroup driver_example_list
    //! <h1> EPWM Action Qualifier (epwm_up_aq)</h1>
    //!
    //! This example configures ePWM1, ePWM2, ePWM3 to produce an
    //! waveform with independent modulation on EPWMxA and
    //! EPWMxB.
    //!
    //! The compare values CMPA and CMPB are modified within the ePWM's ISR.
    //!
    //! The TB counter is in up count mode for this example.
    //!
    //! View the EPWM1A/B(GPIO0 & GPIO1), EPWM2A/B(GPIO2 & GPIO3)
    //! and EPWM3A/B(GPIO4 & GPIO5) waveforms via an oscilloscope.
    //!
    //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好 Ashik:

    很高兴您能够获得所需的占空比。 对于相位要求、您可以在 PWM 的中断子例程中添加一个检查、检查占空比是否达到50%。 达到50%后、您可以选择更改相位值。

    实际上、如果不会给计时计算带来麻烦、那么当前的方法也没有问题。

    更通用的方法是、您可以在 ISR 中读取比较器值并检查它是否达到50%、然后可以根据这种方法选择更新相位值。

    谢谢。

    Aditya.

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

    感谢 Aditya

    您能告诉我、除了更改 TBPRD 值外、如何更改开关频率? 目前、ePWM_Timer_TBPRD 值为2000、给出的频率为12.5kHz。 我需要100kHz 的开关频率。

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

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //###########################################################################
    //
    // FILE: epwm_ex13_up_aq.c
    //
    // TITLE: Action Qualifier Module - Using up count.
    //
    //! \addtogroup driver_example_list
    //! <h1> EPWM Action Qualifier (epwm_up_aq)</h1>
    //!
    //! This example configures ePWM1, ePWM2, ePWM3 to produce an
    //! waveform with independent modulation on EPWMxA and
    //! EPWMxB.
    //!
    //! The compare values CMPA and CMPB are modified within the ePWM's ISR.
    //!
    //! The TB counter is in up count mode for this example.
    //!
    //! View the EPWM1A/B(GPIO0 & GPIO1), EPWM2A/B(GPIO2 & GPIO3)
    //! and EPWM3A/B(GPIO4 & GPIO5) waveforms via an oscilloscope.
    //!
    //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    尊敬的 Aditya:

    我现在的 PWM 频率是250kHz。 但当我使  AshikFlag 和 loop_counter==150时、EPWM2就会变得不稳定。 我可以更改相位、但 PWM 不稳定。 对这一点的任何见解都将有所帮助。

    Ashik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能告诉我除了更改 TBPRD 值之外、如何更改开关频率吗? 目前、ePWM_Timer_TBPRD 值为2000、给出的频率为12.5kHz。 我需要100kHz 的开关频率。

    1.可以更改 TBPRD 以获得所需的开关频率。 在本例中、我认为根据电流配置所需的值为250。

    2. 如果 HSPCLKDIV 和 CLKDIV 位当前不是最大值,则可以选择更新 HSPCLKDIV 和 CLKDIV 位,即它还不是/1

    谢谢。

    Aditya.