1. 本篇将以Microchip的产品来写。我认为MCU公司里,Microchip在时钟方面的文章最多。Microchip的术语可能与其它公司不一样,但用法没区别,不影响理解。
2. 用“时钟源”这个术语,区别于MCU内部时钟分频产生的“时钟”。
通用型MCU允许使用外部时钟源。为了给应用MCU的人提供更多的便利,一般外部时钟源的频率范围都很宽。不过,频率只是外部时钟源器件选型和设计的三个要素之一,剩余两个要素后面会介绍。
外部时钟源的类型
-- 有源 (active) 时钟源:矩形波或正弦波输入,以Vss为基准。常见的是晶体振荡器或晶振(Oscillator)。
-- 无源 (passive) 时钟源:一种必须被振荡电路驱动的元件,例如各种谐振器(Resonator)、晶体(Crystal),更廉价。其中,谐振器需要的功率要高于晶体。
引脚XIN和引脚XOUT
X我理解是Crystal的谐音;IN是input、输入的意思而OUT是output、输出的意思。
XIN和XOUT之间实际上有一个振荡电路,叫做 Pierce 并联谐振振荡电路,原理图如下。图中有一个反相器,输出通过反馈电阻RF接回到输入,由此形成一个不稳定的电路。外接晶体和谐振电容后,这个电路会在单位增益上达到稳定,以单位增益对应的频率振荡。图中上部矩形框内的部分都是在MCU的芯片上实现的。
XIN引脚总是要连接的,而XOUT引脚只在使用无源时钟源的情况下才用到。使用有源(active)时钟源的情况下,例如晶振,外部信号发生器输出等,信号源的参考点是MCU的Vss。这时不需要MCU内的振荡器辅助,所以只需要接XIN一个引脚,XOUT引脚可悬空或复用其它功能。使用无源(passive)时钟源的时候,例如晶体和谐振器,其自身不能产生振荡信号,需要借助MCU内置振荡电路。这时,除了XIN引脚,必须用到XOUT引脚。
下面讨论XIN和XOUT两个引脚都被使用的情况,有几个应用要点值得关注。
1. 选择振荡电路驱动模式
应该根据时钟源的功率需求来选择适当的驱动模式。前面提到,无源外部时钟源中,和晶体相比,谐振器需要更高的驱动功率。对于晶体,和低频晶体(例如音叉结构的32.768kHz晶体)比,AT-Cut的晶体需要更高的驱动功率。为此,通用MCU除了内置振荡电路,还为振荡电路设计了不同的驱动功率,例如LS模式,XT模式和HS模式,功率就是递增的。
除了考虑时钟源的功率需求,还要关注振荡电路的电源电压,常常是MCU的电源电压。如果振荡电路的电压不足,那么其输出功率也会下降(电流增加受到芯片布线的限制)。例如,一个MCU的电源范围是1.8~5.0V,但是振荡电路的XT模式只能在3.0~5.0V有效。这时如果外接电源跌落到3.0V以下,那么外部时钟源就可能停振。而且,这样的电路在3.0V以上使用是正常的,但是转换为低功耗的1.8/2.5V时,就可能不工作。
2. 不要过度驱动
上面讨论了驱动功率不足导致的停振,接下来是因为驱动过度导致的晶体疲劳甚至破裂。
如基础理论第006篇所述,充当时钟源的晶体是以压电效应工作的。如果驱动电路给出的电压过高,那么晶体的振幅就会过大,从而缩短其使用寿命,甚至立即被破坏,形成寿命可靠性风险。
3. 检查时钟信号
怎样知道MCU的外部时钟源是不是“合适”?这就要提到正确的测量方法。
建议使用高输入阻抗的示波器探头(100:1)来测量XOUT的信号。该信号应该是低失真的正弦波。用普通的电压探头检查时,有可能因为探头本身的电容而改变振荡电路的特性,造成停振。
-- 如果发现波形被截顶或者畸变率高,那么就应该马上降低振荡电路的驱动功率,比如从HS降到XT。
-- 如果降到XT还是不能彻底解决问题,那么需要在晶体上串联一个电阻来消耗多余的功率。见上图的R1。
-- 如果振荡信号并没有工作在需要的频点上而是其某个倍频或者分频,也说明驱动功率不合适,需要立即调整。
最后,这样的检查应该在开发的各个阶段进行,不管是最初的功能样机还是过程样机,都是一样。如果修改了PCB设计,更换了晶体,更是需要检查。
下面简述一下PCB布线的注意事项。
外部时钟源和MCU之间形成的是一个振荡电路,这对于微弱信号调理以及EMC来说都是不利的。为此,应参照高频电路对待,做好PCB布线。
首先,电路回路小。外部时钟源,例如晶体,距离XIN/XOUT引脚不要超过15mm,最好是10~12mm。这个距离不至于有DFA问题。晶体和电容、电阻都优先选用小外形的产品;
其次,电场屏蔽。在PCB上用接地(或其它固定电位)导体把这个振荡电路围起来,形成Guard Ring(屏蔽环),然后屏蔽环一点接地。金属外壳的晶体,可以把金属壳用一根导线焊在PCB的地上,也有电场屏蔽的作用。引脚数较多的通用MCU,一般会在XIN/XOUT旁边安排一个Vss引脚,这个引脚是屏蔽环一点接地的最佳位置。引脚数较少的MCU可能没有这个脚,那么可以选择接在模拟地-数字地单点连接的位置;
最后,避免耦合。在振荡电路的区域不要排布其它的线路。对于双面和多层PCB,可以考虑振荡电路下方铜皮开窗;
下面是布线示例:
Ref
1. DS00838A. Basic PIC16/17 Oscillator Design. Mircochip
2. Guidelines for Getting Started with PIC18-Q71 Microcontrollers - 4.5 External Oscillator Pins. Michochip
3. DS00949A. Making Your Oscillator Work. Microchip
作者:面包板社区博主 电子知识打边炉
(请备注来意,加群请备注城市-称呼-行业岗位信息)
逛展有惊喜!
围观拆解!现场领开发板!
👇快来报名!