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.

[参考译文] TMS320F28379D:更新了 PWM 预分频器行为

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1202050/tms320f28379d-update-pwm-pre-scaler-on-behavior

器件型号:TMS320F28379D

我将实时更改 PWM 预分频器、以在 DSP 28379D 上生成可变频率 PWM 信号、从而实现拾取模型。 但是、我注意到这种变化会导致 PWM 信号生成转换中的不连续。 出现这种情况是因为我无法在周期开始时更新预分频器。 我相信软件会立即更新、我找不到任何寄存器可以对我提供帮助。 还能做些什么?

我将预分频器通用值从1更改为14时、似乎有时它会禁用 PWM。 这是 ePWM 模块的正常行为吗? 下图显示了我将1改为14 div 时钟的瞬间。

#define PWM_CLOCK_GENERAL_PRESCALE_1 0x0
#define PWM_CLOCK_GENERAL_PRESCALE_14 0x7



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

    您好、Jose、

    指的是通用 预分频、您是指更新 HSPCLKDIV 实时吗?  

    此致!

    Ryan Ma

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

    您好、Ryan、我正在改变预分频。 是的、通用预分频指的是 我的代码中的 TBCTL.bit.HSPCLKDIV

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

    您好、Jose、

    一般而言、HSPCLKDIV 或任何点击分频器都不应动态进行更改。  

    您可以改用 PWM 的周期(TBPRD)吗?

    此致!

    Ryan Ma

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

    我将更改 TBPRD 周期、但我需要在低频区域(1Hz 至20kHz)具有宽频率范围。 我已经创建了一个算法来计算预分频器、以便在所选频率下实现最大分辨率。 因此、基本而言、我将使用预分频器 clkdiv 和 hspclkdiv 的所有选项。

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

    您好、Jose、

    如果您要更改预分频器(例如/4、然后更改为/8)、不建议在实时操作期间这么做。 这将产生一些意外行为。 我已经通过设计确认了这一点。  

    此致!

    Ryan Ma

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

    感谢您的反馈、Ryan。 最后一个问题、PWM 模块的计数器为什么只有16位是有原因的吗? 对于使用另外一个外设或者也许通过软件来执行一个低频 PWM (0-40Hz)、你有什么建议吗? 我看了一下 CLB、但从我看到的内容来看、我无法进行 PWM、因为输入是有限的。

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

    您好、Jose、  

    我需要看看你如何实现这一点,并将在明天结束时回到你身边。

    此致!

    Ryan Ma

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

    您好、Jose、

    如果您正在尝试40Hz - 20kHz 的范围、并假设您在 SYSCLK 200MHz 下运行、那么您的 EPWM 时钟(EPWMCLKDIV =/2)将为100Mhz。  

    假设在向上向下双向计数模式下、为了达到此宽范围、您可以在以20kHz 运行时启用 HRPWM、然后在较低频率范围运行时禁用 HRPWM。

    我建议您的 CLKDIV =/4、HSPCLKDIV =/6。 从而得到一个/24。 以40Hz 频率运行时的最大 TBPRD 为52083、而以20kHz 运行的 TBPRD 为104。 启用 HRPWM 后、您可以在20KHz 时拥有更高的分辨率、现在如果不使用 HRPWM、20KHz 的分辨率将为~6位、但启用 HRPWM 后、您可以实现更高的分辨率位。

    此致!

    Ryan Ma