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.

[参考译文] TMS320F28375D:PWM 最大频率

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/592347/tms320f28375d-pwm-max-freq

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

对于基于时间的子模块、我没有看到为 EPWMCLK 列出的任何最大值。  要将 PERCLKDIVSEL 寄存器设置为1或2分频、可以参考 ePWM 部分来确定最大频率。  对于 PWM 部分、我在文档中搜索了"max"、但它没有列出任何最大值。  时钟有哪些限制、我在哪里可以找到这些信息?  谢谢。

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

    Rob、

    请参阅器件数据表、SPRS880G、表5-12、第62页。  EPWMCLK 的最大值为100MHz。

    此致、

    David

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

    器件为200MHz、因此我已经按照上面所示设置/2。

    现在、如果我将两个预分频器都设置为0、TBCLK = 100MHz 吗?

    我尝试使用100MHz 时钟输入将周期设置为240kHz、但当我在示波器上测量输出时、我会得到奇怪的(而不是240kHz)结果。

    我可以操作 TBPRD 寄存器、但作为测试用例、使用图14-24...

    因此、如果我设置 TBPRD = 4并将 A 设置为50%、即 CMPA = 2和 B 设置为75% CMPB = 1、预分频器设置为 HSPCLKDIV = 0、CLKDIV = 0
    EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0;
    EPwm1Regs.TBCTL.bit.CLKDIV = 0;
    我没有得到预期的输出频率。

    主要问题是如何在向上计数模式(CTRMODE)下设置预分频器和周期以获得240kHz 计数器周期(无论我如何设置 A 和 B)我可以使用示波器并调整 TBPRD 以获得240Khz、 但它的运行方式与手册中描述的不符。

    我是否超出了限制? 我必须将其预分频为较低的值吗? 我没有配置什么吗?

    使用图14-6 Tpwm = 2*TBPRD * Ttbclk I 计算得出的公式
    Tpwm = 1/240e3和 Ttbclk = 1/100e6 (/2 200MHz)要获得周期必须为208... 是这样吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rob、

    [引用用户="Rob Barton"]
    器件为200MHz、因此我已经按照上面所示设置/2。
    现在、如果我将两个预分频器都设置为0、TBCLK 是否= 100MHz?[/QUERP]

    正确。

    [引用用户="Rob Barton"]
    使用图14-6 Tpwm = 2*TBPRD * Ttbclk I 计算得出的公式
    Tpwm = 1/240e3和 Ttbclk = 1/100e6 (/2 200MHz)要获得周期必须为208... 这是正确的吗?

    正确。

    您是否在 C2000Ware 中尝试过该示例?

    此致、

    David

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

    谢谢。

    在事件触发器模块中 、第14.10.1节中的过程没有明确说明、如果我在 PIE 的每个事件中生成一个中断、除了清除 PIEACK 之外、我还必须清除中断中的 ETCLR.BIT.INT 吗?  那么、通过清除 PIEACK、它不会自动清除事件触发器标志?  是这样吗?  那么、我们必须手动清除这两者?  对吧?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我认为您必须使用 ETCLR 寄存器清除 ET 标志。

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

    尊敬的 Rob:

    是的、您需要清除 PIE 和 ePWM INT 标志、通过 PIE 清除不会自动清除 ePWM INT 标志。

    与 SOC 事件不同、在生成更多事件之前、您确实需要确认 ePWM INT 标志:

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

    回到第一个问题、问题是在表14-7中 EPWM1连接到 EXTSYNCIN1、在图14-5中、我使用软件同步、因此 PHSEN 使能端开启、 但是、由于默认情况下输入5连接到 GPIO0、而 GPIO0恰好也是 PWM 输出、因此输出状态会影响同步...

    是否有任何方法可以做到这一点? IE:我要启用软件同步、但不启用硬接线同步。 现在、我将 XBAR 重新编程为一个已使用的 GPIO、我可以从外部将其连接到低电平、但如果我想、是否可以通过某种方式"禁用"此功能? IE:是否强制 EPWMxSYNCI 上的低电平输入在外部不连接 GPIO?

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    其他3个问题:
    1.是否有办法确保直流模块为"惰性"或禁用?
    2.是否有办法确保 TZ 模块为"惰性"或禁用?
    在图14-45中、我注意到的一个问题是、如果我想使用 ETSEL[INT]启用/禁用中断生成、那么如果计时器自由运行、那么计数器会自动计数到它的计数、并保持计数、因此"即时"我启用中断、 并生成中断。 问题是、从图14-45可以看出、如何完全启用/禁用计数器、以便在我打开计数器时不会生成该第一次中断?

    我找到了死区和 PC 模块的禁用寄存器、但找不到类似的 TZ 和 DC 子模块启用/禁用寄存器、我只想确保它们已禁用、不会产生任何不必要的结果、确保它们已禁用的程序是什么。