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.

[参考译文] TMS320F28069:ECAP 模块 APWM 模式精度

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1271447/tms320f28069-ecap-module-apwm-mode-precision

器件型号:TMS320F28069

您好!

我正在使用系统时钟90Mhz 来运行 TMS320F28069。 时钟源来自 外部20Mhz 晶振。  

我正在尝试通过将 ECAP 模块设置为 APWM 模式、来使用该模块输出 PWM 信号。 以下是 ECAP 初始化代码的一部分:

ECap2Regs.ECCTL2.bit.APWMPOL = 1;  
ECap2Regs.ECCTL2.bit.CAP_APWM = 1;//将我们置于 PWM 模式
ECap2Regs.ECCTL2.bit.SYNCI_EN = 0;
ECap2Regs.ECCTL2.bit.SYNCO_SEL = 1;// CTP = PRD
ECap2Regs.ECCTL2.bit.stop_wrap = 0x01;
ECap2Regs.ECCTL1.bit.CAPLDEN = 1;//启用 CAP1-CAP4寄存器加载
ECap2Regs.ECCTL2.bit.CONT_ONESHT = 0;

我正在尝试生成周期为:40us/60us/80us/100us/200us/400us 的 PWM 信号。 我用频率计数器测量了信号的周期。 理想的 ppm 误差为0、但我得到了非常大的 ppm 误差:

预期输出周期 40 μ s 60 μ s 80 μ s 100 μ s 200us 400us
ECap2Regs.CAP4 (接通时间) 1738 2638 3538 4438 8938 17938
ECap2Regs.CAP3 (周期) 3600 5400 7200 9000 18000 36000
预期 ppm 0 0 0 0 0 0
测得的 ppm 结果 -282.8 -190.4 -144.1 -166.2 -60.7 -33

当我将周期减少1的值时、我得到了明显更好的 ppm 误差:

预期输出周期 40 μ s 60 μ s 80 μ s 100 μ s 200us 400us
ECap2Regs.CAP4 (接通时间) 1737.000000 2637.000000 3537.000000 4437.000000 8937.00000 17937.00000
ECap2Regs.CAP3 (周期) 3599.000000 5399.000000 7199.000000 8999.000000 17999.00000 35999.00000
预期 ppm 277.770000 185.185000 138.888000 111.111000 55.55000 27.77000
测得的 ppm 结果 2.000000 -5.300000 -5.300000 12.100000 -5.30000 -5.30000

那么、我在哪里可以找到有关 APWM 精度的详细信息?

如何获得最佳精度?   

如何计算 PWM 最坏情况下的误差?

谢谢。

安迪

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

    Andy、您好!

    您使用的是 LaunchPad 还是 controlCARD? SYSCLK 应该是影响 APWM 精度的因素、例如、如果 SYSCLK 为200MHz、eCAP 的分辨率将为5ns。 我不确定将周期减少到值1为何有助于改善 ppm 误差。  

    您是否知道外部时钟的 PPM? 您能否使用 launchpad 或 controlCARD 上的 XTAL 对此进行尝试和验证?

    此致!

    马瑞安  

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

    您好、Ryan、

    我们将在我们的产品上测量 ppm、而不是在开发板 launchpad 或 controlCARD 上测量。 我们使用的20Mhz 外部晶体的测量 ppm 为31.5。  

    安迪

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

    Andy、您好!  

    假设 SYSCLK 是90Mhz、而 ppm 是31.5、则周期减少1是用于 CAP1的正确周期值。 这是它的计算方法、  

    这使用 TRM 中的公式:

    希望这对您有所帮助!

    此致!

    mA