Embedded Test 03 · 電源と消費電流から状態を読む — 機器は電流でしゃべる

Chapter 03

電源と消費電流から状態を読む — 機器は電流でしゃべる

この章のゴール.

消費電流の波形が内部状態のもっとも雄弁な外部信号であることを理解し、 平均・ピーク・スリープ電流・タイミングをどう測り、何をオラクルにするかを設計できるようになること。

この章で使う既出の用語(定義は各リンク先). 記録(01 章 4 節)、判定(02 章 1 節)、電源(02 章 2 節)

1. なぜ電流を最初に見るのか

MCU は、やっていることがそのまま消費電流に現れる。CPU が回れば増え、スリープすれば激減し、無線が送信すれば鋭いピークが立つ。 ソースを読めなくても、電流波形を見れば「今スリープに入った」「100 ms ごとに何か送っている」「起きっぱなしで寝ていない」が分かる。 特に電池駆動機器では、消費電流そのものが最重要の仕様であり、AI 生成コードで最も見落とされやすい欠陥(寝るべきときに寝ていない、無駄なポーリング)がここに出る。

消費電流の波形は、そのまま「内部状態」の地図になる時間電流スリープ起動処理無線送信スリープ復帰「寝るべきときに寝ているか」——AI 生成コードで最も見落とされる欠陥がここに出る
図3-1 電流プロファイルから状態遷移を読む。

2. 何を測るか

指標意味典型的なオラクル
平均電流電池寿命を決める「スリープ主体の機器で平均 10 µA 以下」
スリープ電流(ベースライン)最も深い省電力状態の電流データシートの µA オーダーに入っているか
アクティブ電流処理中のピーク・平均想定範囲か
送信ピーク無線送信の瞬間の電流(数十 mA)電源が耐えられるか、間隔は仕様どおりか
突入電流電源投入直後保護回路が誤動作しないか
状態遷移のタイミング起きて→処理→寝るまでの時間締め切りを守るか(14 章)

ダイナミックレンジが広いのが電流測定の難しさである。スリープの µA と送信の数十 mA は 4〜5 桁違う。両方を同時に、時間分解能を保って測るのが肝。

3. 測り方 — 3 つの方法

3.1 シャント抵抗 + オシロ/差動プローブ

電源ラインに小さな抵抗(シャント、例 1 Ω)を直列に入れ、その両端電圧を測る。オームの法則で電流に換算(1 Ω なら 1 mV = 1 mA)。

3.2 専用の電流計測器(推奨)

Nordic Power Profiler Kit 2(PPK2)、Otii Arc、Keysight のパワーアナライザなどは、 測定レンジを自動で切り替え(µA〜A を 1 台で)、時間波形とともに積算エネルギーを出す。電池駆動機器の検証の定番。

3.3 電源側から

プログラマブル電源(ベンチ電源、pyvisa で制御、19 章)の電流読み値でも平均は分かるが、時間分解能が粗い。急峻なピークは見えない。

電流は「小さな抵抗の両端電圧」として測る電源3.3 Vシャントテスト対象MCU / 基板mV電流 I = 電圧降下 ÷ 抵抗値(オームの法則)高分解能: PPK2 / Otii
図3-2 シャント抵抗法。専用計(PPK2)は自動でこれを行う。

4. 電流波形をオラクルにする

電流波形は、内部状態の外部シグネチャとして使える。

# PPK2 で電流を取り、スリープ電流と平均を判定する骨格(18 章で詳述)
import numpy as np
samples = ppk2.get_samples()          # µA の配列
sleep = np.percentile(samples, 5)     # 下位 5 % ≈ スリープ電流
avg   = samples.mean()
assert sleep < 15,  f"スリープ電流が高い: {sleep:.1f} µA(寝ていない疑い)"
assert avg   < 200, f"平均電流が高い: {avg:.1f} µA"

5. 派生的な観測 — 発熱と電源品質

6. 音・電磁も「電流の親戚」

7. 手を動かす

電流波形から状態を読む


この章のポイント