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.

[参考译文] CCS/TMS320F28069M:ePWM 对

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/651763/ccs-tms320f28069m-epwm-pair

器件型号:TMS320F28069M

工具/软件:Code Composer Studio

大家好、

我正在为半桥转换器配置互补 PWM (高侧和低侧)。

频率和死区时间在第三个 EPMW1B (LS)的下降沿之前是正确的。 下面附上了 ePWM 的代码。 互补 ePWM 由死区模块生成。

我想知道 ePWM 的启动行为是否受到控制、以及哪些寄存器与哪些寄存器相关?

(* ePWM[n]).TBCTL.bit.PRDLD = TB_SHADOW;//设置 CTR=0上的负载
(* ePWM[n]).TBPRD =周期-1;// PWM 频率= 1/周期
(* ePWM[n]).TBPHS.Half.TBPHS = 0;
(* ePWM[n]).TBCTR = 0;

(* ePWM[n]).TBCTL.bit.CTRMODE = TB_COUNT_UP;
(* ePWM[n]).TBCTL.bit.HSPCLKDIV = TB_DIV1;
(* ePWM[n]).TBCTL.bit.CLKDIV = TB_DIV1;

(* ePWM[n]).TBCTL.bit.PHSEN = TB_DISABLE;
(* ePWM[n]).TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//同步"下流"

//计数器比较子模块寄存器
(* ePWM[n]).cmpa.half.cmpA =周期/2-1;//初始设置占空比50%
(* ePWM[n]).CMPB = 0;//初始设置占空比0%
(* ePWM[n]).cmPCTL.bit.SHDWAMODE = CC_SHADOW;
(* ePWM[n]).cmPCTL.bit.LOADAMODE = CC_CTR_PRD;

//操作限定符子模块寄存器
(* ePWM[n]).AQCTLA.bit.ZRO = AQ_SET;
(* ePWM[n]).AQCTLA.bit.CAU = AQ_CLEAR;

(* ePWM[n]).AQCTLB.bit.ZRO = AQ_NO_ACTION;
(* ePWM[n]).AQCTLB.bit.CAU = AQ_NO_ACTION;
(* ePWM[n]).AQCTLB.bit.PRD = AQ_NO_ACTION;

//高电平有效互补 PWM -设置死区
(* ePWM[n]).DBCTL.bit.in_mode = DBA_ALL;
(* ePWM[n]).DBCTL.bit.out_mode = DB_full_enable;
(* ePWM[n]).DBCTL.bit.POLSEL = DB_ACTV_HIC;
(* ePWM[n]).DBRED = 10;
(* ePWM[n]).DBFED = 10;

谢谢!

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

    如果您启用 PWM、那么更改配置当然会发生变化。 尝试禁用 PWM 输出、完全配置 PWM、然后启用 PWM 输出。 有多种方法可以实现这一点、一种方法是将引脚配置为 GPIO、配置 PWM、然后切换 GPxMUXy 中的值以启用 PWM 的输出。

    此致、
    Cody  

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

    您好、Cody、

    感谢您的建议、在完全配置 PWM 后、我将 GPIO 切换回 ePWM1A/1B。 对我来说、PWM 对看起来不错。  这样 、PWM 的不良部分会被手动屏蔽、但我仍然有 ePWM 触发的 SOC。 第一个 SOC 可能无法与第一个良好的 PWM 对同步。 我将告诉您这是否是一个问题。

    谢谢、

    天州

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    天州
    很高兴我们解决了第一个问题!

    将 SOC 配置为 ePWM TBCTR = 0是否会对您有所帮助?
    如果您在代码中放置一个仅在 PWM 激活2个周期后才会设置的标志、该怎么办? 该标志将告诉您 ADC 读数何时准确。

    此致、
    Cody
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    天州
    我认为您对解决方案感到满意吗? 如果您有其他疑问、请随时在此处回复、或在将来参考此帖子、该帖子将很快关闭。

    此致、
    Cody