在MCU单片机的发展中,外部晶体通常用于异步通信、安全等需要,而无源晶体由于价格亲民等因素而被广泛使用。工程师们都经历过这种情况,经常遇到各种各样的晶体振动,那么,如何解决呢?
根据客户的日常支持,遇到以下的总结,供客户参考。
1。软件引起的异常:
异常现象是代码“刚开上电,代码就"卡死”不能在开机时执行。
当使用外部晶体时,处理顺序必须是先后顺序的,因此系统时钟不能直接切换到外部晶体。正确的操作是先驱动外部晶体,然后在稳定后将系时钟系统切换到外部晶振,使MCU单片机能够可靠地基于外部晶体。代码是正确的,但是代码没有运行,并且通过忙调试,代码已经停止“同时”(while)!(OSCXCN和0x80):“哪里,怎么了?”
外部晶体不仅应该被打开,而且还要根据不同的时钟速率。在OSCXCN,设定适当的xfCN[2:0]值,否则晶体不会正常振动。对于正确的操作,应根据外部晶体的频率正确设置OSCXCN中的XFCNC[2:0]的值。
图1:OSCXCN中XFCN[2:0]值设置表
三、因硬件电路而导致原因:
部晶体参考电路如下图2所示。除了适当的负载电容器外,还增加了10M的交叉连接电阻。
图2 :外部晶体电路图
此外,为了使晶体振动稳定且不易受到干扰,晶体应尽可能接近于布线中的MCU。对于没有GND的脚,外壳应该尽可能地接地。
四、晶体选择异常:
最后,除了上述参数的正确选择之外,还有一个不常见的参数。如图3所示,驱动电平,这种类型的晶体的最高水平是100uW,而硅实验室的C8051 F506是最低的驱动功率是500 UW,显然这两个是不匹配的。
图3 :某型晶体参数表
用上述方法,晶体以其精度高、成本低而广泛应用于MCU中,但在使用中,只能充分注意编码、配置、硬件电路、晶体参数等因素,才能正确使用晶体。