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.

[参考译文] ePWM 避免使用 CMP = 0

Guru**** 2022830 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/593544/epwm-avoid-using-cmp-0

您好、先生、

我目前正在研究 TI 的交错 LLC、在设置 EPWM 时、为什么需要使用 CPM = 0和 CMP = PRD 保持不变?

此致

Johnny

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅 F2837xD 参考手册14.6.5,其读数为:
    使用向上向下计数模式来生成对称 PWM:
    •如果您将 CMPA/CMPB 加载到零、则使用大于 CMPA/CMPB 的值
    等于1。
    •如果您在周期上加载 CMPA/CMPB、则使用小于的 CMPA/CMPB 值
    或等于 TBPRD-1。
    这意味着在中将始终有一个至少一个 TBCLK 周期的脉冲
    PWM 周期、当非常短时、该周期往往会被系统忽略。

    然后代码配置为
    (* ePWM[n]).cmPCTL.bit.SHDWAMODE = CC_SHADOW;
    (* ePWM[n]).cmPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    (* ePWM[n]).cmPCTL.bit.SHDWBMODE = CC_SHADOW;
    (* ePWM[n]).cmPCTL.bit.LOADBMODE = CC_CTR_ZERO;
    它在零,上加载 CMPA 和 CMPB、因此(* ePWM[n]).CMPA.bit.CMPA = 1
    它在(* ePWM[n]).CMPB.bit.CMPB =(__LW_AT__μ s 周期/2 - 1 μ s 和(__LW_AT__μ s 周期/2))之间没有差异、这是因为1个计数时间非常短、可以忽略