STM32F072 LSI校准

时间:2019-07-30 13:44:57

标签: stm32 cpu-registers

我最近开始进行嵌入式编程,目前负责基于LSE时钟的LSI Calibration,这在设备进入低功耗模式时非常有用。根据此参考手册:

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 ...

这是否意味着在将其用作RTC时钟之前无法实现LSI的校准?

谢谢。

2 个答案:

答案 0 :(得分:2)

如果您要驱动LSI的RTC,则可以调整sync_prediv和async_prediv值,以使RTC以正确的速率滴答。您可以通过针对LSE(或HSI或HSE)测量LSI的实际速率来解决这些问题。该文档(尤其是第4节)可能会有所帮助: Calibrating STM32F0x1, STM32F0x2 and STM32F0x8 lines internal RC oscillators

如果您有LSE,为什么不只将其用于RTC并禁用LSI?在任何一种情况下,低功率模式下的功耗都将相似,并且如果您可以将LSE与“低驱动”功率一起使用,则LSE的功耗实际上将比LSI略低。

答案 1 :(得分:0)

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

我想,如果您可以测量LSI和LSE时钟之间的差异,则可以在知道运行速度快还是慢的情况下补偿RTC中的时间偏移,但这将取决于温度。