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.

TMS320F28377S: 关于hrpwm_duty_sfo_v8的疑问

Part Number: TMS320F28377S
你好,在hrpwm_duty_sfo_v8例子与下面链接的问答中,
图一
对于这句话
“对于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
  • 您好,收到了您的案例,调查需要些时间,感您的耐心等待。

  • 您好,

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

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

  • 你好,可能是我表述不清
    “对于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)这个公式

  • 你好,可能是我表述不清
    “对于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)这个公式

  • 您好,

         您可以这样做来获取 TBPHS 注册,但对于 TBPHSHR 您无法这样做。

         从本质上讲,当您进行除法时,您将获得 TBPHS 的整数值,小数余数则是 TBPHSHR 的值。

         TBPHSR 是一个延迟值,它总是向右移动边缘(滞后波形)。

         因此,如果您的 TBPHS 产生的是前导波形,您需要将 TBPHSHR 表达为 1 - 实际延迟,以正确转换它。

          如果您使用 TBPRDHR,您需要使用 TRREM 注册。请参考 TRM 检查 TRREM 注册的配置。