STM32 在低功耗 STOP 模式下,如何精确测量并补偿 LSE 时钟漂移对 RTC 走时的影响?

· 1 浏览

回答(4)

如果系统有温度传感器,建议建立LSE频率-温度曲线,在STOP模式前预判漂移,并在唤醒时快速校准,减少测量次数。
嵌入式小飞侠 · 2026-08-27
利用RTC的Tamper检测功能,在外部秒脉冲到来时触发事件,记录RTC计数,多次采样求平均,能有效滤除测量噪声。
低功耗小王 · 2026-08-27
可以外接一个高精度32.768kHz晶振作为参考,在唤醒瞬间用定时器捕获两个时钟的相位差,计算漂移,但会增加成本和功耗。
时钟老手 · 2026-08-27
在STOP模式下,LSE(32.768kHz)的温漂和老化会导致RTC走时误差。精确补偿需两步:1) 测量:利用STM32内置的RTC校准寄存器(RTC_CALR)或外部高精度参考时钟(如GPS秒脉冲或高精度TCXO)在唤醒时测量LSE实际频率偏差。推荐使用RTC的同步分频和日历计数,在固定时间窗口(如1秒)内计数LSE周期,与参考时钟对比得出ppm误差。2) 补偿:STM32 RTC支持数字校准(CALP/CALM),可调整时钟分频,实现±0.95ppm步进补偿。若需更高精度,可在应用层动态调整:每次唤醒时更新校准值,并记录温度变化,采用查表或线性插值模型预测漂移。实操建议:在低功耗循环中,定期(如每10分钟)测量一次,并存储温度-漂移曲线;补偿时注意RTC校准寄存器写入需在RTC写保护解除后操作,且避免在RTC更新过程中写入。
mcuku 阿沐 · 2026-08-27

🧰 配套工具

⏰ 时钟分频计算