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.

[参考译文] TMS320F280049:PWM CBC 问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/803160/tms320f280049-pwm-cbc-issue

器件型号:TMS320F280049
主题中讨论的其他器件:C2000WARE

大家好、

我的客户使用 PWM CBC 跳闸来限制电流控制、他们 发现 PWM1A 和 PWM1B 输出 不同的问题、 他们将电流信号连接到 CMPSS1并按如下方式设置比较值。

  Cmpss1Regs.DACHVALS.bit.DACVAL = 496;

为了进行分析、它们放置了一个电压源、该电压源可以在电流感应引脚上更改、当输入电压低于0.38V 时、PWM1A 和 PWM1B 的输出正常、无保护、当输入电压超过0.42V 时、 PWM CBC 跳闸工作为关闭 PWM1A 和 PWM1B、这是正确的、但当输入电压介于0.38V 至0.42V 之间时、PWM1A 和 PWM1B 的输出将是意外的、如下所示。 更改死区时间 oe2e.ti.com/.../Pwm-cbc-code.docxfPWM 仍然是相同的问题。

您能否提供有关如何解决此问题的建议? 随附的是 PWM 和 CMPSS 配置的代码。

 图1 、当输出异常时、绿色为 pwm1A、黄色为 pwm1B。

 图2 、当输出正常时、绿色为 pwm1A、黄色为 pwm1B。

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

    e2e.ti.com/.../4760.Pwm-cbc-code.docx

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

    您可以尝试以下操作-

    根据您的代码、您似乎没有使用比较器的滤波输出。 CTRIPHSEL 是否设置为零? 我确实看到您已配置了滤波器。 是否可以通过将滤波输出设置为3来尝试使用它?

    2.您也可以通过在 COMPHYSCTL 寄存器中启用比较器中的迟滞。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Subrahmanya、

    感谢您的建议。

    客户尝试按照您的建议、它有助于降低数字滤波器和迟滞设置出现此问题的可能性、 但仍有可能发生、我的理解是当 CBC 事件发生时、PWM1A 和 PWM1B 的输出都应变为低电平作为设置、而不应出现 PWM1A 和 PWM1B 的行为不同的情况。

    您能否帮助解释解决此问题的原因和方法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    跳闸输入必须稳定且低电平至少3个 TBCLK 周期、这将确保跳闸操作可靠。
    如果跳闸输入与上述相同、则 PWM1A 和 PWM1B 都将看到一致的跳闸操作。

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

    您好、Subrahmanya、

    这里是我设置的滤波器、它应该足够长、以确保 跳闸输入保持稳定和低电平至少3个 TBCLK 周期。

     Cmpss1Regs.CTRIPHFILCTL.bit.SAMPWIN=3; //3+1=4*0.25us=1us

     cmps1Regs.CTRIPHFILCTL.bit.THRESH=3; //3*0.25us=075us

     cmps1Regs.CTRIPHFILCLKCTL.bit.CLKPRESCALE=25;//10ns*25=0.25us

    但不幸的是、它仍然存在以下问题、我还附加了我在28004x Launchpad 上测试的代码、您可以很容易地重现此问题、但在引脚 ADCINB2_P1I 上放置一个改变电压源。 您能不能帮助您了解什么问题是e2e.ti.com/.../launchxl_5F00_ex1_5F00_f280049c_5F00_demo.7z

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我已经尝试了您发送的代码。 我无法看到您上面提到的问题。
    是否正在使用 cmps3或 cmps1? 您确定 ADCINB2是用于连接输入的器件吗?
    为了简化调试、您可以从 c2000ware 中的示例开始吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Subrahmanya、

    使用 cmps1进行 CBC 跳闸。 实际上选择了 PGA1_IN、但 PGA1_IN 连接到 LaunchPad 中的 ADCINB2。
    我确实使用 C2000ware 中的示例代码并进行相同的修改
    C:\ti\c2000Ware_1_00_06_00\boards\LaunchPads\LAUNCHXL_F280049C
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这是正确的-但您提供的测试案例似乎不会导致您提到的故障。 我将在明天再次介绍配置。
    您也可以检查测试吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Subrahmanya、

    只需快速更改输入电压值就会导致问题。 这一问题并非所有时候都会出现,它有一些可能性。 使用附加的代码时捕获波形。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我能够对此进行测试、我相信这主要是因为您配置 PWM 操作的方式。
    您已按如下方式设置和清除 PWM。

    EPwm1Regs.AQCTLA.bit.CAD = AQ_SET;
    EPwm1Regs.AQCTLA.bit.CBD = AQ_CLEAR;
    EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR;
    EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;

    PWMA 在定时器的递减计数时进行切换、PWMB 在递增计数时进行切换。
    您还选择了 EPwm1Regs.TZCLR.bit.CBC=1;这意味着"CTR = PRD 脉冲清除 CBC 跳闸锁存器。"
    因此、生成的 CBC 事件影响其中一个 PWM、并被清除为 PRD eq 事件、然后它才会影响另一个 PWM。
    对我来说、这似乎是预期行为。