HSI 和 MSI - 两个内部 RC OSC 在微控制器中的应用

电器工程 stm32 微处理器 时钟速度
2022-01-06 06:47:52

在我使用的 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 用于任何事情,为什么它们在单芯片中包含两个时钟?

1个回答

HSI 更准确,但灵活性较差。

查看数据表中突出显示的值,MSI 频率在温度和电源电压范围的低端变得极其不可靠,而 HSI 几乎不会注意到 V DD从 3.6V 下降到 1.8V。

因此,您在将 HSI 作为时钟源时遇到问题是非常令人惊讶的。在中间添加一点意味着大约 20% 的时钟漂移。这比恒指的理论最坏情况准确度要差一个数量级。一定还有其他问题还潜伏着。

值得注意的是,HSI16 可以在 STOP 模式下运行,但 MSI 不能。

恒指16 微星-1 微星-2