水晶発振回路 負荷容量計算ツール

水晶振動子の負荷容量(CL)と浮遊容量から外付けコンデンサC1・C2の値を逆算。周波数偏差(ppm)への影響もリアルタイム表示。

水晶振動子の負荷容量(CL)と浮遊容量から外付けコンデンサC1・C2の値を逆算。E12系列への丸めと周波数偏差(ppm)もリアルタイム表示。

データシート記載値

XTAL端子の入力容量

不明なら2〜3pF

コンデンサ配置

計算結果

周波数偏差

+7.5 ppm

良好

一般的な用途で問題なし

C1 計算値
26.0 pF
C2 計算値
26.0 pF
C1 推奨値 (E12)
27 pF
C2 推奨値 (E12)
27 pF
実効負荷容量
20.5 pF

目標CL: 20.0 pF

本ツールは水晶振動子の等価回路モデルに基づく概算です。実際の周波数精度はIC内部回路・基板レイアウト・温度特性にも依存します。高精度が要求される通信用途ではオシロスコープでの実測を推奨します。

不具合・ご要望はお気軽に@MahiroMemoまで

PR

📘 発振回路設計に役立つ書籍・部品

マイコンのUARTが「たまに化ける」謎——犯人は外付けコンデンサだった

試作基板でSTM32のUART通信を動かしたら、9600bpsでは安定するのに115200bpsにすると1000バイトに1回くらい文字化けする。ロジアナで見るとクロックが微妙にずれている。水晶のデータシートには「CL=20pF」と書いてあるのに、とりあえず22pFを両側に付けていた——これが偏差の原因だった。

このツールは、水晶振動子のCL(負荷容量)とIC入力容量・浮遊容量を入力するだけで、外付けコンデンサC1・C2の値をE12系列で算出する。周波数偏差(ppm)もリアルタイムに表示されるから、通信に影響するレベルかどうかが一目でわかる。

なぜ負荷容量計算ツールを作ったのか

開発のきっかけ

水晶振動子のデータシートに「CL=20pF」と書いてあるのを見て、「じゃあ20pFのコンデンサを2個付ければいいのか」と思ったのが最初の失敗だった。実際にはCLは外付けコンデンサの直列合成値+浮遊容量+IC入力容量の合計なので、C1=C2=20pFだと実効CLが30pF近くになり、10pF以上のオーバーシュートになる。

ネット上には「とりあえず22pFを付けておけ」という情報が溢れているが、32.768kHzのRTC用水晶でCL=7pFのときに22pFを付けたらどうなるか考えてほしい。実効CLが18pFを超え、160ppm以上の周波数偏差が発生する。RTCなら1日あたり14秒もずれる計算だ。

こだわった設計判断

E12系列への自動丸め: 計算値が13.2pFと出ても、その値のコンデンサは売っていない。E12系列の実在する値(12pF or 15pF)に丸め、丸め後の実効CLと周波数偏差まで表示する。どちらを選ぶべきか、数値で判断できる。

マイコン別プリセット: STM32、ATmega328P、ESP32、PIC、RP2040の5種類に対応。IC入力容量と想定浮遊容量がワンタップで自動入力されるので、データシートを毎回引く手間が省ける。

非対称配置モード: 基板レイアウトの都合でC1とC2を異なる値にしたい場面がある。C1を固定してC2を逆算する非対称モードも搭載した。

水晶発振回路と負荷容量(CL)とは何か

水晶振動子の圧電効果と等価回路

水晶振動子は、水晶(石英 SiO₂)の結晶を薄く切り出した素子だ。水晶に電圧をかけると機械的に変形し(圧電効果)、その変形が電気信号に変換される。この「電気→機械→電気」のサイクルが特定の周波数で共振し、極めて安定したクロック信号を生む。

たとえ話で言えば、ブランコを思い浮かべてほしい。ブランコには「自然に揺れやすい周波数」がある。タイミングよく背中を押せば大きく揺れるが、タイミングがずれると振幅が小さくなる。水晶振動子も同じで、等価回路で表現すると直列共振と並列共振の2つのモードを持つ。マイコンの発振回路で使われるのは主に並列共振モードだ。

負荷容量(CL)の意味

等価回路の並列共振周波数は、外部に接続される容量(負荷容量CL)によって微妙に変化する。水晶メーカーは「この値のCLを外部に接続したとき、公称周波数で振動する」という条件を指定しており、それがデータシートに記載されるCL値だ。

CLの計算式は以下の通り:

CL = (C1 × C2) / (C1 + C2) + Cstray + Cin

C1, C2: 外付けコンデンサ
Cstray: 基板パターンの浮遊容量(通常1〜5pF)
Cin: ICのXTAL端子の入力容量(通常3〜10pF)

C1とC2は直列に接続されるため、合成容量は各値より小さくなる。ここが初学者の混乱ポイントで、「CL=20pFだから20pFを2個」とすると、直列合成は10pFにしかならず、浮遊容量を足しても不足するケースが出てくる。

参考: 水晶振動子 - Wikipedia

負荷容量 CL 求め方——対称と非対称

C1=C2の対称配置なら式はシンプルになる:

CL = C1/2 + Cstray + Cin
→ C1 = C2 = 2 × (CL - Cstray - Cin)

C1≠C2の非対称配置では:

Cnet = CL - Cstray - Cin
C2 = Cnet × C1 / (C1 - Cnet)

非対称配置はC1を先に決めてC2を逆算する。C1がCnetより小さいとC2が負になり成立しない。

なぜ負荷容量の正確な設定が重要なのか

周波数偏差がもたらす実害

負荷容量がずれると、水晶の発振周波数が公称値からずれる。ずれ幅はppm(百万分の一)で表され、1pFの容量ずれで概ね10〜20ppmの偏差が生じる(水晶のCLカーブ傾斜による)。

具体的にどの程度困るか:

  • UART通信: 115200bpsの場合、許容偏差はおよそ±2%(±20,000ppm)と余裕があるように見えるが、送受信双方がずれると合算される。送信側+50ppm・受信側-50ppmなら合計100ppmの差が生じ、長いフレームで化けることがある
  • USB 2.0: クロック精度±500ppm以内が規格要件。CL不整合で±100ppmもずれると、温度変動と合わせて規格ギリギリになる
  • RTC(32.768kHz): 20ppmのずれは1日あたり約1.7秒のドリフト。1年で10分以上ずれる計算になる。CL=7pFの水晶に22pFを付けると160ppm以上の偏差が出て、1日14秒もずれる

規格・基準

IEC 60122-1は水晶振動子の特性と測定方法を規定しており、負荷容量の条件下で公称周波数を保証する仕組みだ。マイコンメーカーのデータシート(STM32のAN2867、ATmega328Pのデータシート等)でも推奨CL範囲と外付けコンデンサの選定ガイドラインが記載されている。

マイコン基板設計でCL計算が活躍する場面

新規マイコン基板の設計

STM32やESP32でカスタム基板を設計するとき、最初に決めるのがクロック回路だ。HSE(高速外部発振器)やLSE(低速外部発振器)の水晶を選定し、外付けコンデンサを決める。このツールならデータシートのCL値を入力するだけで推奨コンデンサが決まる。

RTC回路の時刻精度改善

32.768kHz水晶のCLは6〜12.5pFと小さく、浮遊容量の影響が相対的に大きい。「RTCが毎月5分ずれる」という場合、まず外付けコンデンサの値を見直すべきだ。

Arduino互換基板の自作

ATmega328Pを使ったArduino互換機を自作する場合、16MHzの水晶に「とりあえず22pF」が定番だが、ICの入力容量と浮遊容量を考慮すると最適値は異なることがある。

USB機器の安定動作

