参考文章:http://www.diangon.com/wenku/rd/dianzi/201502/00019711.html

晶振与晶体的区别:

1) 晶振是有源晶振的简称,又叫振荡器。英文名称是oscillator。晶体则是无源晶振的简称,也叫谐振器。英文名称是crystal,电路上简称为XTAL。

2) 无源晶振(晶体)一般是直插两个脚的无极性元件,需要借助时钟电路才能产生振荡信号。常见的有49U、49S封装。

3) 有源晶振(晶振)一般是表贴四个脚的封装,内部有时钟电路,只需供电便可产生振荡信号。一般分7050、5032、3225、2520几种封装形式。

晶体为无源的,一般是两个管脚,需要专门的时钟电路才可起振,像普通的单片机需外接晶体和两个电容。晶振为有源的(也称有源晶振),可以认为是晶体和外围电路的结合(晶振里面包含了晶体和起振电路)。一般是四个腿,有的有源晶振为单端输出,有的为差分输出。

有源晶振(简称晶振)一般是4个脚的封装,例如5032封装的贴片有源晶振:

晶体(crystal)和晶振(oscillator)的区别_嵌入式    晶体(crystal)和晶振(oscillator)的区别_嵌入式_02
其中有两个是电源引脚,另一个是振荡信号输出引脚,剩下一个是悬空的。信号输出引脚可以直接输出给单片机。

无源晶振(简称晶体)就是最常见的两脚封装:

晶体(crystal)和晶振(oscillator)的区别_嵌入式_03晶体(crystal)和晶振(oscillator)的区别_嵌入式_04

这个平时使用的时候也叫做晶振,但是是不准确的,这个应该叫做晶体,或者叫无源晶振。这个需要专门的时钟电路和起振电容配合才能输出时钟信号。

以STM32单片机为例,其OSC_IN和OSC_OUT是外部时钟源HSE的输入引脚,STM32的HSE时钟可以使用晶体或者晶振提供时钟源:

晶体(crystal)和晶振(oscillator)的区别_嵌入式_05

我们知道晶体和晶振的区别就是在于有没有时钟电路,所以当使用外部晶体的话,STM32内部的HSE会提供时钟电路,和晶体连在一起相当于组成一个有源晶振。当使用外部有源晶振的时候,内部的时钟电路就没有必要了,直接将有源晶振的时钟输出引脚直接接到OSC_IN引脚,OSC_OUT引脚悬空即可,同时软件上需要将HSE的时钟电路旁路掉,也就是说外部有源晶振的输入时钟信号直接供给STM32的时钟树,详情可以参考数据手册的时钟章节。