「0.1μFを付けておけ」で本当に大丈夫?
基板設計の世界には「パスコンは0.1μF」という暗黙のルールがある。先輩に教わったまま、何も考えずに0.1μFのセラミックコンデンサをICの電源ピンに配置していないだろうか。
実はこの「0.1μF」、根拠なく選ぶと高速マイコンやFPGAでは全くカバーできない周波数帯が生まれる。動作周波数100MHzのMCUに0.1μFを1個だけ付けても、自己共振周波数は約5MHzで、100MHz帯のノイズはスルーしてしまう。
このツールは、ICの動作条件を入力するだけで「何を何個、どこに配置すべきか」を目標インピーダンス法で自動提案する。周波数vsインピーダンスグラフで、選んだコンデンサ構成が全帯域をカバーできているかを一目で確認できる。
なぜデカップリングコンデンサ選定ツールを作ったのか
「おまじない設計」からの脱却
自分自身、趣味の電子工作でSTM32の基板を起こしたとき、「とりあえずパスコンは0.1μFと10μFを付けておこう」でやっていた。大体うまくいく。しかしある日、72MHz動作のSTM32F103がADCの読み値が安定しない問題に直面した。
原因を追っていくと、デカップリングが不十分で電源ラインにノイズが乗っていた。オシロスコープで見ると、数十MHz帯にスパイクが出ている。0.1μFの自己共振周波数は約5MHz、10μFの電解コンデンサは100kHzあたりが限界。肝心の数十MHz帯をカバーするコンデンサがなかったのだ。
既存ツールへの不満
ネットで「デカップリング 計算」と検索すると、単純にC = ΔI × Δt / ΔV の式に値を入れるだけのものがほとんど。ESRやESLを考慮した周波数特性まで見せてくれるツールが見つからなかった。
だから作った。目標インピーダンス法で理論的に選定し、インピーダンスカーブで「本当にカバーできているか」を確認できるツールを。ICカテゴリを選べばプリセット値が入るから、初心者でも迷わない設計にした。
デカップリングコンデンサとは何か
パスコンの正体 — 電源ノイズの防波堤
デカップリングコンデンサ(通称パスコン、バイパスコンデンサ)は、ICの電源ピン直近に配置して電源ノイズを吸収する部品だ。水道管のたとえで言えば、蛇口を急に開けたときに「ドン!」と水撃(ウォーターハンマー)が起きるのを防ぐアキュムレータのようなもの。
ICが動作すると、クロックの立ち上がり/立ち下がりの瞬間に大きな電流が流れる。この過渡電流(ΔI)が電源配線のインダクタンスを通ると、ΔV = L × dI/dt の電圧降下が発生する。これが電源ノイズの正体だ。
デカップリングコンデンサは、この瞬間的な電流をICのすぐそばから供給することで、電源ラインへのノイズ伝搬を防ぐ。
ESR・ESL — 理想と現実のギャップ
理想的なコンデンサは周波数が上がるほどインピーダンスが下がる(Z = 1/(2πfC))。しかし現実のコンデンサには寄生抵抗(ESR: Equivalent Series Resistance)と寄生インダクタンス(ESL: Equivalent Series Inductance)がある。
実際のインピーダンス:
Z(f) = sqrt( (1/(2πfC) - 2πfL)² + ESR² )
XC = 1/(2πfC) ... 容量性リアクタンス(周波数が上がると減少)
XL = 2πfL ... 誘導性リアクタンス(周波数が上がると増加)
ESR ... 等価直列抵抗(周波数にほぼ依存しない)
自己共振周波数 — コンデンサが「コンデンサでなくなる」点
XC = XL となる周波数を自己共振周波数(SRF: Self-Resonant Frequency)と呼ぶ。
fres = 1 / (2π × sqrt(L × C))
この周波数でインピーダンスは最小値(≈ ESR)を取る。それより高い周波数ではコンデンサはインダクタとして振る舞い、インピーダンスが上昇していく。つまり0.1μFのMLCCは約5MHzを超えると「コンデンサとして機能しなくなる」。
だから複数の容量のコンデンサを並列に配置して、広い周波数帯域をカバーする必要がある。これがデカップリング設計の本質だ。
パスコンの容量選定を甘く見ると何が起きるか
IC誤動作とEMI問題
デカップリングが不十分だと、ICの電源電圧が瞬間的に許容範囲を逸脱する。マイコンなら暴走やリセット、ADCなら読み値のジッター、FPGAなら内部ロジックのセットアップ/ホールド違反が起きる。
特にFPGAは過渡電流が大きい。Xilinx(現AMD)のデザインガイドでは、7シリーズFPGAの電源設計に「数十個のMLCCを適切に配置すること」と明記されている。容量不足でFPGAが不安定になり、基板を作り直す羽目になった事例は珍しくない。
EMC規格への影響
電源ノイズはそのまま放射ノイズ(EMI)になる。CISPR 32やVCCI Class Bの放射エミッション試験で不合格になると、製品出荷ができない。デカップリング設計の見直しで数百万円のやり直しコストが発生することもある。
過剰設計のリスク
逆に必要以上に大容量・多数のコンデンサを載せると、基板面積の圧迫とコスト増を招く。0402サイズのMLCCは1個数円でも、量産品で100個余分に載せれば年間で大きなコスト差になる。
根拠ある選定こそが、必要十分な設計を実現する。
こんな場面で使える
マイコン基板の電源設計
STM32やESP32などのマイコン基板で、VDDピンに何を付けるか迷ったとき。ICカテゴリで「マイコン」を選べば、動作周波数と過渡電流のプリセットが入る。あとは微調整するだけ。
FPGA電源の多段デカップリング設計
Artix-7やiCE40など、複数の電源レール(VCCINT / VCCAUX / VCCO)それぞれに最適な構成を検討できる。FPGAは過渡電流が桁違いに大きいため、「FPGA」カテゴリのプリセットでスタートするのが効率的だ。
アナログ回路のノイズ対策
OPアンプやADCの電源ピンは、デジタルノイズの混入を嫌う。「アナログ」カテゴリを選ぶと低ESRのタンタルコンデンサが推奨構成に含まれ、低周波ノイズまでカバーする設計になる。
DC-DCコンバータの出力フィルタ
スイッチングレギュレータのスイッチング周波数に合わせたデカップリング設計。出力リプルを許容値以内に収めるための容量と種類を確認できる。
基本の使い方
入力は大きく2ステップ。結果はリアルタイムで更新される。
Step 1: ICカテゴリと電源条件を入力
「マイコン」「FPGA」「アナログ」「パワーIC」からカテゴリを選ぶ。すると動作周波数と過渡電流にカテゴリ別の目安値が自動セットされる。電源電圧と消費電流も合わせて入力してみて。
Step 2: 過渡条件を調整
過渡電流(ΔI)と許容リプル電圧(ΔV)を入力する。ICのデータシートに記載があればその値を、不明ならプリセットのまま使えばOK。
Step 3: 選定結果とグラフを確認
推奨コンデンサ構成(種類・容量・個数・役割)が表形式で表示される。周波数vsインピーダンスグラフで、目標インピーダンス(赤破線)より合成インピーダンス(黄色太線)が下にあれば、その帯域はカバーできている。
具体的な使用例と検証データ
ケース1: STM32F4(168MHz MCU)
入力値:
- ICカテゴリ: マイコン
- 電源電圧: 3.3 V / 消費電流: 100 mA
- 動作周波数: 168 MHz
- 過渡電流: 100 mA / 許容リプル: 50 mV
結果:
- 目標インピーダンス: 500 mΩ
- 推奨: MLCC 1μF ×1 + MLCC 100pF ×2
→ 解釈: 中域を1μFで、高域を100pFのペアでカバーする標準的な構成。ほとんどの汎用MCU基板に適用できる。
ケース2: Raspberry Pi Pico(RP2040, 133MHz)
入力値:
- ICカテゴリ: マイコン
- 電源電圧: 3.3 V / 消費電流: 70 mA
- 動作周波数: 133 MHz
- 過渡電流: 80 mA / 許容リプル: 50 mV
結果:
- 目標インピーダンス: 625 mΩ
- 推奨: MLCC 1μF ×1 + MLCC 100pF ×2
→ 解釈: RP2040はデュアルコアだが消費電流はそれほど大きくない。MCU標準構成で十分カバーできる。
ケース3: Xilinx Artix-7 FPGA(VCCINT 1.0V)
入力値:
- ICカテゴリ: FPGA
- 電源電圧: 1.0 V / 消費電流: 500 mA
- 動作周波数: 300 MHz
- 過渡電流: 1000 mA / 許容リプル: 30 mV
結果:
- 目標インピーダンス: 30 mΩ
- 推奨: 電解 47μF ×1 + MLCC 2.2μF ×2 + MLCC 100pF ×4 + MLCC 100pF ×4(超高周波)
→ 解釈: 電源電圧が低くリプル余裕が小さいため、目標インピーダンスが非常に低い。バルクキャパシタ+多段MLCCの4層構成が必要。FPGAは本当にコンデンサの数が多い。
ケース4: OPアンプ(NE5532、低ノイズ用途)
入力値:
- ICカテゴリ: アナログ
- 電源電圧: 15 V / 消費電流: 10 mA
- 動作周波数: 10 MHz
- 過渡電流: 10 mA / 許容リプル: 30 mV
結果:
- 目標インピーダンス: 3 Ω
- 推奨: タンタル 10μF ×1 + MLCC 100nF ×1
→ 解釈: アナログICは過渡電流が小さく、目標インピーダンスに余裕がある。ただしノイズに敏感なので、低ESRのタンタルで低周波帯をしっかりカバーする。
ケース5: LDOレギュレータ出力(3.3V/500mA)
入力値:
- ICカテゴリ: パワーIC
- 電源電圧: 3.3 V / 消費電流: 500 mA
- 動作周波数: 1 MHz
- 過渡電流: 500 mA / 許容リプル: 33 mV
結果:
- 目標インピーダンス: 66 mΩ
- 推奨: 電解 100μF ×1 + MLCC 4.7μF ×1 + MLCC 1μF ×1
→ 解釈: LDO出力は過渡応答性能がスイッチングレギュレータより遅いため、大容量バルクが必須。出力安定化に10μF以上のMLCCと電解の組み合わせが定番。
ケース6: USB電源入力(5V/2A、スマートフォン充電IC)
入力値:
- ICカテゴリ: パワーIC
- 電源電圧: 5 V / 消費電流: 2000 mA
- 動作周波数: 1 MHz
- 過渡電流: 1000 mA / 許容リプル: 100 mV
結果:
- 目標インピーダンス: 100 mΩ
- 推奨: 電解 47μF ×1 + MLCC 4.7μF ×1 + MLCC 1μF ×1
→ 解釈: USB電源はケーブルのインダクタンスも大きいため、入力側にバルクコンデンサを置くのが重要。目標インピーダンスに対して十分な余裕がある構成。
仕組み・アルゴリズム — 目標インピーダンス法
採用手法の比較
デカップリング設計には主に2つのアプローチがある。
手法1: 電荷供給法(C = ΔI × Δt / ΔV) 最も単純。過渡電流と応答時間から必要容量を1つだけ求める。ESR/ESLを考慮しないため、周波数特性が分からない。
手法2: 目標インピーダンス法(Ztarget = ΔV / ΔI) 電源ネットワーク全体のインピーダンスを、DC〜動作周波数の全帯域でZtarget以下に抑える方法。周波数依存性を考慮でき、複数コンデンサの最適な組み合わせを導出できる。
本ツールは**手法2(目標インピーダンス法)**を採用している。理由は、現実のノイズ問題は「特定の周波数帯でインピーダンスが高い」ことが原因であり、広帯域でのインピーダンスプロファイル管理が本質だからだ。
計算フロー
1. 目標インピーダンスの算出
Ztarget = ΔV / ΔI
例: 50mV / 100mA = 0.5 Ω
2. 動作周波数帯域に応じたコンデンサ選定
- 低周波帯(DC〜100kHz): 大容量電解 or タンタル
- 中域(100kHz〜動作周波数/10): 中容量MLCC
- 高域(〜動作周波数): 小容量MLCC
- 超高域(FPGA等): 極小MLCC(0402/0201)
3. 各コンデンサのインピーダンスカーブ算出
Z(f) = sqrt( (1/(2πfC) - 2πfL)² + ESR² )
4. 並列合成インピーダンスの算出
Zpar(f) = 1 / Σ(1/Zi(f))
5. カバレッジ判定
10Hz〜動作周波数×10 の全ポイントで
Zpar(f) ≤ Ztarget ならカバー
E12系列への丸め
推奨容量はE12系列(1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2)に切り上げ丸めしている。これは実際に入手可能な部品値に合わせるためだ。
参考: Wikipedia — E系列
「0.1μF一択」のツールとはここが違う
周波数特性の可視化
市販の電卓型ツールは「容量○μF」という数値1つを返すだけ。本ツールは各コンデンサのインピーダンスカーブと並列合成カーブをグラフ表示し、「どの帯域がカバーされているか」を視覚的に確認できる。
ESR/ESLモデルの組み込み
理想コンデンサの式(Z = 1/(2πfC))ではなく、ESR・ESLを含む実モデルで計算している。自己共振周波数より上でインピーダンスが上昇する現実の挙動を正しく反映する。
ICカテゴリ別のプリセット
MCU/FPGA/アナログ/パワーICの4カテゴリに応じて、動作周波数と過渡電流の典型値をプリセット。データシートを読み慣れていない人でも、カテゴリを選ぶだけで妥当な初期値で計算できる。
パスコンにまつわる豆知識
「0.1μF」はどこから来たのか
「パスコンは0.1μF」の慣習は、TTLロジック(74シリーズ)時代に遡る。TTLの動作周波数は数十MHz程度で、0.1μFのセラミックコンデンサの自己共振周波数(約5MHz)がちょうどそのあたりをカバーしていた。つまり40年前のIC向けの「正解」が今も伝承されているにすぎない。
現代の100MHz超MCUや数百MHzのFPGAには、0.1μFだけでは明らかに不足する。
参考: TDK — MLCCの基礎知識
MLCCの温度特性とDCバイアス特性
X5R/X7R特性のMLCCは温度によって容量が変化する(±15%程度)。さらに大容量品(10μF以上)はDCバイアス電圧を印加すると実効容量が大幅に低下する。3.3V印加時に定格容量の50%以下になることもある。
選定ツールで推奨された容量はあくまで公称値。DCバイアスでのディレーティングを考慮して、実際には1ランク上の容量を選ぶのが安全だ。
デカップリング設計のコツ
コンデンサはICに近く配置する
配線が長くなるとESLが増え、高周波でのインピーダンスが上昇する。小容量MLCC(100pF〜1nF)はICの電源ピンから2mm以内に配置するのが理想。ビアも最短経路で。
複数容量を並列にする理由
1種類のコンデンサでは自己共振周波数付近しかカバーできない。容量の異なるコンデンサを並列配置すると、各コンデンサが異なる周波数帯をカバーし、広帯域で低インピーダンスを実現できる。
反共振に注意する
容量の異なるコンデンサを並列にすると、それぞれの自己共振周波数の間に「反共振」ピークが現れることがある。インピーダンスが跳ね上がるポイントだ。容量比を10倍以上離さないことで軽減できる。
電源プレーンの活用
高速設計では内層の電源プレーン自体が高周波領域で大きなキャパシタンスとして機能する。4層以上の基板では電源プレーンとGNDプレーンを近接配置(0.1mm間隔)すると効果的だ。
よくある質問
Q: パスコンの容量はどう決めればいいの?
目標インピーダンス法で決めるのが合理的。許容リプル電圧を過渡電流で割って目標インピーダンスを求め、DC〜動作周波数の全帯域でそれ以下になるように複数のコンデンサを組み合わせる。本ツールはこの計算を自動で行う。
Q: MLCCと電解コンデンサ、どう使い分ける?
MLCCはESRが低く高周波特性に優れるが、大容量品はDCバイアスで容量低下する。電解コンデンサは大容量だがESR/ESLが大きく高周波は苦手。低周波帯を電解、高周波帯をMLCCで分担するのが定番の設計手法だ。
Q: 推奨値と手持ちの部品が違う場合は?
推奨容量の±1ステップ(E12系列で隣の値)程度のずれなら、ほとんどの場合問題ない。大きく外れる場合は、過渡電流と許容リプルを実際の値に調整して再計算してみて。
Q: FPGAにコンデンサを何十個も付ける必要があるのはなぜ?
FPGAは内部に数万〜数百万のロジックセルがあり、同時スイッチング時の過渡電流が非常に大きい。1個のコンデンサでカバーできる帯域は限られるため、異なる容量のMLCCを多数並列配置して広帯域をカバーする必要がある。
Q: 入力したデータはどこに保存される?
すべてのデータはブラウザ内で処理され、サーバーには一切送信されない。ページを閉じるとデータは消える。
まとめ
「0.1μFでいいでしょ」の時代は終わった。デカップリングコンデンサの選定は、目標インピーダンス法で根拠を持って行おう。
このツールなら、ICカテゴリと電源条件を入力するだけで最適な構成が分かる。インピーダンスグラフを見て「全帯域カバーOK」を確認してから基板設計に進めば、作り直しのリスクを大幅に減らせる。
基板のパターン設計が気になった人はPCB配線幅・電流容量計算ツールも試してみて。レギュレータの発熱が心配ならLDO発熱シミュレーターが参考になる。
不具合や要望があれば、X (@MahiroMemo)から気軽に教えて。