振蕩器 Oscillator 是電子電路很重要的一環(huán),有了振蕩器后,模擬電路才開始邁向通訊領(lǐng)域,數(shù)字電路則開始有「時間序」的概念,也才有后來狀態(tài)機(jī) state machine 的應(yīng)用,所以振蕩器的起振非常重要,沒振起來一切免談,有振起來,頻率也要準(zhǔn)才行,現(xiàn)今最常用的是晶體振蕩器 XTAL 。
今天有人問我上電后的石英晶體需要多久時間才會穩(wěn)定振蕩?這我倒沒真的測試過,既然有人問了我們就來測看看吧!
晶體振蕩—線路
下圖是一般常見的考畢茲晶體振蕩線路(Colpitts Oscillator),雖然說振蕩線路百百種,但利用石英晶體 Crystal(XTAL)作為振蕩組件的方式仍然是主流,因?yàn)槭⒕w的 Q 值非常高,頻率可以很準(zhǔn)。
所謂 Q 值是組件儲能與耗能的比例,有些人或許會有點(diǎn)陌生,但基本上它只是一個用來敘述儲能組件或系統(tǒng)的名詞。
Q=儲能/耗能
以敲鐘來舉例,你敲它一下,鐘聲會余音繚繞,這就是鐘罩外層的振蕩所致,聲音繚繞越久,表示 Q 值越高,如果你在鐘罩內(nèi)鋪上棉絮等布料,聲音會很快被布料吸走,甚至只剩下敲鐘當(dāng)下的打擊聲,這樣的情況就表示 Q 值很低;如果有個鐘,它能讓人只敲一下就響到無窮無盡,那就表示它零耗能,也就是 Q 值無限大,當(dāng)然這樣的東西并不存在。
石英晶體的高 Q 值,只要配上兩個電容就能形成一個共振腔,但共振腔內(nèi)的振蕩訊號終究會停止,若再配上一個放大器把輸出的訊號放大再加回到原來的輸入端,就形成了可永久振蕩的振蕩器。
以上只是簡略敘述振蕩器怎么回事,真的要寫起來會無窮盡,我今天只是要來看看多久會起振而已。
實(shí)體電路
身為實(shí)作派的助教,除了畫畫線路圖跑模擬之外,當(dāng)然也要拿實(shí)際的線路真槍實(shí)彈地電路板跑看看才行。下圖是某個半殘的電路板,雖然功能上有點(diǎn)問題,但它還能開機(jī)、LED 也會閃爍,這表示系統(tǒng)有跑起來,晶體振蕩器有正常工作。
下圖中的藍(lán)色線,就是我的測量點(diǎn),XTAL 石英晶體的其中一根腳,我將它直接接到示波器的探棒;但我必須說,這樣的接法是不及格的,因?yàn)楫?dāng)我們直接把探棒接在 XTAL 的組件上,它的寄生電容會影響系統(tǒng)的振蕩頻率,甚至有可能不起振。
正確的做法應(yīng)該要使用主動探棒,但主動探棒很貴,除非需要經(jīng)常用到,不然買起來還真心疼。如果你對芯片的 SDK 很熟,可以從芯片內(nèi)部將頻率 clock 的訊號從 GPIO 繞出來,這樣間接地測量才不會影響到振蕩頻率。
我自己會直接用探棒接觸,是不得已的,一來這塊板子的 Firmware 不是我寫的,二來這顆芯片并沒有 GPIO 可以讓你把頻率訊號繞出來;還好探棒直接接觸后,XTAL 仍然有起振,示波器還是能觀察到,但頻率絕對有偏差,只是頻偏目前不是我關(guān)心的重點(diǎn)。
晶體振蕩器電路板
附帶一提,量個振蕩訊號,不是只要拉一條藍(lán)色線接上 XTAL(雖然這樣接不及格)就好嗎?上圖中其它的線是怎么回事?原來這顆芯片只是整塊電路板的一個子電路,我不想讓它受到 main chip 的指令干擾,所以我用外部的 3.3 V 直接供電給子電路,另外這顆芯片有 Reset# pin,要將它 pull high 才能讓芯片開始工作,否則 XTAL 不會起振。
頻偏的問題
剛剛提到,我這種直接接觸的測量方式會導(dǎo)致頻偏,那么頻偏會造成什么問題嗎?系統(tǒng)依舊可以開機(jī),程序也可以跑,到底哪里會有問題?
我舉個例子好了,模擬電視 NTSC 的色彩訊號頻率 spec 是 3.579545 MHz,電視機(jī)的振蕩頻率理論上要跟它一樣,但 spec 規(guī)范的容忍度規(guī)范是多少呢?只有+/-10 Hz,這大約是 2.8 ppm,也就是說你的色彩訊號可能因?yàn)槟阌檬静ㄆ饔|碰石英晶體的關(guān)系,造成多 2.8 ppm 的頻偏,而這就足以讓你的電視機(jī)從彩色變黑白,而且還附帶很多噪聲,因?yàn)轭伾嵦栆呀?jīng)變成畫面的一部份了。
不過還好,我多年前自己試驗(yàn)的結(jié)果,電視機(jī)通常會自己追彩色訊號的頻率,除非你偏得太離譜,電視機(jī)才會秀黑白畫面給你看。如果 3.58 MHz的訊號都能讓機(jī)器誤動作了,那現(xiàn)在流行的 Wifi 頻率在 2.4 GHz/5 GHz,當(dāng)然對頻率又更敏感了。
也許你會問頻偏可以從示波器觀察到嗎?我的答案是不行。如果你觀察過示波器的頻率測量,你會發(fā)現(xiàn)一般示波器的頻率測量位數(shù)只到小數(shù)點(diǎn)下 2 位,少數(shù)機(jī)型會到小數(shù)點(diǎn)下 4 位,但它會不斷跳動,我不認(rèn)為你有機(jī)會能穩(wěn)定觀察到這 10 Hz 的變化,除非你用的是高檔貨。
石英晶體起振
回到我原本的問題上,直接上電觀察何時起振,如下圖 10 ms 以內(nèi)就起振穩(wěn)定了,當(dāng)然每個電路起振的時間不同,我這里只是要表達(dá),它不會讓你等超過 1 sec。
振蕩器是由小到大漸漸起振的,它不會馬上有弦波,而是需要時間將能量累積,才能振出穩(wěn)定的訊號。這很像設(shè)計不良的擴(kuò)音系統(tǒng),當(dāng)它發(fā)生回授時,那尖銳的噪音并非馬上出現(xiàn),而是由小到大漸進(jìn)出現(xiàn),雖然它出現(xiàn)的時間只有短短幾秒鐘,仔細(xì)觀察還是能發(fā)現(xiàn)麥克風(fēng)的噪音是由小漸進(jìn)到大。
事實(shí)上,振蕩器就是利用回授系統(tǒng)將噪聲中的特定頻率不斷地放大,而晶體振蕩的頻率是由石英晶體的構(gòu)造決定的,就好像鐘聲的高低音,是由它的形狀決定的一樣,而噪聲在振蕩器里的角色,就如同敲鐘的槌子一般,而我們的電路最不缺噪聲,因?yàn)橛袦囟染陀性肼暎踔镣鈦淼脑肼曇膊簧?,我們就好好利用噪聲吧?/p>
晶體振蕩的起振波形
我展開前段波形的其中一部分,來看看頻率是多少,由于振福太小沒辦法用自動量測,我只好以 cursor 大概的量一下,確實(shí)是 16 MHz。
晶體振蕩波形放大
在振蕩器起振的這段時間,為避免 Chip 誤動作,最好能在這段時間讓 chip 處于 Reset 狀態(tài),減少對系統(tǒng)的影響。系統(tǒng)上每個 chip 的 reset 時間長短也都需要與軟件的 timeout 搭配,如果設(shè)計得太剛好,可能會在有些 API 呼叫時 fail,而且還不是每次都 fail,這里就是軟硬件工程師要合作的地方。
-
振蕩器
+關(guān)注
關(guān)注
28文章
3847瀏覽量
139315 -
晶體
+關(guān)注
關(guān)注
2文章
1369瀏覽量
35520 -
電子電路
+關(guān)注
關(guān)注
78文章
1227瀏覽量
67008
發(fā)布評論請先 登錄
相關(guān)推薦
評論