電路模擬實驗室 · 計算器
晶振負載電容計算器|外掛電容、頻率偏移、起振餘裕
MCU 旁邊那顆晶振,兩側各接一顆對地電容。電容選錯,頻率會偏掉幾十 ppm;起振增益不夠,冷機或批次差一點就不起振;驅動太強又會讓晶振提早老化。這個計算器輸入晶振規格和兩顆外掛電容,一次算出這四件事,並給剛好對上規格的電容值。免費、不用登入,算在你自己的瀏覽器裡。
為什麼不是直接照規格的 CL 選電容
晶振規格寫的負載電容 CL(例如 18 pF),是兩顆外掛電容串聯之後、再加上晶片腳位和 PCB 走線的雜散電容。所以 CL1=CL2=CL 是錯的:兩顆相等時要選 2×(CL−雜散電容)。雜散電容估不準,頻率就偏;同一組電容換一顆晶片,起振餘裕也會變。
公式
- 負載電容:CL=CL1·CL2/(CL1+CL2)+Cs(ST AN2867 Rev 10 §3.3)。
- 離串聯諧振的頻率偏移:D=C1/(2(C0+CL))×10⁶ ppm;靈敏度 TS=−C1/(2(C0+CL)²)×10⁶ ppm/pF(Raltron《Crystal Mini Primer》式 1.4、1.7)。這裡的 C1 是晶振的動態電容。
- 起振:臨界跨導 gm_crit=4·ESR·(2πF)²·(C0+CL)²,增益餘裕=晶片 gm ÷ gm_crit,要 ≥ 5(ST AN2867 §3.4)。
- 驅動功率:DL=ESR·(π·F·Ctot·Vpp)²/2,Ctot=CL1+Cs/2(ST AN2867 §3.5)。
例:Abracon ABM8 25 MHz(規格 CL 18 pF、ESR 最大 50 Ω、C0 最大 3 pF),雜散電容 5 pF,兩顆都用 26 pF:負載電容剛好 18 pF,頻率偏移 0 ppm;晶片 gm 用 ST 算例的 25 mA/V 時,增益餘裕 11.49(≥ 5);CL1 那端峰對峰 0.6 V 時驅動功率 45.09 µW,低於規格的 100 µW。gm 和 0.6 V 是範例值,要換成你的晶片與實測。
驗證成績單(摘要)
- ST AN2867 §3.3 算例(CL 15 pF、雜散 5 pF、兩顆相等):這頁算 20.00 pF,文件 20 pF,差 0.00%。
- ST AN2867 §3.4 算例(8 MHz、C0 7 pF、CL 10 pF、ESR 80 Ω):臨界跨導 0.2337 mA/V,文件寫 0.23(只取兩位有效數字),差 +1.59%;gm 25 mA/V 的增益餘裕 106.99,文件 107,差 −0.01%。
- Raltron 圖說(C1 0.01 pF、C0 5 pF):CL 20 pF 時離 fs 200.00 ppm(文件 +200),CL 10 pF 與 20 pF 的靈敏度 −22.222、−8.000 ppm/pF(文件 −22.22、−8),差都在 0.01% 以內。
誤差要整體看:6 項都是原廠應用筆記的算例,證明公式與實作算對,不是實際電路的量測;最大的 +1.59% 來自文件只寫兩位有效數字。完整對照見方法與驗證。
適用範圍
雜散電容要填多少:晶片 X1–X2 腳位的寄生加上 PCB 走線,要以晶片 datasheet 與板子實測為準;AN2867 的算例用 5 pF。沒有算的:晶片腳位的實際電容(填在雜散電容裡,以晶片 datasheet 為準)、溫度造成的頻率漂移(看晶振 datasheet 的溫度特性)、晶振老化;驅動功率用 CL1 那端的電壓估算,實際要用示波器(低電容探棒)量。增益餘裕用 datasheet 的 ESR 最大值算才保守。晶片的 gm 要看晶片 datasheet,有些只給 gm_crit 的上限,這時 gm=上限×5。
出處
- ST AN2867《Oscillator design guide for STM8AF/AL/S and STM32 microcontrollers》Rev 10(2015-08)§3.3~3.8(從 Raltron 網站的轉載版讀,st.com 原檔當時連不上)。
- Raltron《Crystal Mini Primer》Part 1;Microchip AN826。
- 預設晶振:Abracon ABM8 datasheet(REVISED 07-29-20)p.1。ABM8 沒給動態電容,例子裡的 5 fF 是估計值。