1.概要
INA226は、I2CまたはSMBUS互換のインターフェースを備えた電流シャントおよび電力モニターです。 〇1.0V~36 V のバス電圧を検知〇ハイサイドまたはローサイド検知 〇電流・電圧・電力をレポート 〇高精度、-0.1% ゲイン誤差 (最大)-10 μV オフセット (最大) 〇構成可能な平均化オプション 〇16個のプログラム可能なアドレス 〇2.7V~5.5V の電源で動作 〇10 ピン、DGS (VSSOP)パッケージ |

このINA226はVBUSとGND間電圧をBus Voltage Registerに格納する。使用電圧は0V~36V

IN±の逆起電圧(この電圧を以降シャント電圧と呼ぶ)をShunt Registerに格納しCalibration Registerの値から電流を計算しCurrent Registerに格納また電力を計算してPower Registerに格納する。
Configuration Registerの値によりA/Dの変換時間や平均回数などを設定できる。
I2Cの通信で各レジスターのデータを授受すことができる。
なおVBUSのLSBは1.25mVで最大は40V、ジャンと電圧のLSBは±2.5uVで最大は-81.9175~81.92mVとなっているので注意する事。
電源電圧は2.7V~5.5Vで消費電力は330uAで動作します。
Pinアサイン
| Pin | DEVICE | DESCRIPTION |
| 1 | A1 | Address pin. Connect to GND, SCL, SDA, or VS. Table 2 shows pin settings and corresponding addresses. |
| 2 | A0 | Address pin. Connect to GND, SCL, SDA, or VS. Table 2 shows pin settings and corresponding addresses. |
| 3 | Alert | Multi-functional alert, open-drain output. |
| 4 | SDA | Serial bus data line, open-drain input/output. |
| 5 | SCL | Serial bus clock line, open-drain input. |
| 6 | VS | Power supply, 2.7 V to 5.5 V |
| 7 | GND | Ground. |
| 8 | VBUS | Bus voltage input. |
| 9 | IN- | Connect to load side of shunt resistor. |
| 10 | IN+ | Connect to supply side of shunt resistor. |
2.簡単に使う
アクセスの仕方(INA226の値を読む方法)簡単には下記レジスタの値を書込んだり、読み込むことによりINA226を使用します。
実際はもっと有ります 「3.レジスタ」参照
| アドレス | レジスタ名 | レジスタ概要 | 動作 |
| 0x00 | Configuration Register | 設定レジスタ | R/W |
| 0x01 | Shunt Voltage Register | 電流値の元シャント電圧値レジスタ | R |
| 0x02 | Bus Voltage Register | 母線電圧値レジスタ | R |
| 0x03 | Power Register | 母線電圧×電流で求める電力値レジスタ | R |
| 0x04 | Current Register | シャント電圧と変換値から求めた電流値レジスタ | R |
| 0x05 | Calibration Register | 電流値を変換する値 | R/W |
(1)設定を送る
設定は2種類ある a.Configuration Register と b.Calibration Register
a.Configuration Register 0x00 (0x00,0x4127)
Configuration Register 16bitは下記の設定項目を決める。
ディフォルト値 0x4127
値の決定方法は「3.レジスタ(0)00h Configuration Register」を参照ください。
| 設定項目 | 概 要 | bit | 値 | 設定内容 |
| RST | レジスタリセット(ディフォルト値にする) | 1 | b0 | リセットしない |
| SP | '-- | 3 | b100 | '-- |
| AVG | 平均化のサンプル数 | 3 | b000 | 平均値 1 |
| VBUSCT | バス電圧変換時間 | 3 | b100 | 変換時間 1.1ms |
| VSHCT | シャンと電圧変換時間 | 3 | b100 | 変換時間 1.1ms |
| MODE | 動作モード | 3 | b111 | シャントとバス、連続 |
| ①読取るINA226のスレーブアドレス番号 ②設定するレジスタの選択 ③コンフィグレジスタの設定 |
-> ー> ー> |
44 詳細は「2.I2Cスレーブアドレス」参照 0x00(※コンフィグレジスタ) 0x4127 |

b.Calibration Register 0x05 (0x05 ,6827)
キャリブレーション値は「4.キャリブレーション値の求め方を参照ください。
信号
| ①読取るINA226のスレーブアドレス番号 ②設定するレジスタの選択 ③キャリブレーションレジスタの設定 |
-> ー> ー> |
44 0x05(※キャリブレーションレジスタ) 0x1AAB (値は10進数で6827) |

