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.

[参考译文] TMS320F280049:CPU 定时器性能

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/765888/tms320f280049-cpu-timers-performancies

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

你(们)好

我已经在 具有 controlCARD 的实验套件上运行 C:\ti\c2000\C2000Ware_1_00_06_00\driverlib\f28004x\examples\timer 中提供的 CPU 计时器示例。

在 INT 函数 cpuTimer0ISR 上、引脚 GPIO04被切换、而不是对 INT 计数。

以下是我针对几个预期频率的测试结果:

预期的频率定时器;获得的频率

1 kHz;1 kHz

100 kHz;98-100 kHz

500 kHz;496-502 kHz

1 MHz;0.99-1.01 MHz

1.5 MHz;1.07 MHz

2 MHz;1.07 MHz

4 MHz;768 kHz

配置: 100MHz SYSCLK 频率

#define DEVICE_SETCLOCK_CFG (SYSCTL_OSCSRC_XTAL | SYSCTL_IMULT (10)| SYSCTL_FMULT_NONE | SYSCTL_SYSDIV (2)| SYSCTL_PLL_ENABLE)

#define DEVICE_SYSCLK_FREQ      ((DEVICE_OSCSRC_FREQ * 10 * 1)/2)

#define DEVICE_OSCSRC_FREQ      20000000U

configCPUTimer (CPUTIMER 0_BASE、DEVICE_SYSCLK_FREQ、1000000.0/samplingFreq_Hz)

您能解释一下超过1 MHz 的限制吗?

谢谢

Yann

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

    已指派专家到此帖子、稍后将向您回复并提供答案。

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

    "samplingFreq_Hz"的值是什么? 它是否与预期频率相同?

    此致、
    Nirav
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好 Nirav
    是的、采样频率 Freq_Hz 是预期频率。
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yann、您好!

    好的、TCR 寄存器的配置是什么?

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

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

    我假设您通过查看示波器上的 GPIO04信号来获取频率? 如果是、您能否发送一些范围捕获。

    此外、您能否在"自由运行"模式下运行 CPU 定时器:

    CPUTimer_setEmulationMode (cpuTimer、
    CPUTIME_EMULATIONMODE_RUNFREE);

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

    你(们)好

    这是 自由运行模式下 HSEC 引脚50上的示波器捕获。 重新加载计时器的频率设置为4MHz。

    GPIO 以770kHz 的频率切换、如您在捕获时所见

    此致

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

    Yann、您好!

    浏览您的数据并进行数学运算、问题如下:

    每次 CPU 计时器过期并生成中断时、它都会进入 ISR 例程、在该例程中切换 GPIO 并清除中断、以便在下一次迭代时返回到 ISR 并切换 GPIO、您通过测量该 GPIO 来确认配置的频率。

    在较高频率下、即4Mhz、CPU 定时器计数较低、即25与较低频率下的值(即1MHz)为100。 切换 GPIO 和清除中断的开销似乎大于25个周期、因此每次到期时都不会进入 ISR 以进行更高频率的配置、因此 GPIO 切换与配置的 CPU 定时器值不相关。 遗憾的是、在硬件中处理中断和切换 GPIO 的延迟是固定的、无法减少。 因此、使用 CPU 计时器生成精确脉冲时、将限制为较低频率配置。

    相反、我们建议您使用 ePWM 来生成更精确的脉冲、而该脉冲不存在此类限制。

    请告诉我们、如果您需要有关 ePWM 配置的帮助、您也可以参阅 TRM 以了解更多详细信息。

    此致、

    Nirav