在我使用的 ST 微控制器中,有两个 OSC 可以路由到完全相同的硬件,我想知道你什么时候会使用每个。
链接到零件文档 STM32L496ZG
摘自关于两个 OSC 的数据表 -
-16 MHz 高速内部 RC 振荡器 (HSI16),可由软件微调,可提供 PLL
– 多速内部 RC 振荡器
(MSI),可通过软件进行微调,能够生成 100 kHz 至 48 MHz 的 12 个频率。当系统 (LSE) 中有 32.768 kHz 时钟源可用时,MSI 频率可以通过硬件自动调整,以达到优于 ±0.25% 的精度。在这种模式下,MSI 可以为 USB 设备供电,从而无需外部高速晶体 (HSE)。MSI 可以提供一个 PLL。
ST AN4555 应用笔记解释
HSI16 时钟
HSI16 时钟信号由内部 16 MHz RC 振荡器产生。HSI16 RC 振荡器的优点是可以低成本提供时钟源(无需外部元件)。它还具有比 HSE 晶体振荡器更快的启动时间,但即使经过校准,其频率也不如外部晶体振荡器或陶瓷谐振器准确。如果 HSE 晶振发生故障,HSI16 信号也可以用作备用源(辅助时钟)。请参阅参考手册部分:时钟安全系统 (CSS)。
3.3 MSI 时钟
MSI 时钟信号由内部 RC 振荡器产生。其频率范围可以通过软件使用时钟控制寄存器 (RCC_CR) 中的 MSIRANGE[3:0] 位进行调整。提供 12 个频率范围:100 kHz、200 kHz、400 kHz、800 kHz、1 MHz、2 MHz、4 MHz(默认值)、8 MHz、16 MHz、24 MHz、32 MHz 和 48 MHz。MSI RC 振荡器具有提供低成本(无外部组件)低功耗时钟源的优势。此外,当通过 32.768 kHz 外部振荡器 (LSE) 进行微调时,MSI 可以为 USB 设备提供非常准确的时钟,从而无需外部高速晶体 (HSE)。
我的问题
当 STLINK LPUART 在我从微控制器发送到 PC 的每个字节的中间添加一个额外的零时,我一直在拔头发。我把它归结为时间,我意识到我已将 HSI 指定为 LPUART 时钟。当我分配 MSI 时,错误消失了。我想我需要调整 HSI,因为它必须需要校准。
但这让我想知道,因为我几乎可以将 MSI 用于任何事情,为什么它们在单芯片中包含两个时钟?