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.
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模式,就会出现和我同样的问题。请帮我验证一下。
谢谢。
修改: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