【原创】初手普及之Crystal和Oscillator的区别
0赞上篇给大家说了说程序断点的事,这次我想再聊聊我们平时常遇到也是初手或菜鸟容易混淆的另一个问题——晶振。
嵌入式系统最不可或缺的两大元素,即电源和时钟(有点类似食物和水对我们人来说的重要性),这两个对系统正常运行来说是“刚需”(这个词在房地产市场比较火热,呵呵),缺一不可。而抛开电源不提,无论是MCU还是MPU都是顺序执行的同步器件(即使对FPGA来说,也只是在仅仅需要逻辑粘合的时候才不需要时钟,不过也只有头撞树上了才会用FPGA只做个逻辑粘合吧,呵呵),既然是同步器件,那就离不开时钟。而时钟从何而来,有多种途径,我们这次只说说最常用的,即晶体振荡器(这次不提一些MCU内部自带的误差和温漂都较大的RC振荡器时钟)。
我们在翻看一款MCU的英文参考手册或者打算设计其最小系统电路的时候,常常会遇到Crystal和Oscillator这两个词,而新手往往不理解这两个词的区别以及它们所代表的软硬件设计上的不同。所以我觉着有必要在这里以正文的形式给新手普及一下这两个概念,如有不妥,欢迎高手拍砖,呵呵~
说的直白点,Crystal(晶体),即我们常说的无源晶振,而Oscillator(振荡器),即有源晶振。因此在我们设计MCU最小系统电路的时候,如果使用Crystal的话,除了外部需要加上谐振电容(有些会加上M欧级的反馈电阻)之外,还需要MCU内部的OSC振荡电路辅助才能正常产生所需时钟,而如果使用Oscillator的话,则只需要给它加上电源,即可输出时钟到MCU的时钟输入端(一般为EXTAL或者一些CLKIN之类的管脚),内部也可以Bypass(绕过)掉MCU的OSC模块,直接供MCU使用。由于实在是在网上找不到自己比较满意的有代表性的Crystal和Oscillator的电路图,所以就先不加了,不好意思了~
Crystal和Oscillator原理上的区别也造成了两者各有优缺点,Oscillator外围电路简单,驱动能力强也就抗干扰能力强(有些工业环境使用Crystal的话有不能正常起振的风险或者丢失脉冲),但是价格较贵而且对一些低功耗应用来说其功耗也相比Cystal要高出不少,而Crystal的话价格低廉且由于不是有源器件功耗很低,不过貌似Crystal的频率做不到太高(一般32MHz算高的了,我觉着工艺上应该没问题,可能是由于需要外围电路,频率太高EMC性能就不行了)。
好了,今儿就说这么多了,下次再聊,欢迎博客下面留言,未完待续~