在MCU單片機(jī)的發(fā)展中,外部晶體通常用于異步通信、安全等需要,而無源晶體由于價(jià)格親民等因素而被廣泛使用。工程師們都經(jīng)歷過這種情況,經(jīng)常遇到各種各樣的晶體振動(dòng),那么,如何解決呢?
根據(jù)客戶的日常支持,遇到以下的總結(jié),供客戶參考。
1。軟件引起的異常:
異?,F(xiàn)象是代碼“剛開上電,代碼就"卡死”不能在開機(jī)時(shí)執(zhí)行。
當(dāng)使用外部晶體時(shí),處理順序必須是先后順序的,因此系統(tǒng)時(shí)鐘不能直接切換到外部晶體。正確的操作是先驅(qū)動(dòng)外部晶體,然后在穩(wěn)定后將系時(shí)鐘系統(tǒng)切換到外部晶振,使MCU單片機(jī)能夠可靠地基于外部晶體。代碼是正確的,但是代碼沒有運(yùn)行,并且通過忙調(diào)試,代碼已經(jīng)停止“同時(shí)”(while)?。∣SCXCN和0x80):“哪里,怎么了?”
外部晶體不僅應(yīng)該被打開,而且還要根據(jù)不同的時(shí)鐘速率。在OSCXCN,設(shè)定適當(dāng)?shù)膞fCN[2:0]值,否則晶體不會(huì)正常振動(dòng)。對(duì)于正確的操作,應(yīng)根據(jù)外部晶體的頻率正確設(shè)置OSCXCN中的XFCNC[2:0]的值。
圖1:OSCXCN中XFCN[2:0]值設(shè)置表
三、因硬件電路而導(dǎo)致原因:
部晶體參考電路如下圖2所示。除了適當(dāng)?shù)呢?fù)載電容器外,還增加了10M的交叉連接電阻。
圖2 :外部晶體電路圖
此外,為了使晶體振動(dòng)穩(wěn)定且不易受到干擾,晶體應(yīng)盡可能接近于布線中的MCU。對(duì)于沒有GND的腳,外殼應(yīng)該盡可能地接地。
四、晶體選擇異常:
最后,除了上述參數(shù)的正確選擇之外,還有一個(gè)不常見的參數(shù)。如圖3所示,驅(qū)動(dòng)電平,這種類型的晶體的最高水平是100uW,而硅實(shí)驗(yàn)室的C8051 F506是最低的驅(qū)動(dòng)功率是500 UW,顯然這兩個(gè)是不匹配的。
圖3 :某型晶體參數(shù)表
用上述方法,晶體以其精度高、成本低而廣泛應(yīng)用于MCU中,但在使用中,只能充分注意編碼、配置、硬件電路、晶體參數(shù)等因素,才能正確使用晶體。