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.

[参考译文] MSP432E401Y:是否可以调整时钟速率?

Guru**** 2569105 points
Other Parts Discussed in Thread: MSP432E401Y

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/786668/msp432e401y-is-there-a-way-to-tweak-the-clock-rate

器件型号:MSP432E401Y

我想改变时钟速率、可能高达+/-2%、以便其速率可以跟踪 NTP 服务器。  我还在使用 TI-RTOS。  是否有办法以小增量调整速率以跟踪 NTP 服务器?

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

    我不太理解这里的用例。 您能解释一下该应用吗? 或许我可以看到我们有什么解决方案会有所帮助。

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

    开始时、我将从 NTP 服务器查询时间、该服务器将位于本地网络上、因此网络延迟将降至最低。 然后、我将在 MSP432E401Y 上设置时钟、以匹配此值(不包括不可设置的秒小数部分、但可以记录偏移量、以便在本地知道真实时间)。 定期(可能每分钟一次?) 我将重新查询 NTP 服务器、确定本地时钟运行速度是否有点慢或有点快、并根据时间变化率(我知道如何操作后)进行调整。

    默认情况下、MSP432E401Y 以120MHz 运行(至少在我的 MSP-EXP401E401Y LaunchPad 板上)。 计时的时钟是由此产生的、因此、如果我们发现时钟运行速度有点慢(相对于 NTP 服务器)、我们可能希望以120.001MHz 的频率运行 MCU 进行补偿、 或者、如果我们太快并且想在本地减慢它的速度、则可能是119.999MHz。 这是可行的吗? (我有疑问。)

    或者、我们可以调整将时钟提前1微秒所需的120MHz 周期数、并调整时钟以保持这种方式? 或者还有其他方法吗?

    保持高精度本地时钟的原因是能够记录我们使用精确时间戳进行的测量。

    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用休眠模块中的 RTC 还是通用定时器(精度应该与系统时钟相似)? 您可以根据 NTP 服务器时间定期调整这些参数吗?

    调整系统时钟似乎不是一个安全选项-当您说时钟速率时、我假设是系统时钟。

    您正在寻找的精度范围是多少?

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

    我假设术语"系统时钟"是指处理器的内部时钟速率、即120MHz。 从该值衍生出 TI-RTOS 用于跟踪日期和时间的"时钟"、通过诸如 clock_gettime (...)的调用进行访问 gmtime...)、那么让我们将其称为"计时时钟"。

    最后、我想调整"计时时钟"提前时间的速率、以便我可以与本地 NTP 服务器保持同步。 需要这样做,以便与我们机构中其他机构收集的数据协调,为所收集的数据提供精确的时间戳。 变化量很小、可能在+/- 2%以内。

    我看到实现这一目标有两种可能性。 第一种方法是能够(稍微)改变120MHz 的"系统时钟"、这将改变它驱动的所有内容、包括"计时时钟"(及其时间提升率)。 第二种方法是调整将"计时时钟"提前1微秒(或任何其最小时间增量)所需的"系统时钟"周期数、从而加快或降低"计时时钟"中的时间推进率。 可以(安全)完成这两种操作吗?

    尚未探索休眠模块中的 RTC、但我认为它对于精确的时间保持而言过于粗糙(例如、在 NTP 时间的一毫秒内实现时间戳)。

    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否正在尝试与其他仪器同步? 绝对时间戳是否是一项要求? 精度和分辨率是多少?

    我会得到一个 GPS 接收器并从中生成时间戳。 1PPS 输出非常精确、您可以使用它来确定所需的任何变化。 或者、您也可以使用以下其中一种方法:
    www.techlib.com/.../GPSstandard.htm

    并将其用作为处理器创建120 MHz 外部时钟的参考。

    如果您正在同步多个仪器、请查看 IRIG 时间代码同步至 GPS。 这就是大男孩使用的东西。 如果您的需求较为适度、SMPTE 可能就足够了。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Keith、

    我们的尺寸限制是一个主要因素。 MSP432E401Y 将被挤到一个非常小的电路板中、其中一侧测量信号、另一侧为以太网端口(从中获取电源)。 连接的以太网电缆将与 NTP 服务器(我认为这将是 GPS 同步)连接到网络上。 这些器件中有多个将使用精确的时间戳记录测量结果、然后再发送到数据收集服务器。 由于尺寸限制、我们必须保持通过以太网连接同步的精确时钟、从而保持本地 NTP 服务器。 (没有单独 GPS 接收器或 IRIG 的空间。)

    我创建了一个称为 TI-RTOS 的 clock_gettime (...)的解决方案 获取日期/时间、然后使用偏移和频率缩放因子(基于 NTP 服务器查询)修改此结果、以非常密切地跟踪 NTP 时间、但我希望避免这种增加的处理复杂性。 最好直接改变"计时时钟"的速率、但看起来这种解决方案是无法实现的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我唯一看到的方法是使用略高于120 MHz 的外部时钟、然后开发一个电路、根据需要"缩短"周期以跟踪 NTP 服务器。

    唯一的另一种方法是获得某种电压可变电容器并尝试拉晶体。

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

    您好 Brian、

    [引用 user="Brian S">我已经创建了一个解决方案、将 TI-RTOS 的 clock_gettime (...)称为 TI-RTOS 的 clock_gettime (...) 获取日期/时间、但随后使用偏移和频率缩放因子(基于 NTP 服务器查询)修改此结果、以非常密切地跟踪 NTP 时间、但我希望避免这种增加的处理复杂性。

    [引用用户="Brian S"]最好直接更改“计时时钟”的速率,...

    clock_gettime API 实际上是一个 POSIX API。 有一个相应的 API clock_settime、应该允许设置时间。 我没有使用过、但如果它能正常工作、这可能是您正在寻找的解决方案。

    或者、如前所述、MSP432E4 MCU 具有一个实时时钟(RTC)模块、可使用32kHz 时钟源运行。

    • 时钟源可以是低频内部振荡器(HIB LFIOSC)或外部32.768kHz 振荡器。
      • 如果不想添加组件、可以使用 HIB LFIOSC。 请在使用 HIB LFIOSC 之前检查其规格。
    • 您可以使用 RTC 调整功能调整 RTC 计数器、使其与 NTP 服务器保持同步。
    • RTC 模块和 HIB LFIOSC 都是休眠外设的一部分。

    希望这对您有所帮助!

    谢谢、

    SAI

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

    改变120MHz"系统时钟"的频率似乎对我们不起作用。 Keith Barkley 提出了两种方法、但我们的尺寸限制可防止添加任何其他电路。 由于我没有听到任何关于改变将"计时时钟"提前1微秒(或任何其最小时间增量)所需的"系统时钟"周期数的建议、这种方法似乎也被阻止。

    将探讨(在时间允许的情况下)有关使用休眠外设和使用 RTC 调整功能的建议、但我们的直觉是、除非使用120MHz 振荡器、否则我们不会获得所需的时间分辨率。

    至少我们有一个(尽管更复杂)可行的解决方案(使用偏移和频率缩放)。

    您可以关闭此主题、也可以将其继续打开一周、看看是否有其他建议。

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

    由于我们尚未看到社区对此问题的任何答复、我将继续并关闭它。

    谢谢、
    SAI