INA226 测量偏移/非线性问题

皆さん、こんにちは。DIY電池テスター/電子負荷を制作中です。ESP32、TFTディスプレイ、その他の興味深い部品を使用しています。このプロジェクトの核心は、デジタル制御セットポイントを備えたフィードバックループ付き電流シンクです。設計の改善案はいくつかあります(不適切な選択をいくつかしたことは認めます)、しかし現在最大の頭痛の種はINA226の電流測定に関する問題です。

問題の説明:

PCB端子の入力電圧が低い場合(例:約4V)、電流を増加させようとすると、INA226の読み値が実際の電流より低い(デジタルマルチメーターで検証済み)ことがわかり、非線形性もあります。設定電流が大きくなるにつれて、この偏差はますます顕著になります。

  • この問題は電流が約50mAを超えたときに発生します;
  • 入力電圧が高い場合(約18V)、問題はほとんど消失します;
  • 興味深いことに、フィードバックループの設定値と実際の電流は非常に近く、通常の誤差は±0.5mA以内です。

つまり本質的には、私の負荷は期待通りに動作していますが、INA226は低電圧下で電流値を「過小報告」しているようです。

疑問:

  1. INA226が負荷下での低バス電圧でこのような動作を示すことに遭遇した方はいますか?
  2. これはシャント電圧降下、I2Cタイミング、またはその他の要因に関連している可能性がありますか?
  3. このシナリオで、読み値を安定させる、または測定精度を向上させるための推奨事項は何ですか?

さらに情報が必要な場合、写真、配線図、コードスニペット、または完全なKiCadプロジェクトファイルを共有できます。皆様のご指導や類似の経験共有に心から感謝します!

C1とR4の相互作用によって引き起こされる安定性の問題を考慮しましたか?これはオペアンプの反転入力端子に遅延をもたらし、さらにダーリントン・トランジスタがもたらす遅延と合わさって、発振や何らかのリングング現象を引き起こすのに十分な可能性があります。

確かに、それまで考慮していませんでした。私の考え方は、電池電圧が安定しているため高速な調整は不要で、RCローパスフィルタを使えばノイズ/発振を低減できるというものでした。この問題は必ずオシロスコープで確認します。

また、言い忘れていましたが、Q1は2N2222からBD139に交換済みです。

返信で述べられたように、フィードバックループ内のRCローパスフィルタ(C1およびR4)が原因かもしれません。低入力電圧時には、ループ遅延(RCおよびダーリントントランジスタQ1による)が位相シフトを引き起こし、電流制御が不安定になり、その結果INA226の読み取り値が歪む可能性があります。RC時定数を小さくしてみてください—コンデンサC1を小さくする(例:100nFから10nFへ)か、抵抗R4を小さくする—ことで、フィードバック応答を高速化できます。また、Q1をBD139に交換したのであれば、そのベース駆動が十分であることを確認してください。駆動が不十分だと、トランジスタが線形領域で動作し、電流の非線形性が増大します。オシロスコープを使用してシャント電圧波形を観測してください—リングングや発振がある場合、シャント抵抗に小さなスナバコンデンサ(例:10pF)を並列に追加することで、信号を安定化させるのに役立つかもしれません。

まず現象を分解して見てみましょう:

  1. 電流ループ自体には問題がなく(設定値≈実測値)、MOSFET、オペアンプ、DACの閉ループが正常に動作していることを示しています;

  2. INA226の「報告値」だけが低く、しかもVBUSが低く、電流が大きいときに発生します;

  3. 18Vでは誤差はほとんど見られません。

