一般情况下,设计人员按照厂家给出的参数表进行选择。如果系统能够正常工作,也就不再进行改进了。其实,这是不合适的。因为Microchip的单片机根据型号和版本的不同,工作电压在直流2.5~5.5V的范围内,汽车级温度可以在-40~-125℃范围内,而参数表中只给出了有限的几种情况,实际环境参数会对振荡电路的性能产生很大的影响。如高温、低电压可减小振荡环路增益,而从降低振荡频率或者难以启动;低温、高电压可以使环路增益变大,从而使晶振过驱动,产生损坏的潜在危险或者振荡电路工作的高次谐波频率上升,加大系统功耗。因此,如何正确设计系统的振荡电路十分必要。对于PIC系列单片机,一般的设计步骤如下:
①选择晶振。根据系统需要的振荡频率进行晶振的选择。此外,晶振的工作温度和频率稳定度也是十分重要的指标。
②选择振荡器类型。PIC系列单片机有RC、LP、XT、HS等振荡模式。除RC模式外,振荡模式的选择实际上就是环路增益的选择。低增益对应低振荡频率,高增益对应高振荡频率。一般根据实际需要的工作频率可参考数据手册来选择。
③选择C1、C2。理想的情况是,保证系统在高温和最低工作电压下能够正常工作,使得电容在数据手册推荐的范围内最小。同时选择C2比C1大一些以加大相移,使其有利于振荡电路的上电启动。
④选择Rs。在以上参数都已经选定后需要决定Rs的大小。简单的办法是让系统工作在最低温度和最大电压情况下,此时得到的应该是时钟电路最大输出幅度。用示波器观察引脚OSC2的输出波形(注意,示波器的探头将给电路引入一个电容,一般为几pF),如果发现正弦波的峰(接收Vdd处)和谷(接收Vss处)被削平或压扁,说明驱动过载,需要在OSC2和C2间加入1个电阻Rs,一般1kΩ左右或小于1kΩ。Rs不宜过大,过大将使得输入和输出产生隔离,从而产生较大的噪声。当发现需要一个较大的Rs才能消除过驱动时,可以增加负载电容C2来补偿。C2一般选择在15~33pF之间。
系统振荡电路的设计对系统的稳定性、功耗等影响很大。一般情况下,系统从Sleep状态下唤醒时,振荡电路最难启动(尤其系统工作在高温、低压、低频的情况下)。此时,电阻Rs有利于振荡电路的启动,因为廉价的碳膜电阻容易产生白噪声,从而帮助电路起振。此外,选择C2稍大于C1以增大相移,也有利于电路起振。
2 具体应用例子
2.1 系统组成及框图
系统主要由PIC单片机、双音频解码拔号电路、语音集成电路、接口电路、VCC电源控制电路、射频发射电路和EEPROM组成,可完成对家用电器的控制和对报警求援语音信息的自动传送,如图3所示。