ARM MCU如何比外部晶振运行得更快?


12

因此,在此之前,我只使用简单的8位Atmel MCU,并在开发板原理图中意识到它只有12Mhz的晶体,但MCU的工作频率高达100MHz。(我认为默认值是80MHz。我只是为了娱乐而将其提高了一次。这只是代码中的一条简单代码。)

它是如何做到的?例如,为什么Atmega328以所使用的晶振速度运行?


5
1)mHz表示毫赫兹,因此等于1/1000赫兹,当您表示兆赫兹时,请使用MHz(大写M)。2)什么8位MCU?3)什么开发板?4)ATMega 328不必以晶振的速度运行,请阅读数据手册中的时钟部分,以了解可能的结果。5)有些IC具有PLL,可用于倍增外部时钟频率。
Bimpelrekkie,

1
@Bimpelrekkie:大部分评论就是答案。您想回答吗?
JRE

与12 MHz比较的VCO分频器最终乘以f。这就是PLL频率合成器的功能。
托尼·斯图尔特Sunnyskyguy EE75,19年

@Bimpelrekkie好像有人已经为我修复了它。我已经提到过Atmel和atmega328。但这并不重要,因为这只是一个例子。afaik atmega328p没有PPL?我主要是好奇如何将其简单地相乘。值得庆幸的是,马库斯·穆勒(Marcus Muller)已经很好地解释了这一点。
user3033693

您正在阅读的计算机中的处理器可能使用100Mhz参考时钟或更慢的时钟,但内核仍在ghz中运行。
old_timer

Answers:


28

这与内核是ARM处理器没有任何关系。关于时钟电路如何工作:

在许多系统中,例如微控制器,RF芯片,音频芯片……,您需要生成一个更快的时钟,该时钟应是某个参考时钟的精确倍数(例如,外部晶振)。

为此,您需要一个压控振荡器(VCO),可以通过输入或降低控制电压来调整频率。

现在,只需设置任何控制电压,就可以使它以大约在正确的“棒球场”内的频率振荡,而不是以输入频率的精确倍数振荡。特别是,VCO可能会有些漂移,因此频率也会在整个位置连续“漂移”。您需要通过将其与参考振荡器进行比较来控制该振荡器。

做到这一点的方法是采用锁相环。这个想法很简单:

  1. 将来自VCO的频率除以;这就是我们希望VCO比参考速度更快的原因。这样做很容易:例如,您可以简单地使用一个数字计数器,该计数器计数到N,然后才更改输出。N
  2. 将该时钟与的参考时钟进行比较。如果一个比另一个快,请相应地调整频率。您可以通过对两个时钟进行XOR运算以数字方式实现这一点-理想情况下,如果两个时钟相同,则结果为常数0,但是如果一个时钟比另一个时钟快,那么当两个时钟的XOR为1;两个时钟的XOR为1。相应地减慢或加快VCO。fVCO/Nfref

上面是一个控制循环,锁定到–的阶段,因此命名为。

对于具有丰富外设并因此受益于内部多个时钟的“丰富”微控制器,通常至少要有1个PLL。ATMega328在这方面有点奇怪:它是一个相对耗电,相对丰富的微控制器,仍然没有PLL。


1
谢谢:)这很好地解释了!您没有取笑或专心于我的愚蠢错误,而只是告诉我我明显在问什么。对于阅读障碍,我很难注意一些事情。即使我读了2-3次低谷的文章,我也错过了很多赚钱的机会,或者偶然地将大写字母放在不需要的地方。更不用说英语不是我的母语。
user3033693 '19

7
@AmyGamble您的英语很好,但是!我认为您发表的第一条评论是因为许多年轻工程师只是忘记了单位的大写字母-以后可能会变得非常麻烦:)我希望您永远不要灰心!
马库斯·穆勒

9

某些器件中具有PLL,可以将晶振频率倍增至更高的频率。ATMega328没有PLL,它直接使用晶体。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.