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.

[参考译文] TM4C1294NCPDT:第二和第二次模式下的 RTC 漂移。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/571937/tm4c1294ncpdt-rtc-drift-in-second-and-subsecond-mode

器件型号:TM4C1294NCPDT

我有两个 LaunchPad 板 EK-TM4C1294,在我的应用中,我需要在两个板之间同步时间,因为一个板充当主板,另一个板充当从板

主器件在通过 GPIO 从器件启动接收到中断信号时、使用 GPIO 中断向从板发送信号(同时启用主 RTC)

它自己的 RTC、

在休眠 RTC 模块中,主设备和从设备都设置为在65秒和12458亚秒时产生匹配中断。 在中断处理程序内部、我正在切换

并检查示波器 Tektronix 2012中的两个信号。    示波器中的切换脉冲 不同于  大约250us。

 重复一下,我得到 的结果相同。

现在我的问题是 ,不同 芯片中的 RTC 是否可以具有不同的精度,或者它是否必须具有片上晶体的精度。

两个电路板都来自 TI,我使用外部晶振来实现高精度,它根据原理图连接了12pf 电容器。

这是我的 RTC init 子例程:

SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE);
while (!SysCtlPeripheralReady (SYSCTL_Periph_HIBERNATE));
HibernateEnableExpClk (g_ui32SysClock);
HibernateClockConfig (HIBERNATE_OSC_LOWDRIVE);
HibernateRTCEnable();
HibernateRTCSet (0);

HibernateRTCMatchSet (0、65);

HibernateRTCSSMatchSet (0、12458);

HibernateIntEnable (HIBERNATE_INT_RTC_MATH_0);

HibernateIntClear (HIBERNATE_INT_PIN_WAKE | HIBERNATE_INT_LOW_BAT | HIBERNATE_INT_RTC_MATH_0);
HibernateIntRegister (HibernateHandler);

如果我用其它电路板更换从器件或主器件,则差异会随电路板而变化,但对于一对电路板保持相同。

谢谢及此致 。

 

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

    每个晶振都有+/- ppm 的稳定性范围。 只要时钟处于范围内、制造商就会声明符合规格。 不过、两个晶体之间的微小差异会导致一段时间内的偏移。

    现在250us 变化的一个可能原因可能是主器件和从器件之间的代码执行延迟。 您是否可能对此进行了调查?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Amit:
    65秒和12458亚秒后,我将以10秒的间隔生成中断
    即、像75秒12458亚秒、85秒12458 ss、95秒12458 ss A、依此类推、直到200、
    但在示波器中、信号漂移不恒定、每10秒漂移增加近25-27us。

    换言之,除了代码执行延迟之外,两个 RTC 之间的差值应在一段时间内保持恒定
    但这种情况并非如此,信号的差异会随时间的推移而变化。

    您的任何建议都将非常有帮助。

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

    否 RTC 时钟的 PPM 随电压和温度的变化而变化。 因此、没有两个随机选择的晶体可以具有相同的属性。 您会看到从晶体到晶体的变化。 现在、您能否确保32.768kHz 确实是整个采集时间范围内的确切值。 在示波器上、您可以设置持久性捕获模式、该模式应在捕获的另一个边沿上生成一个污迹。 除非晶振容差较差、否则25-27us 有点大。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Alok Nigam"]主设备和从设备都设置为在休眠 RTC 模块中的匹配中断,时间为65秒和12458亚秒

    [引用 user="Alok Nigam"]示波器中的切换脉冲 与  大约250us 不同。

    65s 内250us 小于4ppm

    您的晶体需要<2ppm 才能获得更好的结果。 有没有理由期待更好?

    Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Robert,
    我使用的是 CMR200T-32.768KDZY-UT 晶振,其频率容差为+-20ppm。
    谢谢、此致
    阿洛克
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit,您好!
    在 launchpad 电路板中,使用了频率容差为+-20ppm 的"CMR200T-32.768KDZY-UT"晶振。
    谢谢、此致
    阿洛克
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alok、

    我相信 Robert 已经有效地回答了您的问题。 我不确定为什么要在 Launchpad 上启动晶体?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Amit,您好!
    我没有在 launchpad 上使用晶体,这是 launchpad 附带的默认晶体。
    我只是想提出第二个意见。
    感谢您的支持和建议,它真的很有帮助。
    谢谢、此致
    阿洛克