(2)値を要求する (3)値の返信
は下表の項目の値を要求します。
最低限には 0x01 Shunt Voltage Registerと 0x02 Bus Voltage Register を読むことにより母線電圧と計算により電流値を出すことにが出来ます。
| 0x01 | Shunt Voltage Register | 電流値の元シャント電圧値レジスタ |
| 0x02 | Bus Voltage Register | 母線電圧値レジスタ |
| 0x03 | Power Register | 母線電圧×電流で求める電力値レジスタ |
| 0x04 | Current Register | シャント電圧と変換値から求めた電流値レジスタ |
なお動作試験では 母線電圧は24(V)、電流は1(A)を入れています。 シャント抵抗は0.75(mΩ)
0x01 Shunt Voltage Register
(2)値を要求する
| ①読取るINA226のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
44 0x01(※シャント電圧レジスタ) |
(3)値の返信
| ①読取るINA226のスレーブアドレス番号 ②シャント電圧レジスタの内容 |
-> ー> |
44 0x0125 (値は10進数で293) |
また実際のシャント抵抗が違っている事もこの計算から判る。
電流値 1(A)が正しければ抵抗値は 293×0,0025 = 0.7325(mΩ)と思われる。次回確認する。

0x02 Bus Voltage Register
信号
(2)値を要求する
| ①読取るINA226のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
44 0x021(※母線電圧レジスタ) |
(3)値の返信
| ①読取るINA226のスレーブアドレス番号 ②母線電圧レジスタの内容 |
-> ー> |
44 0x4AF5 (値は10進数で19,189) |

0x03 Power Register
(2)値を要求する
| ①読取るINA226のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
44 0x03(※電力レジスタ) |
| ①読取るINA226のスレーブアドレス番号 ②電力レジスタの内容 |
-> ー> |
44 0x03B3 (値は10進数で947) |

0x04 Current Register
(2)値を要求する
| ①読取るINA226のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
44 0x04(※電流レジスタ) |
| ①読取るINA226のスレーブアドレス番号 ②電流レジスタの内容 |
-> ー> |
44 0x03DB (値は10進数で987) |

