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.

[参考译文] TMS320F28388D:标题:DEVICE_DELAY_US () 产生的延迟比 TMS320F28388D 上的预期更长

Guru**** 2539500 points
Other Parts Discussed in Thread: TMS320F28388D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1544146/tms320f28388d-title-device_delay_us-produces-longer-delay-than-expected-on-tms320f28388d

器件型号:TMS320F28388D


工具/软件:

标题 DEVICE_DELAY_US()产生的延迟比 TMS320F28388D 上预期的延迟更长

说明

我正在处理的 TMS320F28388D 从 2838x 系列开始。 我观察到了DEVICE_DELAY_US()宏的作用 不会产生准确的延迟

配置:

  • 频率 :TMS320F28388D

  • 磁芯 :CPU1(CPU2 已禁用)

  • 外部振荡器 (XTAL) :25MHz  

    #define DEVICE_OSCSRC_FREQ 25000000U
    
  • 系统时钟 :200MHz  

    #define DEVICE_SYSCLK_FREQ 200000000U
    

问题:

使用DEVICE_DELAY_US(x)宏时:

#define DEVICE_DELAY_US(x) SysCtl_delay(((((long double)(x)) / (1000000.0L / \
                              (long double)DEVICE_SYSCLK_FREQ)) - 9.0L) / 5.0L)

我观察到以下不正确的延迟:

  • DEVICE_DELAY_US(100)可~Δ Q 174µs  

  • DEVICE_DELAY_US(1000000)(1 秒)可~μ s 1.57 秒

这里显示延迟为 高估了~57%

问题:

  1. 对于上述设置、此宏定义是否不正确?

  2. 如何正确计算 200MHzSysCtl_delay() SYSCLK 下的延迟计数?

  3. 这可能是由内部错误的假设引起的SysCtl_delay()(例如,每个循环有多少个周期)?

    提前感谢您的支持。

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

    尊敬的 Mostafa:

    在回答上述问题之前、您能否在几秒钟内澄清您尝试配置的确切延迟?  宏本身应该没有问题、因此这也将帮助我更好地了解您的应用。 谢谢你。

    此致、

    Aishwarya  

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

    Mostafa

    请登录以查看您是否能够解决问题以及您是否 有 任何其他问题

    此致、

    Aishwarya