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 信号时、当周期超过16位时、该值将被截断

Guru**** 2594290 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/668305/tms320f28379d-while-creating-a-pwm-signal-when-the-period-exceeds-16-bit-the-value-truncates

器件型号:TMS320F28379D

我尝试生成一个周期为1.786ms、占空比为40%(Ton = 0.76ms)的 PWM 信号。

我正在使用 C2000 1日 wokshop 中提供的代码。 (下面提供了项目文件夹。)

当我增加 PWM1周期并超过(16位) 65536时、周期截断为 超过65536的值。

虽然我并不完全确定要在代码中更改什么以生成所需的 PWM 信号、但我怀疑 InitSysPll 函数的时钟源被定义为无符号16位整数。

我的最后期限即将到来,如果能在这方面提供任何帮助,我将不胜感激。  

项目文件夹如下: e2e.ti.com/.../Lab3.zip

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

    您好 Canberk、

    您可以在 TRM 中找到各种 ePWM (和其他器件外设)寄存器的定义:

    对于 ePWM TBPRD、请注意该寄存器仅为16位宽:

    如果您只需要一个周期较长的定时器、那么 CPU 定时器外设是一个更好的选择(时基为32位)。

    如果您想使用 ePWM 更长的时间,请在"TBCTL"寄存器中查找"CLKDIV"域...这样可以在不降低整个芯片速度的情况下降低 ePWM 时基的速度。    

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

    感谢您的回答、随附的.pdf 文档非常有用。 我正在寻找这样的文件。

    我对 Microchip 的 PIC18LF8722微控制器有一些经验、此类技术参考手册实际上随数据表一起提供、F28379D 不是这样、因此我尝试从示例代码中提取信息。

    我会等一整天左右,以“这已解决了我的问题”,而不会阻止其他人回答。 再次感谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    坎伯克

    正如 Devin 已经指出的、ePWM 寄存器是16位宽、这解释了为什么该值被截断。 您可能需要查看以下专题讨论会:

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

    请参阅模块7和实验练习。 此代码可能更易于理解。 用于生成 PWM 波形的值可在 Lab.h 中找到 另外、请参阅第13-4页、详细了解我们的文档资源。

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

    - Ken