3.I2Cアドレスの選択
I2Cのアドレスは7bitで値設定はA1及びA0と指定のピンに短絡する事により16のアドレスを設定できる。| A1 | A0 | ADDRESS | |
| Binary | HEX | ||
| GND | GND | 100 0000 | 40h |
| GND | Vs | 100 0001 | 41h |
| GND | SDA | 100 0010 | 42h |
| GND | SCL | 100 0011 | 43h |
| Vs | GND | 100 0100 | 44h |
| Vs | Vs | 100 0101 | 45h |
| Vs | SDA | 100 0110 | 46h |
| Vs | SCL | 100 0111 | 47h |
| SDA | GND | 100 1000 | 48h |
| SDA | Vs | 100 1001 | 49h |
| SDA | SDA | 100 1010 | 4Ah |
| SDA | SCL | 100 1011 | 4Bh |
| SCL | GND | 100 1100 | 4Ch |
| SCL | Vs | 100 1101 | 4Dh |
| SCL | SDA | 100 1110 | 4Eh |
| SCL | SCL | 100 1111 | 4Fh |
4.レジスター
キャリブレーションレジスターの設定について計測する最大電流により、IN±に接続するシャント抵抗値やキャリブレーションレジスタの設定を変更する必要がある。
レジスタについて
INA266には10個のレジタが有ります。
測定した値は01h~04hのレジスタ値を読む事になる。
シャント電圧値、母線電圧値、電力値、電流値を読むことが出来ます。
なお電流値や電力値についてはキャリブレーションレジスターを設定する事によりシャント電圧を電流値に変換します。
レジスタ一覧
| ADD | REGISTER NAME | FUNCTION | DATA | TYPE | |
| BINARY | HEX | ||||
| 00h | Configuration Register | All-register reset, shunt voltage and bus voltage ADC conversion times and averaging, operating mode. | 0100 0001 0010 0111 |
4127 | R/W |
| 01h | Shunt Voltage Register | Shunt voltage measurement data. | 0000 0000 0000 0000 |
0000 | R |
| 02h | Bus Voltage Register | Bus voltage measurement data. | 0000 0000 0000 0000 |
0000 | R |
| 03h | Power Register(2) | Contains the value of the calculated power being delivered to the load. | 0000 0000 0000 0000 |
0000 | R |
| 04h | Current Register(2) | Contains the value of the calculated current flowing through the shunt resistor. |
0000 0000 0000 0000 |
0000 | R |
| 05h | Calibration Register | Sets full-scale range and LSB of current and power measurements. Overall system calibration. | 0000 0000 0000 0000 |
0000 | R/W |
| 06h | Mask/Enable Register | Alert configuration and Conversion Ready flag. | 0000 0000 0000 0000 |
0000 | R/W |
| 07h | Alert Limit Register | Contains the limit value to compare to the selected Alert function. | 0000 0000 0000 0000 |
0000 | R/W |
| FEh | Manufacturer ID Register | Contains unique manufacturer identification number. | 0101 0100 0100 1001 |
5449 | R |
| FFh | Die ID Register | Contains unique die identification number. | 0010 0010 0110 0000 |
2260 | R |
(0)00h Configuration Register
| D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 |
| RST | ー | ー | ー | AVG2 | AVG1 | AVG0 | VBUSCT2 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| VBUSCT1 | VBUSCT0 | VSHCT2 | VSHCT1 | VSHCT0 | MODE3 | MODE2 | MODE1 |
| 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
AVG 平均化のサンプル数
| D11 | D10 | D9 | 平均値 | 備考 |
| 0 | 0 | 0 | 1 | デフォルト |
| 0 | 0 | 1 | 4 | |
| 0 | 1 | 0 | 16 | |
| 0 | 1 | 1 | 64 | |
| 1 | 0 | 0 | 128 | |
| 1 | 0 | 1 | 256 | |
| 1 | 1 | 0 | 512 | |
| 1 | 1 | 1 | 1024 |
VBUSCT バス電圧変換時間
| D8 | D7 | D6 | 変換時間 | 備考 |
| 0 | 0 | 0 | 140us | |
| 0 | 0 | 1 | 204us | |
| 0 | 1 | 0 | 332us | |
| 0 | 1 | 1 | 588us | |
| 1 | 0 | 0 | 1.100ms | デフォルト |
| 1 | 0 | 1 | 2.116ms | |
| 1 | 1 | 0 | 4.156ms | |
| 1 | 1 | 1 | 8.244ms |
VSHCT シャンの電圧変換時間
| D5 | D4 | D3 | 変換時間 | 備考 |
| 0 | 0 | 0 | 140us | |
| 0 | 0 | 1 | 204us | |
| 0 | 1 | 0 | 332us | |
| 0 | 1 | 1 | 588us | |
| 1 | 0 | 0 | 1.100ms | デフォルト |
| 1 | 0 | 1 | 2.116ms | |
| 1 | 1 | 0 | 4.156ms | |
| 1 | 1 | 1 | 8.244ms |
MODE 動作モード
| D2 | D1 | D0 | MODE | 備考 | |
| 0 | 0 | 0 | Power-Down (or Shutdown) | 電源オフ(またはシャットダウン) | |
| 0 | 0 | 1 | Shunt Voltage, Triggered | シャント電圧、トリガー | |
| 0 | 1 | 0 | Bus Voltage, Triggered | バス電圧、トリガー | |
| 0 | 1 | 1 | Shunt and Bus, Triggered | シャントとバス、トリガー | |
| 1 | 0 | 0 | Power-Down (or Shutdown) | 電源オフ(またはシャットダウン) | |
| 1 | 0 | 1 | Shunt Voltage, Continuous | シャント電圧、連続 | |
| 1 | 1 | 0 | Bus Voltage, Continuous | バス電圧、連続 | |
| 1 | 1 | 1 | Shunt and Bus, Continuous | シャントとバス、連続 | デフォルト |
これらのビットは、連続シャントおよびバス測定モードにデフォルト設定されます。
(1)01h Shunt Voltage Register
フルスケール範囲 = 81.92 mV (10 進数 = 7FFF)、LSB: 2.5 μV。
(2)02h Bus Voltage Register
フルスケール範囲 = 40.96 V (10 進数 = 7FFF)、LSB = 1.25 mV
(3)03h Power Register
Power Register LSB は、Current_LSB のプログラム値の 25 倍になるように内部的にプログラムされます。
(4)04h Current Register
電流レジスタの値は、シャント電圧レジスタの10進数値を乗算(式3に従って、キャリブレーションレジスタの10進数値)して計算されます。
(5)05h Calibration Register
電流および電力測定のフルスケール範囲と LSB を設定します。システム全体のキャリブレーション。
計算方法は「4.キャリブレーション値の求め方を参照ください。
| D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 |
| CSIGN | CD14 | CD13 | CD12 | CD11 | CD10 | CD9 | CD8 |
| 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| CD7 | CD6 | CD5 | CD4 | CD3 | CD2 | CD1 | CD0 |
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
(6)06h Mask/Enable Register
アラート構成と変換準備完了フラグ。
| D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 |
| SOL | SUL | BOL | BUL | POL | CNVR | ー | ー |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| ー | ー | ー | AFF | CVRF | OVF | APOL | LEN |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
SOL シャント電圧過電圧
このビットをハイに設定すると、変換後のシャント電圧測定がアラート制限レジスタにプログラムされた値を超えた場合にアラートピンがアサートされるように設定されます。
SUL シャント電圧不?電圧
このビットをハイに設定すると、変換後のシャント電圧測定値がアラート制限レジスタにプログラムされた値を下回った場合にアラート ピンがアサートされるように設定されます。
BOL バス電圧過電圧
このビットをハイに設定すると、変換後のバス電圧測定値がアラート制限レジスタにプログラムされた値を超えた場合にアラート ピンがアサートされるように設定されます。
BUL バス電圧不足電圧
このビットをハイに設定すると、変換後のバス電圧測定値がアラート制限レジスタにプログラムされた値を下回った場合にアラート ピンがアサートされるように設定されます。
POL 電力制限超過
このビットをハイに設定すると、バス電圧測定後の電力計算がアラート制限レジスタにプログラムされた値を超えた場合にアラートピンがアサートされるように設定されます。
CNVR 変換準備完了
このビットをハイに設定すると、変換準備完了フラグ (ビット 3) がアサートされたときにアラート ピンがアサートされるように設定され、デバイスが次の変換の準備ができていることを示します。
AFF アラート機能フラグ
アラート ピンで一度に監視できるアラート機能は 1 つだけですが、変換準備も有効にしてアラート ピンをアサートできます。アラートの後にアラート機能フラグを読み取ると、アラート機能がアラートの原因であったかどうかを判断できます。アラート ラッチ イネーブル ビットがラッチ モードに設定されている場合、アラート機能フラグ ビットはマスク/イネーブル レジスタが読み取られたときにのみクリアされます。アラート ラッチ イネーブル ビットが透過モードに設定されている場合、アラート状態にならない次の変換の後にアラート機能フラグ ビットがクリアされます。
CVRF 変換準備完了フラグ
デバイスはいつでも読み取ることができ、最後の変換のデータは利用可能ですが、ワンショットまたはトリガー変換を調整するために変換準備完了フラグ ビットが用意されています。変換準備完了フラグ ビットは、すべての変換、平均化、および乗算が完了した後に設定されます。変換準備完了フラグ ビットは、次の条件でクリアされます:
1.) 構成レジスタへの書き込み (パワーダウン選択を除く)
2.) マスク/イネーブル レジスタの読み取り
OVF 数学オーバーフローフラグ
算術演算の結果オーバーフロー エラーが発生した場合、このビットは「1」に設定されます。これは、電流および電力データが無効である可能性があることを示します。
APOL アラート極性ビット。アラート ピンの極性を設定します。
1 = 反転 (アクティブハイオープンコレクタ)
0 = 通常 (アクティブローオープンコレクタ) (デフォルト)
LEN アラート ラッチ イネーブル。アラート ピンとアラート フラグ ビットのラッチ機能を構成します。
1 = ラッチが有効
0 = 透過 (デフォルト)
アラート ラッチ有効ビットが透過モードに設定されている場合、障害がクリアされるとアラート ピンとフラグ ビットはアイドル状態にリセットされます。アラート ラッチ有効ビットがラッチ モードに設定されている場合、障害発生後、マスク/有効レジスタが読み取られるまでアラート ピンとアラート フラグ ビットはアクティブのままです。
(7)07h Mask/Enable Register
選択したアラート機能と比較する制限値が含まれます。
(8)FEh Manufacturer ID Register

