1.震荡电路相关的资料
芯片手册中,有关震荡电路的部分有一些,更详细的有关震荡电路的知识,在芯片手册中已经有相关连接,推荐这篇官方文档:
AN849https://ww1.microchip.com/downloads/en/Appnotes/00849a.pdfMicroChip的官方长期有效的参考文档有AN标号,怀疑是Article No.的简称。
2.震荡器硬件相关知识
震荡器因为芯片内部已经预置,一旦决定使用外部震荡器,要么是为了协同工作的目的,要么就是为了获得更高端的采样精度。所以,一般会使用晶振。
晶振在使用时,PIC单片机提供了三种模式:LP,XT,HS,这三种模式对应了三种不同的增益级别,在AN849中,介绍的很清晰。它依据晶振的频率,LP->XT->HS频率越来越高。
用到外部晶振时,电路需要用到PIC单片机的两个管脚,电路一般如下:
其中:RFext是为了在内部的反向放大器前后节点间提供一个快捷通道,协助晶振起振,一般的取值取1M欧,Rs被称为谐振电阻,需要查晶振的手册。C1/C2以及OSC1/OSC2之间的电容以及线路的寄生电容,一般需要满足振荡器的负载电容的条件,具体而言,有如下公式:
振荡器的原理,在AN849中描述的很清晰,大致的情形是:
如果定义晶振的一个管脚的相位是0度,经过电路里的容性器件,信号会翻转90度,经过反向放大器,会再次折返180度。而而最终到达晶振的另一个管脚处,信号刚好翻转270度。晶振正负极间,因为本身会激发出震荡的交流信号,相位会刚好再翻转90度。这样节拍会刚好一致。
传统的LC震荡回路,因为L和C组件在谐振点,阻抗刚好相等,但因为他们的方向刚好相差180度,所以,能量会在电感和电容间来回倒手。所以也能起振。
3.相关配置项大全
- OSCCON.IRCF 无需设置.
- OSCCON.SCS 在使用外部晶振时,会选择bit00
- OSCCON2.MFIOSEL 如果外部晶振无法分频,则仍然保持开启即可。
- OSCCON2.PRSD需要打开,我们的是无源晶振。
- CONFIG1H.FOSC,对于1MHz以上的晶振需要设置为HS Oscillator
- CONFIG2L.POWTEN建议打开,否则初始化代码可能因为上电供电不稳定被重复执行。