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: 变频移相控制PWM丟波(波形异常)问题

Part Number: TMS320F280049C
Other Parts Discussed in Thread: C2000WARE

PWM配置:

PWM2 UP_DOWN模式,ZERO 时 SET ,PRD 时 CLR,固定50%带死区占空比输出,在 CTR=0 时发出同步信号;

PWM3 UP_DOWN模式,ZERO 时 SET ,PRD 时 CLR,固定50%带死区占空比输出;

PWM3 相对于 PWM2 进行移相,移相值固定在Phase = PRD * 0.98 范围.(0.98是为了让移相小于周期值)

timer2 产生100k的频率中断:

中断内按固定步长改变PRD值(改变PWM频率),相应地计算出新的移相值,保证PWM3和PWM的相位不变。

开启Global Load功能:

PWM2 PRD在ZERO点 由shadow载入active

PWM3 PRD在同步信号输入点 由shadow载入active

PWM3 的Phase移相值和Global Load无关,应该在同步信号输入点 由shadow载入active。

问题:

运行过程中 PWM3 会概率性出现 一个周期3A全高 3B全低的现象。

为了方便TI支持人员调试,我在C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f28004x\examples\epwm\epwm_ex3_synchronization工程上进行问题复现,只对epwm_ex3_synchronization.c进行修改

但是我不知道怎样传文件上来。如果需要复现问题,请告诉我上传的方法。

下面时问题波形:

请帮我验证一下,谢谢。

  • 有可能跟你之前提问的一个问题相同,跟加载点有关。A高B低是开启了互补模式吗?。上传文件的话,发帖的时候似乎可以直接将文件拖进文本框里面,或者选择“插入”里面有“图片/视频/文件”选项。

  • 之前提到的问题是因为移相值和CMP值接近时,会导致CMP点的AQ EVENT丢失。这个方案我就是避开了移相值和AQ EVENT的位置。

    你可以先测试一下我的代码,然后看看问题是什么,有什么解决方案。把我的文件替换C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f28004x\examples\epwm\epwm_ex3_synchronization中的文件epwm_ex3_synchronization.c就可以看到问题现象了。

    谢谢

  • 你好,文件没有上传吗?

    可以直接把文件拖进回复框,也可以在“插入”里选择“图片/视频/文件”进行上传

  • 不好意思,这两天浏览器出问题一直不能登录TI的网站。我就是直接拉到回复框的,看见一个复制的+号然后松手。怎么没有传上来呢,要是传上来了,我能看得见吗?

    通过“插入”里选择“图片/视频/文件”进行上传时,我选择双击了我的.c后,选择框里还是说什么都没选,不知道出什么问题了。

    我直接插入代码吧,你拷贝一下行吗?

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //#############################################################################
    //
    // FILE: epwm_ex3_synchronization.c
    //
    // TITLE: ePWM Using The Synch Chain and Phase Shift.
    //
    //! \addtogroup driver_example_list
    //! <h1>ePWM Synchronization</h1>
    //!
    //! This example configures ePWM1, ePWM2, ePWM3 and ePWM4 as follows
    //! - ePWM1 without phase shift as master
    //! - ePWM2 with phase shift of 300 TBCLKs
    //! - ePWM3 with phase shift of 600 TBCLKs
    //! - ePWM4 with phase shift of 900 TBCLKs
    //!
    //! \b External \b Connections \n
    //! - GPIO0 EPWM1A
    //! - GPIO1 EPWM1B
    //! - GPIO2 EPWM2A
    //! - GPIO3 EPWM2B
    //! - GPIO4 EPWM3A
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 你好

    有测试过我的代码吗,问题能复现不?我的配置有没有什么问题?

  • 抱歉刚看到。由于公司问题,现在测试去实验室不太方便,我明天去测试一下之后给你回复。

  • 你好,请问一下你这边测试的时候出现问题的概率大概是多少?一般在什么位置复现的概率比较大?

    我这边不知道是示波器设置问题还是其他什么,几次下来没有成功复现。

    另外有设置过代码输出格式吗?EABI还是COFF?

  • 你好

    是在不好意思,我刚才测试了一下传上来的代码确实不能复现(因为我后来有更改),请将代码的293和295行替换为下面两行代码,就能复现了。

    fPhas_pu = ((float32_t)fPRD_pu * 0.98);

    uiPhasTicks = (uint16_t)((float32_t)fPhas_pu * EPWM_TIMER_TBPRD_MAX);

    你示波器要用触发模式,触发条件PWM3B正脉冲宽度大于3us.

    实在抱歉,我的疏忽,浪费你宝贵的时间,还得麻烦你从测试一遍。

  • 好的了解了。不过可能又要等到下周一才能测试了。如上所说的,现在公司的原因,做实验没那么方便的,要等。。。

  • 你好

    有帮我测试过吗?

  • 这周上海这边台风,公司安排在家办公。。。明天会去公司测试

  • 你好,今天在实验室测试了一下,使用的是launchPAD,脉冲触发3us的情况,但是没看到类似现象。

    我发了一个E2E帖子,看看美国那边的工程师是否能测试到或者看看能否发现代码方面的问题。你可以留意一下这个帖子以及看看有什么需要补充的吗:

    e2e.ti.com/.../tms320f280049c-variable-frequency-phase-shift-control-of-pwm