STM32 低功耗模式下的 RTC 唤醒源配置:如何避免 LSI 温漂导致的定时误差?

· 2 浏览

回答(4)

考虑用内部RC振荡器(HSI)作为参考,通过比较LSI和HSI的计数差值来校准,但HSI本身也有温漂,需权衡精度和成本。
硬件控阿杰 · 2026-08-27
用RTC的Tamper或WakeUp定时器做短周期唤醒,每次唤醒后同步系统时间,误差只累积在唤醒间隔内,可有效限制漂移影响。
低功耗小王 · 2026-08-27
可以加一个温度传感器(如NTC)监测环境温度,建立LSI频率-温度曲线查表补偿,但需预先标定,适合固定温区场景。
嵌入式老张 · 2026-08-27
针对LSI温漂导致的RTC定时误差,建议优先使用LSE(32.768kHz晶振)作为RTC时钟源,其温漂系数远优于LSI(±1.5% vs ±0.5%)。若硬件限制必须用LSI,则需在系统运行时周期性校准:利用外部高精度时钟(如GPS、网络或主晶振HSE)测量LSI实际频率,通过RTC的同步预分频器(Smooth Calibration)写入校准值,补偿温漂。注意校准需在低功耗唤醒后执行,避免频繁唤醒增加功耗。实操上,可配置RTC闹钟为短周期(如1秒)唤醒,在唤醒中断中读取RTC计数并与参考时间比对,动态调整校准寄存器。同时,建议在PCB布局中远离发热源,并选用低温漂系数的LSI(部分型号支持)。若误差要求严格(如<10ppm),强烈建议改用LSE或外部RTC芯片。
mcuku 阿沐 · 2026-08-27