【實作實驗室】振盪電路解密!石英晶體上電後多久會起振?

作者:實作派

振盪器 Oscillator 是電子電路很重要的一環,有了振盪器後,類比電路才開始邁向通訊領域,數位電路則開始有「時間序」的概念,也才有後來狀態機 state machine 的應用,所以振盪器的起振非常重要,沒振起來一切免談,有振起來,頻率也要準才行,現今最常用的是晶體振盪器 XTAL 。

今天有人問我上電後的石英晶體需要多久時間才會穩定振盪?這我倒沒真的測試過,既然有人問了我們就來測看看吧!

晶體振盪—線路

下圖是一般常見的考畢茲晶體振盪線路(Colpitts Oscillator),雖然說振盪線路百百種,但利用石英晶體 Crystal(XTAL)作為振盪元件的方式仍然是主流,因為石英晶體的 Q 值非常高,頻率可以很準。

所謂 Q 值是元件儲能與耗能的比例,有些人或許會有點陌生,但基本上它只是一個用來敘述儲能元件或系統的名詞。

Q=儲能/耗能

晶體振盪器線路圖(圖片來源:實作派提供)

以敲鐘來舉例,你敲它一下,鐘聲會餘音繚繞,這就是鍾罩外層的振盪所致,聲音繚繞越久,表示 Q 值越高,如果你在鍾罩內鋪上棉絮等布料,聲音會很快被布料吸走,甚至只剩下敲鐘當下的打擊聲,這樣的情況就表示 Q 值很低;如果有個鐘,它能讓人只敲一下就響到無窮無盡,那就表示它零耗能,也就是 Q 值無限大,當然這樣的東西並不存在。

石英晶體的高 Q 值,只要配上兩個電容就能形成一個共振腔,但共振腔內的振盪訊號終究會停止,若再配上一個放大器把輸出的訊號放大再加回到原來的輸入端,就形成了可永久振盪的振盪器。

以上只是簡略敘述振盪器怎麼回事,真的要寫起來會無窮盡,我今天只是要來看看多久會起振而已。

實體電路

身為實作派的助教,除了畫畫線路圖跑模擬之外,當然也要拿實際的線路真槍實彈地電路板跑看看才行。下圖是某個半殘的電路板,雖然功能上有點問題,但它還能開機、LED 也會閃爍,這表示系統有跑起來,晶體振盪器有正常工作。

下圖中的藍色線,就是我的測量點,XTAL 石英晶體的其中一根腳,我將它直接接到示波器的探棒;但我必須說,這樣的接法是不及格的,因為當我們直接把探棒接在 XTAL 的元件上,它的寄生電容會影響系統的振盪頻率,甚至有可能不起振。

正確的做法應該要使用主動探棒,但主動探棒很貴,除非需要經常用到,不然買起來還真心疼。如果你對晶片的 SDK 很熟,可以從晶片內部將時脈 clock 的訊號從 GPIO 繞出來,這樣間接地測量才不會影響到振盪頻率。

我自己會直接用探棒接觸,是不得已的,一來這塊板子的 Firmware 不是我寫的,二來這顆晶片並沒有 GPIO 可以讓你把時脈訊號繞出來;還好探棒直接接觸後,XTAL 仍然有起振,示波器還是能觀察到,但頻率絕對有偏差,只是頻偏目前不是我關心的重點。

晶體振盪器電路板(圖片來源:實作派提供)

附帶一提,量個振盪訊號,不是只要拉一條藍色線接上 XTAL(雖然這樣接不及格)就好嗎?上圖中其它的線是怎麼回事?原來這顆晶片只是整塊電路板的一個子電路,我不想讓它受到 main chip 的指令干擾,所以我用外部的 3.3 V 直接供電給子電路,另外這顆晶片有 Reset# pin,要將它 pull high 才能讓晶片開始工作,否則 XTAL 不會起振。

頻偏的問題

剛剛提到,我這種直接接觸的測量方式會導致頻偏,那麼頻偏會造成什麼問題嗎?系統依舊可以開機,程式也可以跑,到底哪裡會有問題?

我舉個例子好了,類比電視 NTSC 的色彩訊號頻率 spec 是 3.579545 MHz,電視機的振盪頻率理論上要跟它一樣,但 spec 規範的容忍度規範是多少呢?只有+/-10 Hz,這大約是 2.8 ppm,也就是說你的色彩訊號可能因為你用示波器觸碰石英晶體的關係,造成多 2.8 ppm 的頻偏,而這就足以讓你的電視機從彩色變黑白,而且還附帶很多雜訊,因為顏色訊號已經變成畫面的一部份了。

不過還好,我多年前自己試驗的結果,電視機通常會自己追彩色訊號的頻率,除非你偏得太離譜,電視機才會秀黑白畫面給你看。如果 3.58 MHz的訊號都能讓機器誤動作了,那現在流行的 Wifi 頻率在 2.4 GHz/5 GHz,當然對頻率又更敏感了。

也許你會問頻偏可以從示波器觀察到嗎?我的答案是不行。如果你觀察過示波器的頻率測量,你會發現一般示波器的頻率測量位數只到小數點下 2 位,少數機型會到小數點下 4 位,但它會不斷跳動,我不認為你有機會能穩定觀察到這 10 Hz 的變化,除非你用的是高檔貨。

石英晶體起振

回到我原本的問題上,直接上電觀察何時起振,如下圖 10 ms 以內就起振穩定了,當然每個電路起振的時間不同,我這裡只是要表達,它不會讓你等超過 1 sec。

振盪器是由小到大漸漸起振的,它不會馬上有弦波,而是需要時間將能量累積,才能振出穩定的訊號。這很像設計不良的擴音系統,當它發生迴授時,那尖銳的噪音並非馬上出現,而是由小到大漸進出現,雖然它出現的時間只有短短幾秒鐘,仔細觀察還是能發現麥克風的噪音是由小漸進到大。

事實上,振盪器就是利用迴授系統將雜訊中的特定頻率不斷地放大,而晶體振盪的頻率是由石英晶體的構造決定的,就好像鐘聲的高低音,是由它的形狀決定的一樣,而雜訊在振盪器裡的角色,就如同敲鐘的槌子一般,而我們的電路最不缺雜訊,因為有溫度就有雜訊,甚至外來的雜訊也不少,我們就好好利用雜訊吧。

晶體振盪的起振波形(圖片來源:實作派提供)

我展開前段波形的其中一部分,來看看頻率是多少,由於振福太小沒辦法用自動量測,我只好以 cursor 大概的量一下,確實是 16 MHz。

晶體振盪波形放大(圖片來源:實作派提供)

在振盪器起振的這段時間,為避免 Chip 誤動作,最好能在這段時間讓 chip 處於 Reset 狀態,減少對系統的影響。系統上每個 chip 的 reset 時間長短也都需要與軟體的 timeout 搭配,如果設計得太剛好,可能會在有些 API 呼叫時 fail,而且還不是每次都 fail,這裡就是軟硬體工程師要合作的地方。

(本文經同意轉載自實作派電子實驗室原文連結;責任編輯:賴佩萱)

StrongPiLab

Author: StrongPiLab

實作派電子實驗室(StrongPiLab)是一個著重知識與經驗的實作交流媒體,提供工程師們理論外的實務經驗,主要傳達電子產品與家電用品的正確操作概念與生活小常識、解說各種測試手法的技巧。

Share This Post On

發表

跳至工具列