注意 STM32 LSI:其容差高达 ±47%
STM32 LSI 振荡器似乎是 RTC、IWDG 看门狗等的有吸引力的选择 - 无需外部组件且
但一个事实经常被忽视:由于它内部是 RC 振荡器,它有极高的容差。
例如,通过查看 STM32F407 数据表,我们可以看到其容差为 ±47%

换句话说,LSI 时钟可以运行速度比预期慢一半或快 1.5 倍。
±47% 相当于 ±470 000 ppm,而任何普通晶体的容差为 ±20 ppm。
较新的 STM32 系列如 STM32H747XI 改进了 LSI 精度:

这相当于 ±1.875 % 的容差,即 ±18 750 ppm - 仍然比任何晶体甚至陶瓷谐振器高几个数量级。
你能通过 RTC 数字调整消除差异吗?
STM32 数字调整只有 -487.1 ppm 到 +488.5 ppm 的范围 - 但即使对于精度更高的 STM32H747XI,你也需要至少 ±20 000 ppm 的调整范围才能补偿初始不准确和温度系数。
你能做什么来获得更好的精度?
通常,我建议只为 RTC 使用晶体 - 或完全使用外部 RTC。
关于 IWDG,你别无选择只能使用 LSI。通常你可以选择更长的复位间隔以避免如果你的 LSI 运行比标准 32 kHz 快得多时的意外看门狗复位,或者你可以更频繁地复位看门狗。如果你在中断中复位看门狗,你应该考虑使用更高优先级的中断 - 并且较少地全局禁用中断,尽量避免长时间连续全局禁用中断的时期。
Check out similar posts by category:
Electronics, STM32
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow