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/TMS320F28035:CBC 函数出错

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/954342/ccs-tms320f28035-something-wrong-with-the-cbc-function

器件型号:TMS320F28035

工具/软件:Code Composer Studio

HETIN 是 CBC 函数的源代码、当我测试它时、pwmxa 的输出被强制为低电平、然后在一个 PWM 周期后输出高电平。 但 epwmxb 始终为低电平。我 的配置是否有任何错误?

EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP1OUT;// DCAH =比较器1输出
EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP1OUT;// DCAH =比较器1输出

EPwm1Regs.TZDCSEL.bit.DCAEVT2 = TZ_DCBH_HI;// DCAEVT1 = DCAH 高电平(将变为有效
EPwm2Regs.TZDCSEL.bit.DCAEVT2 = TZ_DCBH_HI;// DCAEVT1 = DCAH 高电平(将变为有效
//比较器输出变为高电平)
EPwm1Regs.DCACTL.bit.EVT2SRCSEL = DC_EVT2;// DCAEVT1 = DCAEVT1 (未滤波)
EPwm1Regs.DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_异 步;//采用异步路径
EPwm2Regs.DCACTL.bit.EVT2SRCSEL = DC_EVT2;// DCAEVT1 = DCAEVT1 (未滤波)
EPwm2Regs.DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_异 步;//采用异步路径

// DCxEVT2事件可定义为逐周期。
EPwm1Regs.TZSEL.bit.DCAEVT2 = 1;
EPwm2Regs.TZSEL.bit.DCAEVT2 = 1;

EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;// EPWMxA 将变为低电平
EPwm1Regs.TZCTL.bit.TSB = TZ_FORCE_LO;// EPWMxB 将变为低电平
EPwm2Regs.TZCTL.bit.TZA = TZ_FORCE_LO;// EPWMxA 将变为低电平
EPwm2Regs.TZCTL.bit.TSB = TZ_FORCE_LO;// EPWMxB 将变为低电平

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

    User5297681、

    您能否在下图中突出显示您要使用的路径。 我相信您已经将 DCAEVT2事件配置为直接影响 PWM、当您打算配置 DCAEVT2来触发跳闸区域子模块的 CBC 机制时。

    此致、
    Cody

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

    如下图所示,红线是我想要的路径,配置是否有问题?

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

    我看不到图像、有时是文件类型问题、有时是嵌入图像的方式。 "插入/编辑媒体" 按钮通常对我来说很有用。 如果您无法上传、请告诉我。

    此致、
    Cody  

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

    很抱歉、您现在能看到图片吗? 这是我想要的路径。

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

    好的、您正在尝试使用 DCAEVT2来触发 CBC 机制。 这是可以完成的。

    首先、您在 TZSEL 寄存器中正确设置了 DCAEVT2。

    由于您希望使用 CBC 机制、因此需要将 TZCTL.TZA 和 TZCTL.TSB 配置为所需的操作。

    您不希望使用 DCBEVT1、DCBEVT2、DCAEVT1或 DCAEVT2直接触发 PWM、因此请将这些事件设置为 TZCTL 寄存器中的"不执行任何操作"选项。

    我认为这应该纠正您遇到的问题。 请告诉我。

    此致、
    Cody  

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

    感谢你的帮助!