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: HRPWM模式下 TBPHS和THPHSHR设定值 实现的移相方向不一致

Part Number: TMS320F280049C
Other Parts Discussed in Thread: C2000WARE

ePWM1 和 ePWM4配置都为 UP模式,ePWM1 为master ,ePWM4为slave

HRPWM寄存器配置如下:

问题:当从小到大调整ePWM4的TBPHS值进行移相时,TBPHS值越大,ePWM4相对ePWM1超前量就越大

           当TBPHS保持不变,从小到大调整TBPHSHR值进行移相时,TBPHSHR越大,ePWM4相对ePWM1超前量就越小。二者的效果相反。

测试波形:

改变TBPHS,TBPHSHR不变

1、TBPHS = 0x04,Tdelt = 17ns

2、TBPHS = 0x05,Tdelt = 27ns

3、TBPHS = 0x06,Tdelt = 37ns

改变TBPHSHR,TBPHS不变

1、TBPHS = 0x04,TBPHSHR = 0x2600  Tdelt = 17ns

2、TBPHS = 0x04,TBPHSHR = 0x5000  Tdelt = 15.6ns

3、TBPHS = 0x04,TBPHSHR = 0x7B00  Tdelt = 13.8ns

4、TBPHS = 0x04,TBPHSHR = 0xA500  Tdelt = 12.4ns

5、TBPHS = 0x04,TBPHSHR = 0xD000  Tdelt = 11ns

请帮我分析一下是哪里配置不对,谢谢。

  • 移相值越大,相位越超前是正确的。

    你基于哪个例程测试的?

  • 麻烦从这里:“改变TBPHSHR,TBPHS不变” 开始再看一下 ,TBPHSHR值变大,相位超前值越来越小。

    TI 的 C:\ti\c2000\C2000Ware_DigitalPower_SDK_4_02_00_00\solutions\tida_010054这个例程,PWM是UP-DOWN模式,并且,PHDDIR =0 (移相后DOWN计数),不做任何改动时,移相TBPHS和TBPHSHR值都能正确相应,

    如果将这个例程的PWM计数方式修改为UP模式,就会出现和我同样的问题。请帮我验证一下。

    谢谢。

  • 你具体是怎么修改的?PHSDIR相关的语句有没有注释掉

  • 修改:void HRPWM_HAL_setupUpDownCountWithDeadBand(uint32_t base1,
    float32_t pwmFreq_Hz,
    float32_t pwmSysClkFreq_Hz,
    float32_t red_ns,
    float32_t fed_ns)函数配置

    修改1:第917行,PWM计数模式修改为UP模式

    修改2:第956和962行,Action A寄存器修改为ZRO置1,CMPA置0

    然后再 debug窗口微调修改 增加 DAB_pwmPhaseShiftPrimSecRef_pu值,保证EPwm3Regs.TBPHS.TBPHS值不变的情况下,EPwm3Regs.TBPHS.TBPHSHP慢慢变大,你会看到PWM3A超前PWM1A的值会慢慢变下

    例如: DAB_pwmPhaseShiftPrimSecRef_pu 0.032 -> 0.0321 -> 0.0322 -> 0.0323 -> 0.0324

  • 好的,我需要一些时间来看一下