怎么可能在 LPC3141 MCU 中,MCU 的频率为 270MHz,而 12MHz 石英晶体用于振荡器(在时钟生成单元内部)?对我来说毫无意义...
谁能解释一下。
怎么可能在 LPC3141 MCU 中,MCU 的频率为 270MHz,而 12MHz 石英晶体用于振荡器(在时钟生成单元内部)?对我来说毫无意义...
谁能解释一下。
由于各种原因,这对于处理器来说非常常见。首先,时钟往往是系统中频率最高的信号,因此使用较低频率的振荡器将减少辐射射频干扰。其次,在芯片上生成实际的内核时钟频率意味着时钟速度是可配置的。降低 CMOS 中的时钟速度可以节省功耗,因此通过让 CPU 能够控制自己的时钟频率,软件可以根据需要调整 CPU 速度以降低功耗。这也可以在您的台式机或笔记本电脑上完成 - 内核运行在 2 到 3 GHz,但除了串行总线(SATA、PCIe 和 USB 3)之外,主板上没有任何东西运行得如此之快。
该时钟生成是通过称为 PLL(锁相环)的设备完成的。大多数 PLL 包含一个压控振荡器 (VCO)、一到三个分频器、一个相位比较器和一个滤波器。基本思想是将 VCO 的输出锁定在参考时钟频率的整数倍上。PLL 的主要部分为 VCO 产生驱动电压。这是通过对 VCO 的输出进行分频并与参考时钟进行相位比较来完成的。如果相位超前或滞后,则会产生正或负误差电压。然后将该电压集成到环路滤波器中,然后传递到 VCO 的输入端。如果相位超前,VCO 控制电压将降低,VCO 频率将降低。如果相位滞后,VCO 控制电压将升高,VCO 频率将增加。最终,分频的 VCO 输出和参考时钟将在相位和频率上匹配,并且 PLL 将被锁定。
这种方法只能产生时钟频率的整数倍。如果参考振荡器为 12 MHz,则在 PLL 中除以 2 将导致乘以 2 以获得 24 MHz 的输出频率。除以 3 将产生 36 MHz。除以 4 将产生 48 MHz 等。
在输入或输出处添加另一个分频器可以生成小数时钟速率。在 PLL 中除以 2 和乘以 3 将产生 18 MHz。除以 2 并乘以 5 将产生 30 MHz。除以 2 并乘以 45 将产生 270 MHz。
另一个考虑因素是 VCO 的频率范围通常是有限的。这可以防止产生需要大分频器的频率,因为 VCO 频率会太低或太高。添加另一个分频器以便可以对参考输入和 PLL 输出进行分频,从而在一定程度上缓解了这个问题,因此 PLL 可以产生更宽的频率范围。只要分频不是素数,它就可以在输入和输出分频器之间进行拆分,这样 VCO 就可以在其工作频率范围内工作。
这是通过所谓的锁相环乘法器完成的,另请参见wiki。运行微控制器中的小型压控振荡器 (VCO),该振荡器经过专门设计,可在所需的工作核心频率附近稳定运行。然后通过级联触发器对该频率进行分频,并与晶体频率进行比较。产生的错误被反馈到 VCO 以纠正它。当两个频率最终同相时,它们被称为锁相,MCU 时钟可以由 VCO 驱动。
IMU 内部有硬件乘法器,可将 12MHz 的输入时钟乘以更高的值。这可以通过称为锁相环的东西来实现。想象一下像微控制器内部的NB3N502(数据表)这样的芯片。
在 wiki 上了解有关 PLL 和时钟乘法的更多信息: