配線容量と、ドライバがそれを駆動できるか
50pF の負荷は、8mA のドライバで 20ns かけて 3.3V まで充電されます。50MHz で振れば 27mW を消費します。配線容量は「寄生」と呼ばれますが、タイミングと消費電力の両方に、はっきり数字で効きます。
配線 1cm は 1pF 前後
プレーン上の配線の単位長さあたりの容量は、特性インピーダンス Z₀ と伝搬遅延 tpd から C = tpd ÷ Z₀ で出せます。50Ω のマイクロストリップ(6.5ps/mm)なら 0.13pF/mm、1cm で 1.3pF。内層のストリップライン(7ps/mm)なら 1.4pF/cm。細くてプレーンから遠い高インピーダンスの配線(100Ω)なら 0.65pF/cm と半分です。
配線に何がつながるかで、容量はさらに増えます。CMOS の入力ピンは 3〜10pF、ESD 保護ダイオードは 1〜数 pF(高速信号用の低容量品で 0.2〜0.5pF)、コネクタのピンで 1〜3pF、ビア 1 個で 0.3〜0.5pF。
たとえば、10cm の配線に受信 IC が 3 個(各 5pF)、ESD 保護が 1 個(3pF)、コネクタ 1 個(2pF)なら、13 + 15 + 3 + 2 = 33pF。基板間をフラットケーブル(50〜100pF/m)で 30cm 延ばせば、さらに 15〜30pF 加わって 50〜60pF です。
| 要素 | 容量 | 備考 |
|---|---|---|
| 50Ω マイクロストリップ | 1.3pF/cm | Z₀ が高いほど小さい |
| CMOS 入力ピン | 3〜10pF | データシートの Cin |
| ESD 保護ダイオード | 1〜5pF | 高速用の低容量品は 0.5pF 以下 |
| ビア | 0.3〜0.5pF | 基板厚・パッド径による |
| コネクタのピン | 1〜3pF | — |
| フラットケーブル | 50〜100pF/m | 隣接線を GND にすると増える |
| オシロのパッシブプローブ(10:1) | 10〜15pF | 測ると波形が変わる |
充電にかかる時間
ドライバが出力できる電流を I、負荷容量を C とすると、電圧を ΔV 上げるのに t = C × ΔV ÷ I かかります。C = 50pF、ΔV = 3.3V、I = 8mA なら 20ns。データシートの IOH / IOL(4mA、8mA、12mA など)は、出力電圧が規定の VOH / VOL にあるときの保証電流なので、この計算は保守的な見積もりです。
もう少し実態に近いのは、出力を抵抗 Ron とみなした RC の充電です。VOL = 0.4V で IOL = 8mA なら Ron ≒ 50Ω。τ = 50Ω × 50pF = 2.5ns で、10%→90% の立ち上がりは 2.2τ = 5.5ns。これに IC 自身の遅延を足したものが、受信端で見える立ち上がりです。
20MHz のクロックは周期 50ns で、High と Low がそれぞれ 25ns。立ち上がりと立ち下がりに 5〜6ns ずつかかると、それだけで周期の 2 割が遷移に使われ、デューティも崩れます。50MHz(半周期 10ns)ではもう成立しません。負荷容量が大きい配線では、周波数の上限は駆動能力で決まります。
ドライブ能力の設定を持つマイコン・FPGA では、必要な負荷に対して最小の設定を選びます。強い設定はエッジが速くなるぶん、リンギング・クロストーク・放射ノイズが増えます。
消費電力は C × V² × f
容量を V まで充電すると ½CV² のエネルギーがドライバの抵抗で熱になり、放電でもう ½CV² が熱になります。1 周期で CV²、周波数 f で振れば P = C × V² × f。50pF × 3.3² × 50MHz = 27mW。16 本のパラレルバスなら 0.44W で、マイコンのコア消費電力を超えることがあります。
この電力はドライバ側の IC で発生します。I/O の消費電力がデータシートで別に規定されているのはこのためで、コアの電力に I/O の CV²f を足したものが実際の消費電力です。
電力を減らす手段は式のとおりで、C を減らす(配線を短く、受信端を減らす、低容量の ESD 素子)、V を下げる(3.3V → 1.8V で 1/3.4)、f を下げる(不要なときはクロックを止める)です。電池駆動で「計算より消費電流が多い」場合、常時トグルしているクロック線の CV²f が原因のことがあります。
プローブをつなぐと波形が変わる
10:1 のパッシブプローブは 10〜15pF の容量を持ちます。33pF の配線にプローブをつなぐと 45pF になり、立ち上がりは 3 割遅くなります。測っている波形は、プローブをつないだ状態の波形で、外した状態とは違います。
動作がぎりぎりの回路で、「プローブを当てると動く/当てないと動かない」という現象はこれです。プローブの容量が、不足していたホールド時間を稼いでいたり、リンギングを鈍らせていたりします。
影響を減らすには、容量 1pF 以下のアクティブプローブを使うか、プローブの容量を最初から負荷に含めて設計するか、動作確認をプローブなしで(LED や別のピンの出力で)行います。
容量として扱えるのは、短い配線だけ
ここまでの「容量」の見方は、配線全体が同じ電圧とみなせる、つまり集中定数で扱える長さでの話です。エッジの速いドライバと長い配線では、配線は容量ではなく伝送線路で、ドライバが見るのは容量ではなく特性インピーダンス(50Ω)です。
その領域では、「50pF を充電する」のではなく「50Ω に電流を流す」ことになり、立ち上がり時間は負荷容量ではなく反射で決まります。境目は配線は何 mm から伝送線路になるかで扱っています。
配線容量の計算機は、配線の寸法から容量を出します。I/O バッファの駆動計算機は、負荷容量とドライバの能力から立ち上がり時間と消費電力を出します。
よくある質問
GPIO で長い配線(1m のケーブル)を駆動できますか。
配線容量を減らすには線幅を細くすればよいですか。
ドライバのデータシートの「負荷容量 50pF」は何を意味しますか。
I/O の消費電力は本当にそんなに大きいですか。
参考にした規格・資料
- 各ロジック IC・マイコンメーカのデータシート — IOH / IOL、入力容量、負荷容量の試験条件、I/O 消費電力
- IPC-2141A — 伝送線路の特性インピーダンスと単位長さあたりの容量
- Tektronix / Keysight のプローブに関する技術資料 — プローブの入力容量と負荷効果