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.

TMS320F280023: 请问使用高精度PWM对PWM开关频率有最低要求吗?

Part Number: TMS320F280023
Other Parts Discussed in Thread: C2000WARE

在使用C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f28002x\examples\hrpwm\hrpwm_ex2_prdupdown_sfo_v8.c例程时,PWM 5Mhz频率下通过示波器能清楚观测到周期边缘位置的变化,当PWM使用50Khz频率时,基本在示波器上看不到周期边缘有变化,请问是因为高精度PWM对于其频率有最低限度要求吗?如果不是的话为什么50Khz时观测不到变化

  • 据我所知应该没有这方面的限制,但是一般来说200KHz以下的用普通PWM,200KHz以上的用HRPWM。

  • 你好,感谢您的回复,现在情况是这样的,我在做一个等离子体电源的项目,PWM频率是50Khz,主要控制TBPRD寄存器来控制频率的变化,由于普通PWM的TBPRD寄存器未Uint16格式,因此我的频率只能50hz精度的调节,如果使用高精度PWM能够实现1hz精度的频率调节吗?还有之前问您的为什么在Demo中5Mhz使用高精度可以直接在示波器中观测到,而50Khz就看不见边缘有变化?

  • HRPWM是可以实现1Hz精度的频率调节的。至于为什么50KHz的时候没有变化,我可能需要咨询一下其他工程师讨论一下。你这边方便给出对应的配置和波形图吗

  • 程序就是C2000ware中的demo程序C:\ti\c2000\C2000Ware_3_04_00_00\device_support\f28002x\examples\hrpwm\hrpwm_ex2_prdupdown_sfo_v8.c

    在不同时刻暂停,示波器上观测到的都是周期为20us的PWM波,边缘没有变化

  • 您好,请问有结果了吗?

  • 你好,还没有,有结果了尽快回复你

  • 好的,感谢!

  • 你好,看到你的程序中配置的TBCLK = SYSCLK,那在两种开关频率下配置的TBCLK都是一样的吗?都是F280023的默认配置频率?

  • 您好,两种开关频率下配置的TBCLK都是一样的,使用的280023默认的配置频率,所有配置只更改了HRPWM_Config()函数括号里的值

  • 你好,目前还没有收到比较可靠的回复。不过我在例程主程序的开头注释中找到说明,这个例程需要在最大SYSCLKOUT下运行:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //! To load and run this example:
    //! -# **!!IMPORTANT!!**
    //! -# Run this example at maximum SYSCLKOUT
    //! -# Activate Real time mode
    //! -# Run the code
    //! -# Watch ePWM A / B channel waveforms on a Oscilloscope
    //! -# In the watch window:
    //! Set the variable UpdateFine = 1 to observe the ePWMxA & ePWMxB output
    //! with HRPWM capabilities (default)
    //! Observe the period/frequency of the waveform changes in fine MEP steps
    //! -# In the watch window:
    //! Change the variable UpdateFine to 0, to observe the
    //! ePWMxA & ePWMxB output without HRPWM capabilities
    //! Observe the period/frequency of the waveform changes in coarse
    //! SYSCLKOUT cycle steps.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 您好,目前是运行在SYSCLKOUT下,程序默认配置了TBCLK = SYSCLK没有更改过,PWM的时钟是用的DSP的主频,能否和工程师确认下50Khz的PWM开关频率下能否使用高精度PWM?

  • 你好,这边工程师回复,我怕翻译有误差,给你看一下原文:

    It works at 50KHz. I just tested it on my setup. It is not easy to see it on the scope. You have to:

    1. Trigger the scope on rising edge of the EPWM.

    2. Zoom into the NEXT falling edge.

    3. Change the TBPRDHR to see it changing.

    50KHz works correctly.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //#############################################################################
    //
    // FILE: hrpwm_ex3_prdupdown_sfo.c
    //
    // TITLE: HRPWM Period Control.
    //
    //! \addtogroup driver_example_list
    //! <h1>HRPWM Period Control</h1>
    //!
    //! This example modifies the MEP control registers to show edge displacement
    //! for high-resolution period with ePWM in Up-Down count mode
    //! due to the HRPWM control extension of the respective ePWM module.
    //!
    //! This example calls the following TI's MEP Scale Factor Optimizer (SFO)
    //! software library V8 functions:
    //!
    //! \b int \b SFO(); \n
    //! - updates MEP_ScaleFactor dynamically when HRPWM is in use
    //! - updates HRMSTEP register (exists only in EPwm1Regs register space)
    //! with MEP_ScaleFactor value
    //! - returns 2 if error: MEP_ScaleFactor is greater than maximum value of 255
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Again trigger on rising edge, zoom into the following falling edge.

    Change the TBPRDHR from 0 tp 0xE000 and see the shift.

  • 好的明白了,非常感谢您和其他工程师,谢谢!