注意 STM32 LSI:其容差高达 ±47%

STM32 LSI 振荡器似乎是 RTC、IWDG 看门狗等的有吸引力的选择 - 无需外部组件且

但一个事实经常被忽视:由于它内部是 RC 振荡器,它有极高的容差

例如,通过查看 STM32F407 数据表,我们可以看到其容差为 ±47% 显示 LSI 振荡器容差 ±47% 的 STM32F407 数据表

换句话说,LSI 时钟可以运行速度比预期慢一半或快 1.5 倍。 ±47% 相当于 ±470 000 ppm,而任何普通晶体的容差为 ±20 ppm

较新的 STM32 系列如 STM32H747XI 改进了 LSI 精度:

显示改进的 LSI 振荡器精度规格的 STM32H747 数据表

这相当于 ±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