You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32F072 LSI校准疑问:基于LSE校准是否因无寄存器无法实现?

基于LSE校准LSI用于RTC的解决方案

首先可以明确地说:不是的,哪怕RM0091里没有类似HSICAL的LSI出厂校准寄存器,你依然可以完成LSI的校准,让它适合作为RTC时钟源。下面结合STM32F0的特性给你具体的思路:

核心原理:用LSE作为参考校准LSI

LSE是高精度的32.768kHz外部时钟,稳定性远优于LSI。你可以在设备未进入低功耗的正常模式下,利用LSE作为基准来校准LSI,具体步骤大概是这样:

  • 先启用LSE和LSI时钟,确保两者同时运行。
  • 用LSE驱动一个定时器,设置一个固定的时间窗口(比如1秒,对应LSE的32768个脉冲)。
  • 在这个时间窗口内,统计LSI产生的脉冲数(可以用另一个定时器以LSI为时钟源计数,或者通过捕获方式实现)。
  • 对比统计到的LSI脉冲数和目标值(比如你希望LSI接近32kHz,或者RTC需要的频率),计算出需要调整的偏移量,然后修改RCC_CSR寄存器中的LSITRIM[3:0]位——这就是LSI的微调寄存器,RM0091的RCC章节里一定有对这个寄存器的说明,你可以再仔细核对下。
  • 重复调整和统计,直到LSI的实际频率满足你的精度要求。

校准时机与低功耗场景适配

因为你需要在校准后的LSI在低功耗模式下发挥作用,建议:

  • 在设备上电后的正常工作阶段完成校准,把校准好的LSITRIM值保存到备份域寄存器(比如BKP区域,掉电不会丢失)或者内部Flash中。
  • 每次进入低功耗模式前,先从备份域/Flash中读取校准值,配置到RCC_CSR的LSITRIM位,再切换RTC时钟源到LSI,然后进入低功耗。

为什么RM0091里没有LSI的出厂校准寄存器?

STM32F0系列的LSI属于内部低速RC振荡器,本身精度不如HSI或者LSE,原厂没有为其设置出厂校准寄存器(像HSICAL那种记录出厂偏移的寄存器),但提供了LSITRIM手动微调位,这就是给用户做校准用的入口。

额外注意事项

  • LSI的频率受温度影响较大,如果你的设备工作环境温度波动明显,建议定期重新校准,或者在不同温度区间下保存对应的LSITRIM校准值,结合板载温度传感器动态切换。
  • 校准过程中要确保LSE的稳定性,避免外部干扰影响参考时钟的精度。

内容的提问来源于stack exchange,提问作者syndrom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:26:46