【问题标题】:STM32F072 LSI CalibrationSTM32F072 LSI 校准
【发布时间】:2019-07-30 13:44:57
【问题描述】:

我最近开始使用嵌入式编程,目前我的任务是基于 LSE 时钟进行 LSI 校准,这在设备进入低功耗模式时很有用。基于此参考手册:

https://www.st.com/content/ccc/resource/technical/document/reference_manual/c2/f8/8a/f2/18/e6/43/96/DM00031936.pdf/files/DM00031936.pdf/jcr:content/translations/en.DM00031936.pdf

我没有看到任何用于 LSI 校准的寄存器,例如 HSICAL、HSI14CAL...

这是否意味着在将 LSI 用作 RTC 时钟之前无法进行校准?

谢谢。

【问题讨论】:

    标签: stm32 cpu-registers


    【解决方案1】:

    如果您从 LSI 驱动 RTC,您可以调整 sync_prediv 和 async_prediv 值以使 RTC 以正确的速率滴答作响。您可以通过测量 LSI 与 LSE(或 HSI 或 HSE)的实际比率来计算出这些。本文档(尤其是第 4 节)可能会有所帮助: Calibrating STM32F0x1, STM32F0x2 and STM32F0x8 lines internal RC oscillators

    如果您有 LSE,为什么不将它用于 RTC 并禁用 LSI?低功耗模式下的功耗与任一源相似,如果您可以使用具有“低驱动”功耗的 LSE,则 LSE 的功耗实际上会略低于 LSI。

    【讨论】:

    • 所以我要做的就是根据 LSE 计算 HSI 频率然后校准它。然后使用 HSI 频率来获得 LSI 的校准?当设备使用电池运行时,我的老板决定使用 LSI,而我没有改变主意的经验。感谢您的回答。
    • 这将是正确的顺序,因为 LSE 可能是您拥有的最准确的时钟源,所以一切都需要从它开始。还值得指出的是,LSI 无法保证其温度或电压稳定性,因此其频率可以/将随温度和电源电压而变化。我真的建议您仅在需要非常粗略的计时时才使用它。
    【解决方案2】:

    您是对的,LSI 在这部分是不可微调的,并且如数据表中所述,典型频率为 40 kHz,但可以在 30 到 50 kHz 之间的任何位置,这对于 RTC 来说不是一个很好的选择如果您需要任何类型的准确性。

    我想如果你能测量 LSI 和 LSE 时钟之间的差异,当你知道你是快还是慢时,你可以补偿 RTC 中的时间偏移,但这将非常依赖于温度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 2011-04-05
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多