正文
時鐘電路在單片機(jī)小系統(tǒng)中很常見,今天我們就探討下單片機(jī)外部石英晶體振蕩器電路的構(gòu)成、特點和器件參數(shù),本文內(nèi)容選自龍順宇老師的新書《深入淺出STC8增強(qiáng)型51單片機(jī)進(jìn)階攻略》。
我記得小學(xué)的時候最喜歡做眼保健操,跟著旋律“1234,2234”,這旋律控制著我的每一個動作,踩著節(jié)拍完成了整個過程。細(xì)細(xì)想來,單片機(jī)的工作也是一樣,在一定的“節(jié)拍”下鎖存和處理數(shù)據(jù),產(chǎn)生不同的狀態(tài)和時序,完成不同的功能。如果沒有這個節(jié)拍,單片機(jī)就無法執(zhí)行程序和體現(xiàn)功能,這里的“節(jié)拍”就是時鐘信號,好比是單片機(jī)系統(tǒng)中的“心臟”。
在早期的51單片機(jī)產(chǎn)品中,時鐘信號一般是由外部振蕩電路產(chǎn)生,所以很多經(jīng)典的單片機(jī)原理類書籍也將時鐘電路當(dāng)作最小系統(tǒng)的必要組成之一,隨著單片機(jī)技術(shù)的不斷發(fā)展,為了進(jìn)一步降低產(chǎn)品的EMI電磁干擾(Electro Magnetic Interference),很多單片機(jī)在晶圓設(shè)計時內(nèi)置了時鐘源,片內(nèi)RC時鐘源的頻率還支持多種選擇,這樣一來開發(fā)人員就可以省去外部時鐘電路,單片機(jī)的時鐘輸入/輸出的引腳也可以節(jié)省出來當(dāng)普通I/O引腳使用。
但是話又說回來,片上時鐘源和外部時鐘源還是有區(qū)別的,一般來說片上時鐘源的啟動速度快,功耗適中,但是容易受到溫度的影響產(chǎn)生頻率偏差,若頻率偏差嚴(yán)重就會影響程序運行(特別是通信類程序)。還有就是片上時鐘的一致性難以保證,根據(jù)批次不一樣或者制造上的差異性會導(dǎo)致芯片時鐘頻率不盡相同,但是對于要求不高的場合,使用內(nèi)部時鐘源倒也無妨。外部時鐘源的啟動需要一個穩(wěn)定的時間,功耗也相對大一些,但是產(chǎn)生的時鐘精度較高,不管是用無源石英晶體還是有源晶振,其信號的穩(wěn)定度都較好,在持續(xù)性的通信應(yīng)用上還是推薦外部時鐘源作為單片機(jī)工作時鐘。
有的朋友可能會有疑惑,為什么小宇老師剛剛說到“無源石英晶體”而不是“無源晶振”呢?我們平時將無源石英晶體說成“晶振”其實并不準(zhǔn)確,無源晶體其實就是在石英晶片上電鍍引出了電極,一般是兩個腳,不用區(qū)分正反,在晶體結(jié)構(gòu)外面裝上了金屬外殼,然后再在外殼上激光打字。無源晶體要想起振,一般還需要輔助外圍電路才行。真正意義上的“晶振”是在晶體的基礎(chǔ)之上額外添加了振蕩、放大和整形電路后所形成的單元,常見的是4個腳,需要為其供電,然后從一個腳輸出穩(wěn)定可靠的時鐘信號,這種就是我們說的有源晶振。
說了這么多,我們也不知道用于產(chǎn)生時鐘信號的“心臟”長什么樣子,接下來我們回到《電子工藝》課程,看看如圖1所示的幾個常用于產(chǎn)生時鐘信號的器件實物。
圖1 常見時鐘產(chǎn)生類元器件實物圖
先來認(rèn)識第一行的器件,從左至右首先是直插式圓柱狀無源晶體,常見大小有2*6mm和3*8mm,常用于體積受限的場合,如U盤;接著是直插式HC-49S無源晶體,這種晶體外形最為常見;然后是直插式HC-49U無源晶體;最后是貼片式HC-49S無源晶體。第二行從左至右首先是貼片式晶振,單從樣式上看是無法區(qū)分有源和無源的,用戶需查閱產(chǎn)品手冊后加以區(qū)分,這種貼片式晶振常見2腳和4腳的,常用的器件體積有3225、3215、5032等;接著是MC-306封裝的晶振,常用的還有長條形的MC-146;然后是溫補(bǔ)晶振TCXO,其體積稍大,內(nèi)部設(shè)計有溫度補(bǔ)償電路和微調(diào)窗口,因其溫度特性好、頻率偏差小,價格也稍微貴一些,類似的還有恒溫晶振OCXO,價格就比TCXO還要貴一些;最后是SiTime公司推出的可編程晶振,該器件有別于傳統(tǒng)器件,用戶可以通過編程修改振蕩頻率,支持1MHz到725MHz范圍內(nèi)的頻率調(diào)整,在一些特殊的應(yīng)用場合會非常適用。
說到這兒,我就忍不住要問:石英晶體內(nèi)部長什么樣子呢?要解決這個問題很簡單,我們干脆動手拆解一個直插式HC-49U無源晶體吧!朋友們是不是感覺有點“殘忍”?。磕俏覀兙瓦x一個實驗室里放了N多年且引腳發(fā)生嚴(yán)重氧化的晶體來做實驗,拆解的過程如圖2所示,首先打開晶體的金屬外殼后發(fā)現(xiàn)了內(nèi)部有一層網(wǎng)狀隔片,目的是為了讓晶體與外部金屬殼絕緣和防震,拆除這層隔片后就看到核心石英晶體和電極了,用手輕輕一掰,“咔”的一聲就碎了,真是“嘎嘣脆,雞肉味兒”。通過這個破壞性實驗我們學(xué)到了什么呢?那就是晶體元器件在保存和使用時要避免磕碰,以免損壞內(nèi)部石英晶體,焊接的時候也不要持續(xù)高溫,以免晶體引腳升溫太快引起內(nèi)部電極與石英晶體片之間的碎裂,所以說石英晶體這種器件是外表看著“皮實”,但“內(nèi)心”脆弱的器件。
圖2 HC-49U無源晶體拆解過程
拆解完了晶體,心里就非常痛快了,接下來我們再看看振蕩電路的相關(guān)知識。單一的石英晶體無法產(chǎn)生穩(wěn)定的振蕩信號,必須輔助相關(guān)電路,常見的晶體振蕩電路可以用皮爾斯振蕩電路、考畢茲振蕩電路和克拉普振蕩電路。而用在單片機(jī)的電路幾乎都是皮爾斯振蕩器(Pierce Oscillator)結(jié)構(gòu)。哦!這個人我知道,就是那個打NBA的保羅·皮爾斯對吧?錯!這里的“皮爾斯”是喬治·皮爾斯。他發(fā)明了一種電子振蕩電路,特別適用于配合石英晶體振蕩以產(chǎn)生振蕩信號。皮爾斯振蕩器衍生自考畢茲振蕩器,其電路構(gòu)成十分簡單,我們自己也可以動手搭建,其電路原理如圖3(a)所示,用示波器測量“OUT”電氣網(wǎng)絡(luò)的輸出波形如圖3(b)所示。
圖3 皮爾斯振蕩器電路原理及輸出波形圖
分析該電路,電路采用單極性5V供電,U1所選型號為CD4069,該芯片是一款CMOS電平輸入/輸出的高速反相器(內(nèi)含6個反相器單元),反相器在電路中等效于一個較大增益的放大器單元,在整個電路中只用了CD4069中的2個反相器單元,也就是1A、1Y、2A、和2Y這4個功能引腳,其它的功能引腳都做了接地處理。
Y1就是無源的石英晶體,這里選擇的是標(biāo)稱振蕩頻率為16MHz的HC-49S晶體。R1是反饋電阻,通常取值都在兆歐級別,有了這個電阻就可以使反相器在晶振振蕩初始時處于線性工作區(qū),可以幫助晶體起振。R2可以調(diào)整驅(qū)動電位,以防止晶振被過分驅(qū)動而加速老化和造成晶體損壞。這兩個電阻的取值非常關(guān)鍵,一旦取值不當(dāng)就會產(chǎn)生高次諧波(一般是3次諧波,即Y1為xMHz時輸出信號為3xMHz),建議朋友們在搭建電路時合理考慮。
C1、C2為負(fù)載電容,它們可以幫助起振,一般選用20至30pF且頻率特性較好的電容(如瓷片電容、獨石電容或CBB電容),其取值大小對振蕩頻率有微調(diào)作用(所以晶體的實際起振頻率一般都不是絕對準(zhǔn)確的標(biāo)稱頻率),負(fù)載電容的取值受兩個方面影響,一是晶體器件實際的電容參數(shù),二是受PCB布線、焊盤和板層厚度等參數(shù)間接引入的寄生電容或雜散電容影響。所以朋友們在進(jìn)行實際電容選取時不一定要與晶體器件數(shù)據(jù)手冊中的負(fù)載電容參數(shù)完全等值,可以按照實際參數(shù)去做調(diào)整(順便一說,有的單片機(jī)芯片時鐘引腳單元內(nèi)部甚至自帶了不同檔位的負(fù)載電容,比如TI公司生產(chǎn)的MSP430x2xxx系列單片機(jī),該系列產(chǎn)品內(nèi)部就支持1pF、6pF、10pF和12.5pF的四檔負(fù)載電容可選,這種單片機(jī)時鐘引腳上只接個晶體就行,無需外圍輔助電路也能正常工作)。
經(jīng)過電路搭建,CD4069芯片的第4腳輸出的“OUT”就是時鐘信號,原則上一個石英晶體振蕩出的波形可以同時供給很多芯片使用,不一定是一個單片機(jī)就需要一個晶振,當(dāng)然了,也要考慮輸出信號的負(fù)載驅(qū)動能力,還得考慮PCB上時鐘走線帶來的干擾。
學(xué)完皮爾斯振蕩器的簡單電路后,有的朋友又會產(chǎn)生更大的疑惑,大家會想STC單片機(jī)的時鐘電路根本不用CD4069?。磕膬簛淼氖裁碦1和R2?。课乙话愣际墙觽€晶體和兩個負(fù)載電容就行了???確實如此,一般來說XTAL1和XTAL2是STC系列單片機(jī)的振蕩信號接入引腳(也可以僅由XTAL2單端接入時鐘信號)。其模型仍然是皮爾斯振蕩器,只不過將振蕩所需的反相器和相關(guān)電阻內(nèi)置到了單片機(jī)內(nèi)部罷了,其電路結(jié)構(gòu)如圖4所示。
圖4 單片機(jī)時鐘單元內(nèi)/外結(jié)構(gòu)
皮爾斯振蕩器因結(jié)構(gòu)簡單,非常適用于各種數(shù)字IC的設(shè)計制造。很多IC在設(shè)計的時候就內(nèi)建了高速反相器與電阻,只要在外部加上石英晶體與負(fù)載電容就可以工作。由于石英晶體頻率穩(wěn)定,故而電路成本較低,因此廣泛用于各種消費電子產(chǎn)品之中。
電路講完了我們就來看看“時鐘信號”到底有什么作用?之前我們說了單片機(jī)是工作在一定“節(jié)拍”下的,最快最直接的“節(jié)拍”就是由外部晶體振蕩電路或者內(nèi)部RC振蕩器提供的時鐘源頻率,這個時鐘我們稱之為“振蕩周期”,在此基礎(chǔ)之上還有狀態(tài)周期、機(jī)器周期(CPU周期)和指令周期,所以“振蕩周期”越小,則完成一條指令所需的時間就越短,簡單來說就是給的“節(jié)拍”越快,單片機(jī)工作的處理速度就越高。但是時鐘頻率也要有個“度”,受限于單片機(jī)內(nèi)部電路的電氣指標(biāo)和門電路的動態(tài)特性,單片機(jī)時鐘頻率一般都有個范圍,例如STC8H系列單片機(jī)可以支持4MHz至45MHz工作頻率。
必須說明的是晶體的標(biāo)稱頻率不能隨意選擇,有些應(yīng)用中對振蕩頻率是有要求的。舉個例子吧!有個朋友做51單片機(jī)串口通信程序的時候用的是外部石英晶體振蕩電路,石英晶體選擇的是12MHz,波特率是9600bps,上電后單片機(jī)可以正常工作,串口助手也能連續(xù)收到單片機(jī)的字符數(shù)據(jù),但是奇怪的是接收數(shù)據(jù)開始的時候是正常的,慢慢的就開始亂碼,到后面居然不能正常接收了,他趕緊問小宇老師,這是為啥呢?我讓他微調(diào)了程序并把晶振換成11.0592MHz后通信正常了!咦~這是為啥?按理說12MHz晶體產(chǎn)生的振蕩周期是1us,而11.0592MHz晶體產(chǎn)生的振蕩周期是1.085us,這兩個周期相差根本就不大,并不會過多影響單片機(jī)的執(zhí)行速度,他們的主要差異是用在串口通信時,12MHz作為數(shù)值帶入波特率計算后得到的偏差較大,在持續(xù)性通信過程中容易造成時鐘的“累積誤差”,每次都“慢半拍”持續(xù)下去的話就不止“半拍”了。
所以在特殊的應(yīng)用中產(chǎn)生了看似奇怪的石英晶體標(biāo)稱頻率,相似的還有用在DTMF(雙音多頻)編/解碼上的3.579545MHz,又有用在RTC(實時時鐘)上的32.768kHz,還有用在HF頻段RFID(射頻識別)上的13.56MHz等等,這些頻率值看似“怪異”實則有特殊的適用。所以啊,選擇合適的晶體或者晶振非常重要,選型的時候一定要考慮好封裝尺寸、負(fù)載電容、標(biāo)稱頻率、溫度范圍、頻率偏移、頻率老化時長等參數(shù)。
審核編輯 :李倩
-
單片機(jī)
+關(guān)注
關(guān)注
6026文章
44459瀏覽量
631238 -
振蕩器
+關(guān)注
關(guān)注
28文章
3795瀏覽量
138758 -
時鐘電路
+關(guān)注
關(guān)注
10文章
236瀏覽量
50658
原文標(biāo)題:只會純硬件,讓我很慌。
文章出處:【微信號:gh_a6560e9c41d7,微信公眾號:硬件筆記本】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論