USB用12MHzまたは48MHzクロックは精度要件が厳しい。CL不整合による周波数偏差がUSBデバイスの認識不良につながるケースは珍しくない。

基本の使い方

水晶のデータシートとマイコンの回路図を手元に用意すれば、3ステップで完了する。

Step 1: 水晶振動子のCLを入力する

データシートから負荷容量(CL)を確認し、数値入力欄に入れる。よく使われる水晶(8MHz/16MHz/32.768kHz等)はプリセットからワンタップで選べる。

Step 2: IC入力容量と浮遊容量を設定する

マイコンプリセット(STM32/ATmega/ESP32等)を選ぶと、IC入力容量と浮遊容量が自動入力される。正確な値がわかればカスタム入力に切り替えてみて。

Step 3: 推奨コンデンサ値を確認する

C1/C2の計算値がE12系列の推奨値とともに表示される。実効CLと目標CLの差分から算出した周波数偏差(ppm)で、通信に影響するレベルかどうかを確認できる。

具体的な使用例(検証データ)

ケース1: STM32 + 8MHz水晶 (CL=18pF)

入力値:

  • 負荷容量 CL: 18 pF
  • IC入力容量 Cin: 5 pF(STM32プリセット)
  • 浮遊容量 Cstray: 2 pF

計算結果:

  • C1 = C2 = 2 × (18 - 2 - 5) = 22.0 pF
  • E12推奨: 22 pF
  • 実効CL: 22/2 + 2 + 5 = 18.0 pF

解釈: ぴったり18pFに一致。STM32の標準構成ではAN2867の推奨値とも合致する。偏差0ppmで理想的。

ケース2: ATmega328P + 16MHz水晶 (CL=20pF)

入力値:

  • CL: 20 pF、Cin: 6 pF、Cstray: 2 pF

計算結果:

  • C1 = C2 = 2 × (20 - 2 - 6) = 24.0 pF
  • E12推奨: 22 pF(24は非E12のため切り捨て)
  • 実効CL: (22×22)/(22+22) + 2 + 6 = 19.0 pF
  • 周波数偏差: 15 × (19.0 - 20) = -15.0 ppm

解釈: -15ppmは一般用途なら問題ないレベル。UART通信には影響しない。

ケース3: ESP32 + 40MHz水晶 (CL=10pF)

入力値:

  • CL: 10 pF、Cin: 5 pF、Cstray: 3 pF

計算結果:

  • C1 = C2 = 2 × (10 - 3 - 5) = 4.0 pF
  • E12推奨: 3.9 pF
  • 実効CL: (3.9×3.9)/(3.9+3.9) + 3 + 5 = 9.95 pF
  • 周波数偏差: 15 × (9.95 - 10) = -0.8 ppm

解釈: ほぼ偏差なし。ただし4pFクラスは浮遊容量の影響が大きいため、基板パターンの長さに注意。

ケース4: RTC 32.768kHz水晶 (CL=7pF)

入力値:

  • CL: 7 pF、Cin: 5 pF、Cstray: 2 pF

計算結果:

  • Cnet = 7 - 2 - 5 = 0 pF
  • 外付けコンデンサ不要(浮遊容量+IC入力容量で既にCLに到達)

解釈: IC入力容量と浮遊容量だけでCLを満たしている。外付けコンデンサを付けると過負荷になり、時刻が遅れる方向にずれる。

ケース5: USB用 12MHz水晶 (CL=20pF)

入力値:

  • CL: 20 pF、Cin: 5 pF、Cstray: 2 pF

計算結果:

  • C1 = C2 = 2 × (20 - 2 - 5) = 26.0 pF
  • E12推奨: 27 pF
  • 実効CL: (27×27)/(27+27) + 2 + 5 = 20.5 pF
  • 周波数偏差: +7.5 ppm

解釈: USB 2.0の要件(±500ppm)に対して十分な精度。+7.5ppmはまったく問題ない。

ケース6: 非対称配置(C1=15pF固定)

