TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28377S: 关于hrpwm_duty_sfo_v8的疑问

Part Number:TMS320F28377S

你好,在hrpwm_duty_sfo_v8例子与下面链接的问答中,
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/858613/tms320f28379d-usage-information-on-trrem-register-for-periodic-hr-phase-update
图一
对于这句话
“对于PHSDIR = 1,对应于负相位值,这意味着您的从PWM实际上领先于主PWM:必须从中减去您需要的相位值0xFF
示例:EPwm2Regs.TBPHS.bit.TBPHSHR = (Uint16)((0xFF – ((Uint16)total_phase >> 8)) << 8);”
我无法理解这个公式的原理。
图片中是我的理解,假设PRD为96.6,则TBPRD=96,TBPRDHR =0.6,PWM2超前PWM1 90°,按照我的理解EPwm2Regs.TBPHS.bit.TBPHS=48,EPwm2Regs.TBPHS.bit.TBPHSHR=0.3。按照图一的公式EPwm2Regs.TBPHS.bit.TBPHSHR = 1-0.3=0.7,我不理解这个公式的原理,wei'sweis
Lydia:

您好,已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

,

Alice:

您好,

      如果它领先90度,则TBPHS将是0.25 x TBPRD,所以是24。对于TBPHSHR,它是正确的。

     如果它是领先相移,那么您将像上面的E2E一样计算HR值。

,

yunlong liu:

你好,可能是我表述不清
“对于PHSDIR = 1,对应于负相位值,这意味着您的从PWM实际上领先于主PWM:必须从中减去您需要的相位值0xFF
示例:EPwm2Regs.TBPHS.bit.TBPHSHR = (Uint16)((0xFF – ((Uint16)total_phase >> 8)) << 8);”
我还是不理解上面这句话。
对于2个PWM:PW1、PWM2,周期与占空比相同,增减计数,TBPRD = 360,TBPRDHR = 0x7F<<8;PWM2:PHSDIR = 1
现在要使PWM2领先PWM1 90度,则EPwm2Regs.TBPHS.bit.TBPHS=180,TBPHSHR = 0x3F/<<8.

如上图所示,TBPHSHR=TBPRDHR /2这样算PWM2领先PWM1 90°,那为什么用TBPHSHR = ((0xFF – (TBPRDHR  >> 8)) << 8)这个公式

,

yunlong liu:

你好,可能是我表述不清
“对于PHSDIR = 1,对应于负相位值,这意味着您的从PWM实际上领先于主PWM:必须从中减去您需要的相位值0xFF
示例:EPwm2Regs.TBPHS.bit.TBPHSHR = (Uint16)((0xFF – ((Uint16)total_phase >> 8)) << 8);”
我还是不理解上面这句话。
对于2个PWM:PW1、PWM2,周期与占空比相同,增减计数,TBPRD = 360,TBPRDHR = 0x7F<<8;PWM2:PHSDIR = 1
现在要使PWM2领先PWM1 90度,则EPwm2Regs.TBPHS.bit.TBPHS=180,TBPHSHR = 0x3F/<<8.

如上图所示,TBPHSHR=TBPRDHR /2这样算PWM2领先PWM1 90°,那为什么用TBPHSHR = ((0xFF – (TBPRDHR  >> 8)) << 8)这个公式

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377S: 关于hrpwm_duty_sfo_v8的疑问
分享到: 更多 (0)