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/TMS320F28379D:PWM 频率始终为一半

Guru**** 2595805 points
Other Parts Discussed in Thread: LAUNCHXL-F28379D, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/673827/ccs-tms320f28379d-pwm-frequency-always-half

器件型号:TMS320F28379D
主题中讨论的其他器件:LAUNCHXL-F28379DcontrolSUITE

工具/软件:Code Composer Studio

我将使用德州仪器提供的示例项目来测试 LAUNCHXL-F28379D、问题是 PWM 频率始终是示例的一半。 我已经在 controlSUITE 中尝试过很多示例、也尝试 了"http://processors.wiki.ti.com/index.php/C2000_One-Day_Workshop"中提供的示例。 我在专题讨论会"http://processors.wiki.ti.com/index.php/C2000_One-Day_Workshop"上尝试的最后一个名为"Lab3_cpu01"的项目应该会呈现2kHz PWM 输出... 然而、当使用示波器进行测量时、输出频率为1kHz……  

我刚买了这个板、我想知道该板是否在某种程度上降低了效率...  

有人可以帮帮我吗?

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

    您好!

    需要注意两点-

    1. 在该器件上、PWM 运行1/2个 SYSCLK fq、这与之前的器件不同、在 SYSCLK 上、PWM 运行。
    2. 在 launchpad 上、外部晶体为10MHz 而非20MHz、因此 SYSCLK frq 可能是所需示例的1/2。 在这种情况下、您需要更改 PLL 乘法器。

    此致、

    Vivek Singh

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

    在项目属性中、请检查预定义符号的配置。 在“C2000编译器”下,选择“高级选项”,然后选择“预定义符号”。 在预定义的名称框(“预定义名称”)中,查看“输入值”窗口是否包含 CPU1和_LAUNCHXL_F28379D (注前导下划线)。 项目中使用这些名称来有条件地包含特定于 CPU1和 LaunchPad 的外设寄存器头文件代码。

    具体而言、这会对 F28379D LaunchPad 上使用的外部晶体进行软件校正:

    #ifdef _LAUNCHXL_F28379D
    InitSysPll (XTAL_OSC、IMULT_40、FULT_0、PLLCLK_By_2);
    其他
    InitSysPll (XTAL_OSC、IMULT_20、FULT_0、PLLCLK_By_2);

    此外、请尝试在以下实验课程中加载实验7的解决方案:

    processors.wiki.ti.com/.../C2000_Multi-Day_Workshop

    在本技术讲座中、使用了内部10MHz 振荡器、因此无需校正。 运行此实验练习并测量 PWM 波形。 它应该为2kHz。

    但愿这对您有所帮助。 如果您的问题得到了解答、请单击绿色的"验证答案"按钮。 谢谢。

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

    Ken、

    正如您之前提到的、我配置了"预定义符号"。。。 我还注意 到、当使用命令"InitSysPll (XTAL_OSC、IMULT_20、FMMLT_0、PLLCLK_by_2);"时、PWM 频率为预期值的1/4、而当使用命令"InitSysPll (XTAL_OSC、IMULT_40、FMM_0、PLLCLK_2)"时、PWM 频率为值的1/2。  

    我正在尝试运行您提到的 Lab7、但 PWM 初始化代码中似乎有许多空配置...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正如 Ken 提到的、示例中包含的"F2837xD_SYSCTRL.c"应该能够纠正此问题、因为命令 InitSysPll (XTAL_OSC、IMULT_40、FULT_0、PLLCLK_BY_2)等于200MHz = 10MHz (XT_0*)[FMCLULT+40](XT_0*)[FMCLULT_0_2)
    对吧?


    #ifdef _LAUNCHXL_F28379D
    InitSysPll (XTAL_OSC、IMULT_40、FULT_0、PLLCLK_By_2);
    其他
    InitSysPll (XTAL_OSC、IMULT_20、FULT_0、PLLCLK_By_2);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Guilherme、

    从您的帖子中:

    我正在尝试运行您提到的 Lab7、但 PWM 初始化代码中似乎有许多空配置...

    这就是我让您运行解决方案代码的原因。 您将在解决方案文件夹中找到该选项。

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

    还可以!

    我发现了问题...  

     ClkCfgRegs.PERCLKDIVSEL.bit.EPWMCLKDIV 必须为零、否则输出频率将被2分频。  

    谢谢你 Ken!  

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

    请注意、此器件上支持的 PWM 最大频率为100MHz (请参阅表5-12)。 器件 maual 的内部时钟频率)、因此如果您以200MHz 运行 SYSCLK、则必须将该分频器设置为2分频。

    此致、

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

    我很高兴您发现了这个问题。 仅供参考、请参阅我的实验课程文件:

    //将预分频器配置到 ePWM 模块。 最大 ePWM 输入时钟为100MHz。
    ClkCfgRegs.PERCLKDIVSEL.BIT.EPWMCLKDIV=1;//来自 PLLSYSCLK 的 EPWMCLK 分频器。 0=1、1=/2

    我们以200MHz 的频率运行器件、因此上述结构设置为1。 您的设置将取决于您的 PLLSYSCLK 值(请参阅模块5)。

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

    吉列尔梅。