入力値:

  • CL: 20 pF、Cin: 5 pF、Cstray: 2 pF
  • C1固定: 15 pF

計算結果:

  • Cnet = 20 - 2 - 5 = 13 pF
  • C2 = 13 × 15 / (15 - 13) = 97.5 pF
  • E12推奨: 100 pF

解釈: C1が小さいとC2が極端に大きくなる。C1=15pFだとCnet=13pFに近いため、C2が急激に増加する。C1にはCnetより十分大きい値を選ぶべき。

仕組み・アルゴリズム

採用している計算方式

水晶発振回路の負荷容量は、等価回路モデルに基づく直列合成の公式から導出する。候補として2つのアプローチがある:

  1. 解析解(直接計算): CL = C1*C2/(C1+C2) + Cstray + Cin の逆算。対称配置なら一次方程式、非対称でも分数式1本で解ける
  2. 数値探索(ブルートフォース): E12系列の全組み合わせを試し、CLに最も近いペアを選ぶ

本ツールは方式1(解析解)+ E12系列への丸めを採用した。理由は単純で、閉じた式で厳密解が得られるのに数値探索する意味がないから。丸めは計算後に1回だけ行い、丸め後の実効CLから偏差を逆算する。

参考: Pierce oscillator - Wikipedia

具体的な計算フロー

入力: CL=20pF, Cin=5pF, Cstray=2pF(対称配置)

Step 1: 正味負荷容量を算出
  Cnet = CL - Cstray - Cin = 20 - 2 - 5 = 13 pF

Step 2: 外付けコンデンサ値を算出(対称)
  Cx = 2 × Cnet = 2 × 13 = 26 pF

Step 3: E12系列に丸め
  E12系列: ...22, 27, 33...
  26に最も近いのは27 pF

Step 4: 実効CLを逆算
  actualCL = (27×27)/(27+27) + 2 + 5 = 13.5 + 7 = 20.5 pF

Step 5: 周波数偏差を推定
  Δf = 15 × (20.5 - 20) = +7.5 ppm

E12系列丸めの影響

E12系列は1桁あたり12段階(1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2)。隣接する値の比率は約1.2倍で、最大で±10%程度の丸め誤差が発生する。コンデンサの容量公差(±5%〜±20%)と同程度なので、実用上はE12丸めによる偏差よりも部品公差の方が支配的になることが多い。

ppm推定の根拠

周波数偏差の推定には、負荷容量感度として15ppm/pFの定数を使用している。これは一般的なATカット水晶(数MHz〜数十MHz帯)の典型的な値だ。実際のCL感度は水晶の等価回路パラメータ(C0, C1, L1)に依存するが、データシートにCL感度が明記されていない場合の目安として広く使われている。

参考: AT cut crystal - 村田製作所 技術資料

「とりあえず22pF」との決別——このツールの違い

データシート準拠の正確な計算

ネット上の「22pFを付ければOK」は、STM32+8MHz(CL=18pF)+Cin=5pF+Cstray=3pFという特定条件でたまたま合っているだけだ。水晶やマイコンが変われば最適値も変わる。このツールは任意のCL/Cin/Cstrayに対応する。

E12系列と周波数偏差の同時表示

計算値を出すだけのツールは他にもあるが、「E12に丸めたら周波数がどれだけずれるか」まで表示するものは少ない。通信用途で偏差が許容範囲内かどうかをその場で判断できる。

スマホでサッと使える

基板設計の現場でPCを開かなくても、スマホのブラウザでサッと計算できる。プリセットを選ぶだけなら10秒で結果が出る。

水晶発振にまつわる豆知識

32.768kHzはなぜ「時計用」なのか

32,768 = 2^15。15段の分周器(フリップフロップ)で割ると正確に1Hzが得られる。1960年代にセイコーがクオーツ腕時計を開発したとき、2のべき乗で分周しやすいこの周波数が選ばれた。以来、RTCの標準クロックとして世界中で使われている。