これはほぼ間違いなく「シャント抵抗両端のコモンモード電圧が低すぎる」ことに起因するデバイスレベルの測定誤差を指し示しており、コードやI²Cタイミングの問題ではありません。

  1. コモンモードが低すぎると、内部PGAが「サボり」始める
    INA226の入力段はΔΣ型ADCで、前段には2MHzのスイッチドキャパシタアレイがあります。コモンモード電圧が低いほど、内部サンプル&ホールドの電荷注入ミスマッチが顕著になり、等価オフセットが増幅されます。データシートに明記されています:VCM = 0V時の典型的なオフセットは50µV、VCM ≥ 1V時は10µV程度に低下します。4V入力、50mA電流の場合、シャント抵抗が50mΩであれば、VBUSは実際に4V – 2.5mV ≈ 3.9975Vに引き下げられ、コモンモードはまだ「低い」状態です。しかも、シャント電圧はわずか2.5mVで、すでにオフセット電圧と同じオーダーです。電流がさらに増加すると、読み取り値が「目減り」し始めます。

  2. シャント抵抗のKelvin配線/パッドの熱電対効果
    低電圧大電流時には、1µΩの追加金属抵抗でも1µVの誤差をもたらします。トップ層の銅箔が多く「侵食」されている場合、またはサンプリングポイントがパッドから離れすぎていると、INA226に実際に印加されるVshuntはマルチメータで測定される値よりも低くなります。

  3. 基板内のグランドバウンス
    パワーGND、デジタルGND、INA226のGNDが細い配線で共有されている場合、50mAのスイッチングスパイクで数百µVのGND電位差が発生し、差動測定に直接重畳されます。

  4. I²Cタイミング/ノイズ
    このような誤差は一般的に「変動」または「コード値のちらつき」として現れ、系統的な低値ではないため、優先度は低くなります。

改善リスト(コストパフォーマンス順)

A. シャント抵抗を「ハイサイド」に移動する
INA226のVBUSピンをバッテリ正極に直接接続し、コモンモード≈4Vとします。これは1Vの「快適ゾーン」を大幅に上回り、デバイスのオフセットをすぐに1桁低下させます。ハイサイド測定には以下が必要です:
– シャント抵抗を正極側に移動;
– INA226のV+電源は3.3Vでも可能(コモンモードは36Vまで許容);
– 新しい配線は必ずKelvin接続とし、パワー経路とは分離すること。

B. シャント電圧を大きくする
最大電流が1Aの場合、50mΩを100mΩに交換すると、フルスケールで100mV、LSBは2.5µVのまま、S/N比が2倍になります。消費電力は100mWで、1Aアプリケーションでは許容範囲です。

C. 「ゼロオフセット」をキャリブレーションする
コード内で「ゼロ電流」サンプリング(リレー開放またはDAC=0)を実行し、結果をEEPROMに保存し、正式な測定前に毎回減算します。INA226にはCalibrationレジスタがありますが、これはパワー/電流計算にのみ有効で、生のシャント電圧には無効です。そのため、Shunt Voltage Registerを直接読み取ってオフセットを減算するのが最も簡潔です。

D. 基板の二次的小規模修正
– パワーGND、デジタルGNDをゾーニング後、一点接続;
– INA226の下方全体を「アナログGND」銅張りとし、パワーGNDとは0Ω抵抗またはピンヘッダーで一点のみ接続;
– シャント抵抗パッド内側に2対のKelvinビアを打ち、差動配線を内層で平行に配置、長さ<15mm。

E. ソフトウェアフィルタリング
64回取得して平均化し、結果を2次IIRで平滑化すると、ランダムノイズを0.2LSB以下に抑えられます。しかし、系統的なオフセットには無効で、A/B/Cと併用する必要があります。

クイック検証方法

  1. 実験室電源に1Ω抵抗を直列に接続し、VBUSを人工的に8V以上に引き上げ、誤差がすぐに縮小するか確認します;

  2. 精密ミリボルト源(またはDAC+分圧)を使用して、INA226の差動ピンに1mV、5mV、10mVを直接注入し、Shunt Voltage Registerを読み取り、「入力-コード値」曲線を描くことで、デバイス自体のリニアリティを一目で確認できます。

通常A+B+Cの3項目を実施すれば、4V/1A点の誤差を±0.5%FS以内に抑えられ、残りはソフトウェアキャリブレーションの問題だけになります。調整が順調に進むことをお祈りしています!

ご説明によると、INA226が低入力電圧(例:4V)かつ大電流時に実際よりも低く、非線形な電流値を表示する問題は、高電圧(18V)時には消失します。これについて以下のように分析し、対処できます:

1. コモンモード電圧とシャント電圧降下

INA226のコモンモード電圧範囲は重要です。これはV- ≤ VCM ≤ V+を必要とします(V-はグランド、V+は通常バス電圧)。しかし、シャント抵抗を介した電圧降下(I×Rshunt)はサンプリング電圧を変化させます。入力電圧が低い(例:4V)場合、電流を増加させると、サンプリング端子のコモンモード電圧がINA226の最小コモンモード動作電圧に近づいたり、それ以下に低下したりし、測定精度の低下と非線形性を引き起こします。

例えば、シャント抵抗が0.02Ωの場合(回路図のR5=0.02Ωから推測)、500mA時の電圧降下は10mVです。4Vのバス電圧では、この降下によりサンプリング点のコモンモード電圧が低下し、INA226のコモンモード範囲の下限に近づくため、測定偏差が発生します。18Vではシャント降下は無視できるため、コモンモード電圧は正常範囲内に留まります。

2. シャント抵抗の電力損失と温度ドリフト

シャント抵抗は大電流で発熱し、**抵抗値の温度変化(温度ドリフト)**を引き起こし、非線形な測定結果をもたらします。特に低電圧・大電流時、シャント抵抗の電力損失(I²×R)が大きく、温度上昇と抵抗値変化が顕著になり、サンプリング電圧から計算される電流値が実際の値からずれます。

3. I2Cタイミングと通信安定性

フィードバックループは正常に動作していますが、INA226のI2C通信は低電圧電源下でタイミング偏差が生じる可能性があります。回路図のAMS1117からのINA226の電源電圧(3.3V)が低バス電圧時に安定しているか確認してください。さらに、I2Cのプルアップ抵抗や通信速度(例:デバイスがサポートするレートを超える)もデータ読み取り精度に影響し、読み取り偏差を引き起こす可能性があります。

4. 回路レイアウトとノイズ干渉

シャント抵抗の配線における寄生インダクタンスや抵抗、または他の高周波回路(TFTディスプレイやESP32の高周波信号など)とのクロストークも、サンプリング精度に影響を与える可能性があります。特に低電圧・小信号シナリオでは、ノイズの影響が増大します。

安定した読み取りと精度向上のための提案

  • コモンモード電圧の最適化: INA226のコモンモード電圧が常に仕様範囲内にあることを確認してください。シャント抵抗値を調整する(例:電圧降下を減らすために小さい抵抗値を選択し、電力と分解能のバランスを取る)か、低電圧シナリオで最大電流を制限して、コモンモード電圧が過度に低下するのを避けてください。
  • シャント抵抗の選択: 低温度係数の合金抵抗(マンガニン合金など)を使用し、十分な電力余裕(実際の消費電力の少なくとも2倍)を確保して、温度ドリフトの影響を軽減してください。同時に、シャント抵抗の放熱設計を最適化し、熱パッドや銅箔面積を増やすなどの対策を講じてください。
  • I2C通信の最適化: I2C通信速度を低下させる(例:400kHzから100kHzへ)、プルアップ抵抗値が適切か確認する(3.3Vシステムでは通常4.7kΩ程度)、ESP32とINA226間のI2Cタイミングがデバイスマニュアルに厳密に準拠していることを確認してください。さらに、デカップリングコンデンサ(INA226のV+ピンに10μFと0.1μFのコンデンサを並列に接続するなど)を追加して、電源の安定性を向上させることもできます。
  • 回路レイアウトの改善: シャント抵抗のサンプリングラインをできるだけ短く太くして寄生パラメータを減らし、INA226を高周波干渉源(TFTディスプレイドライバ回路など)から離して配置し、必要に応じてサンプリングラインをシールドするか一点接地を使用してください。
  • ソフトウェアキャリブレーションと補償: コード内で低電圧シナリオ用のキャリブレーションテーブルを作成し、入力電圧と設定電流に基づいてINA226の読み取り値を補償してください。例えば、デジタルマルチメータで異なる電圧・電流時の偏差を測定し、補償関数をフィッティングして、ソフトウェアでリアルタイムに補正します。