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.

TMS320F280049: TMS320F280049:

Part Number: TMS320F280049
Other Parts Discussed in Thread: C2000WARE

我的板子型号是280049,我在用HRPWM实现高精度移相,并可以调整高精度周期,但是出来的波形没有实现,是不是我的寄存器配置有问题?

  • Hi,

    有参考一下TI给的例程吗:

    C:\ti\c2000\C2000Ware_4_02_00_00\device_support\f28004x\examples\hrpwm

    C:\ti\c2000\C2000Ware_4_02_00_00\driverlib\f28004x\examples\hrpwm

  • C:\ti\c2000\C2000Ware_4_02_00_00\device_support\f28004x\examples\hrpwm这个试了,是可以出波形的,但改变周期延时太长了(大概要200ms),并且设置相位输出,无法移相(PWM1为基准,pwm2~4移相输出);

    C:\ti\c2000\C2000Ware_4_02_00_00\driverlib\f28004x\examples\hrpwm这个下面的例程编译缺失"board.h”,整个文件夹都搜索了,没有这个文件

  • HRPWM是只能工作在TB_COUNT_UPDOWN模式下?

  • HRPWM是只能工作在TB_COUNT_UPDOWN模式下?

    不是的;

    C:\ti\c2000\C2000Ware_4_02_00_00\driverlib\f28004x\examples\hrpwm这个下面的例程编译缺失"board.h”,整个文件夹都搜索了,没有这个文件

    可能因为某些原因导致相关文件缺失,您重新安装SDK或者换个版本试一下,我这边是完全没有问题的;

    我在用HRPWM实现高精度移相,并可以调整高精度周期

    高精度移相和高精度周期/占空比不能同时实现:

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include "driverlib.h"
    #include "device.h"
    #include "board.h"
    #include "SFO_V8.h"
    #include <math.h>
    //
    // Defines
    //
    #define EPWM_TIMER_TBPRD 4545UL//5000UL
    #define LAST_EPWM_INDEX_FOR_EXAMPLE 5
    #define MIN_HRPWM_PRD_PERCENT (20.0003f)
    #define myEPWM1_BASE EPWM1_BASE
    #define myEPWM2_BASE EPWM2_BASE
    #define myEPWM3_BASE EPWM3_BASE
    //
    // Globals
    //
    static float64_t periodFine = MIN_HRPWM_PRD_PERCENT;
    uint16_t status;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    一、在本论坛找到了一个帖子,照着改了下,发现pwm2和pwm3无法同时移相,具体如下:

    1,PWM1正常开启,当开启pwm2和pwm3的时候,并同时设置pwm2和pwm3的相位角,发现只有pwm2的相位正常改变,pwn3的相位不动,;

    2,PWM1正常开启,当把pwm2关闭,开启pwm3的时候,并同时设置pwm3的相位角,发现pwn3的相位正常改变,;

    3,请问这是什么原因?

    二、我需要实现的功能是:

    1、PWM1A和PWM1B,PWM2A和PWM2B,PWM3A和PWM3B带死区互补输出;

    2、通实时改变PWM1,2,3三组六路的频率,精度是0.1HZ;

    3,PWM2A/B和PWM3A/B 相对于PWM1移相输出;

  • Hi,

    我们的技术支持基于TI的例程。

    EPWM2、3要相对于EPWM1移相,您需要设置EPWM1的同步输出信号,比如在CTR=0或CTR=PRD时输出;还需要设置EPWM2的同步输入信号为EPWM1的同步输出信号,并将这个信号直通给EPWM3。这样便实现了同步,然后EPWM2、3便会根据您配置的移相值,在同步信号到来时装载移相值进行移相。

    (EPWM同步信号链)

    死区互补输出是通过配置DB来实现的:

    详细的配置请您阅读sprui33f_TMS320F28004x Real-Time Microcontrollers Technical Reference Manual (Rev. F) Chapter 18 Enhanced Pulse Width Modulator (ePWM)

    我们只能给您提供一个大概的思路,或者为您解释困扰您的某个点。具体的代码实现您需要靠自己。TI提供的例程全部都在SDK中了。

    --

    谢谢

x 出现错误。请重试或与管理员联系。