参考: クォーツ時計 - Wikipedia

ATカットとBTカットの違い

水晶の切り出し角度(カット角)によって温度特性が大きく変わる。ATカットは-40〜+85°Cの範囲で周波数変動が±25ppm以内に収まり、最も広く使われている。BTカットは安価だが温度特性が劣るため、精度が重要な用途にはATカットが選ばれる。

参考: Crystal oscillator - Wikipedia

負荷容量計算を使いこなすコツ

Tip 1: 浮遊容量は実測するのが理想

データシートに浮遊容量は書かれていない。典型値として2〜3pFが使われるが、基板パターンが長いと5pF以上になることもある。最も確実なのは、水晶を付けずにXTAL端子とGND間の容量をLCRメーターで測ること。

Tip 2: E12の上下両方を試す

計算値が2つのE12値の中間にある場合、両方で周波数偏差を比較してみて。偏差が小さい方を選ぶのが基本だが、発振開始性(起動時間)を考慮して容量が大きい方を選ぶケースもある。

Tip 3: 温度公差を考慮する

セラミックコンデンサは温度で容量が変化する。C0G(NP0)特性なら±30ppm/°Cと安定だが、X7RやX5Rは容量変化が大きい。水晶回路にはC0G特性のコンデンサを推奨する。

Tip 4: 基板パターンは短く

XTAL端子から外付けコンデンサまでのパターンは極力短くし、GNDベタに近接させる。パターンが長いと浮遊容量が増加し、計算値から乖離する。

よくある質問

Q: 対称配置と非対称配置、どちらを選ぶべき?

基本は対称配置(C1=C2)を推奨する。回路の対称性が高いほど発振が安定し、ノイズ耐性も向上する。非対称配置は、基板レイアウトの制約でC1側のパターンが長くなり浮遊容量が偏る場合や、特定のE12値しか在庫がない場合に限って使うのが一般的だ。

Q: IC入力容量がデータシートに載っていない場合は?

汎用CMOS ICの場合、XTAL端子の入力容量は3〜10pFが一般的だ。データシートに明記されていなければ、5pFを仮の値として計算し、実測で微調整するのが現実的。高精度が必要なら、ICメーカーのFAQやアプリケーションノートを確認してみて。

Q: 周波数偏差が大きい場合、どう対処する?

まずE12系列の上下候補で偏差が小さい方を選ぶ。それでも不足なら、浮遊容量の正確な測定、C0G特性コンデンサへの変更、基板パターンの短縮を検討する。それでも足りなければ、TCXO(温度補償水晶発振器)への切り替えも選択肢だ。

Q: コンデンサの公差は結果にどう影響する?

一般的なセラミックコンデンサの公差は±5%(C0G)〜±20%(X5R/X7R)。22pFのコンデンサが±10%なら19.8〜24.2pFの範囲でばらつく。pF帯では数pFの差が10〜30ppmの偏差に相当するため、精度が重要な用途ではC0G(NP0)の±5%品を選ぶべきだ。

Q: 入力データはサーバーに送信される?

すべての計算はブラウザ内(JavaScript)で完結している。入力値がサーバーに送信されることは一切ない。

まとめ

水晶発振回路の外付けコンデンサ選定は、「とりあえず22pF」ではなく、CL・Cin・Cstrayから正確に逆算すべきだ。このツールなら10秒で計算でき、E12推奨値と周波数偏差まで一目で確認できる。

プルアップ抵抗の選定が気になった人はプルアップ抵抗計算ツールも試してみて。基板のパターン設計にはプリント基板パターン幅計算ツールが役立つ。


不具合や要望があれば、X (@MahiroMemo)から気軽に教えて。

M

Mahiro

Mahiro Appの開発者。STM32のUART文字化けに3日間悩まされた経験から、負荷容量計算の重要性を身をもって学んだ組込みエンジニア。

運営者情報を見る

© 2026 水晶発振回路 負荷容量計算ツール