製造者 ID レジスタには、製造者の一意の識別番号が格納されます。
ID: メーカー ID ビット
ビット 0 ~ 15 メーカー識別ビットを格納します
(9)FFh Die ID Register

DID: デバイス ID ビット
DIの一意の識別番号とリビジョン ID が格納されます。
ビット 4 ~ 15 デバイス識別ビットを格納します。
RID: ダイ リビジョン ID ビット
ビット 0 ~ 3 デバイスのリビジョン識別ビットを格納します
5.キャリブレーション値の求め方
(Step4 05h Calibration Register)(1)キャリブレーション値の概略説明をします。
電流を計測する上で回路にシャント抵抗を入れます。
電流がシャント抵抗に流れる事により逆電圧が発生します。
この電圧をINA225が測定し、電流値の表示を出力しますが、シャント抵抗の値によって逆起電圧の値は代わります。
このため、逆起電圧の値がどれだけの電流を示すかINA226に教える必要が有ります。
この事をキャリブレーションと言い、INA226のレジスタの一つキャリブレーションレジスタに設定を行います。
なおレジスタのアドレスは05hです。
(2)キャリブレーションの値の計算方法は 2例を説明します
| ・使用する電流値から求める方法 | → | ① |
| ・使用するシャント抵抗値から求める方法 | → | ② |
①例として最大電流 ±40Aの場合
シャント電圧の最大値は-81.9175~81.92mV(この電圧を最大シャント電圧と言う)となっている。
①-1 シャント抵抗値は
最大シャント電圧 / 最大電流 > シャント抵抗
からシャント抵抗値をキリの良い値にする。
81.9175(mV) / 40(A) = 2.05(mΩ) → 2(mΩ)
①-2 この時のシャント電流LSB
シャント電圧LSB / シャント抵抗 = シャント電流LSB
0.0025(mV) / 2(mΩ) = 0.00125(A) = 1.25(mA)
①-3 キャリブレーション値は
(1,000 × 2,048 × シャント電圧LSB ) / シャント抵抗
1,000×2,048×0.0025(mV) / 2(mΩ) = 2,560
②例を変えて シャント抵抗を0.75(mΩ)とした場合に実際に電流1(A)を流してシャント電圧値を確認しキャリブレーション値を算出する場合は。
②-1 最大電流値は
-81.9175(mV) / 0.75(mΩ) ≒-109.2233(A)
+81.92 (mV) / 0.75(mΩ) ≒+109.2267(A)
②-2 この時の予想されるシャント電流LSB
0.0025(mV) / 0.75(mΩ) ≒ 0.00333(A) = 3.33(mA)
②-3 予想されるシャントレジスタの値
シャント電流×シャント抵抗 / シャント電圧LSB = シャントレジスタ値
1×0.75(mΩ) / 0.0025(mV) = 300
②-4 実測によるキャリブレーション値の求め方
シャント電流 ×1,000 ×2,048 / シャントレジスタ値 = キャリブレーション値
シャントレジスタの値を測定した結果(実測値)297だった場合は
1(A) ×1,000 ×2,048 / 297 = 6,896
②-5 実際のシャント電流LSB
1(A) / 297 = 0.0033(A)=3.3(mA)
②-6 実際のシャント抵抗値(シャント電流値及びシャント電圧LSBが正しい場合)
0.0025(mV)×297 / 1(A) = 0.7425(mΩ)
②-7 シャント抵抗の消費電力
最大シャント電流2×シャント抵抗値
109.22672(A) × 0.7425(mΩ) ≒ 8.858W
に耐える構造及び周辺機器に対する温度上昇に注意する必要がある。
6.INA226回路基板の作成
太陽光のバッテリー母線の電圧と電流を測定するために作成した。電流は60A程度を測定するため、外部抵抗は0.75mΩを接続する予定だ。
外付け抵抗とINA226を取付ける場所が1m程度離れると思われるのでその間の電線はシールドケーブルにしたがどうなるか?楽しみでもある!
| 回路図 | 作成品 |
![]() |
![]() |
プリントパターンを失敗した!
IN- と VBus を接続してしまったので、パターンを切って配線した
作成品の写真で赤線がその部分だ。
次のプリント板作成でキチンと反映したい。
| おもてプリントパターン | うらプリントパターン |
| IN+ IN- GND | |
![]() |
![]() |

〇1.0V~36 V のバス電圧を検知


