来自:http://bbs.taobao.com/catalog/thread/154521-257333426.htm

1:如何选择晶振
    对于一个高可靠性的系统设计,晶体的选择非常重要,尤其设计带有睡眠唤醒(往往用低电压以求低功耗)的系统。这是因为低供电电压使提供给晶体的激励功率减少,造成晶体起振很慢或根本就不能起振。这一现象在上电复位时并不特别明显,原因是上电时电路有足够的扰动,很容易建立振荡。在睡眠唤醒时,电路的扰动要比上电时小得多,起振变得很不容易。在振荡回路中,晶体既不能过激励(容易振到高次谐波上)也不能欠激励(不容易起振)。晶体的选择至少必须考虑:谐振频点,负载电容,激励功率,温度特性,长期稳定性。一般来说某一种单片机或外围芯片都会给出一个或几个典型适用的晶振,常用的像51单片机用12M晶振,ATmega系列单片机可以用8M,16M,7.3728M等。这里有一个经验可以分享一下,如果所使用的单片机内置有PLL即锁相环,那么所使用的外部晶振都是低频率的,如32.768K的晶振等,因为可以通过PLL倍频而使单片机工作在一个很高的频率下。

2:如何选择电容起振电容
    从原理上讲直接将晶振接到单片机上,单片机就可以工作。但这样构成的振荡电路中会产生偕波(也就是不希望存在的其他频率的波),这个波对电路的影响不大,但会降低电路的时钟振荡器的稳定性. 为了电路的稳定性起见,建议在晶振的两引脚处接入两个瓷片电容接地来削减偕波对电路的稳定性的影响,所以晶振必须配有起振电容,但电容的具体大小没有什么 普遍意义上的计算公式,不同芯片的要求不同。
(1):因为每一种晶振都有各自的特性,所以最好按制造厂商所提供的数值选择外部元器件。 (2):在许可范围内,C1,C2值越低越好。C值偏大虽有利于振荡器的稳定,但将会增加起振时间,比较常用的为15p-30p之间。