STM32F072 LSI 校准

STM32F072 LSI Calibration

我最近开始使用嵌入式编程,目前我的任务是基于 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 时钟之前无法对其进行校准?

谢谢。

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

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

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

如果您有 LSE,为什么不将其用于 RTC 并禁用 LSI?低功耗模式下的功耗与任一源都相似,如果您可以使用具有 "low-drive" 功率的 LSE,则 LSE 的功耗实际上会略低于 LSI。