部品実験 | 元に戻る |
INA226 2024/11/01 |
|
| |||||||
1.簡単に使う 2.I2Cスレーブアドレス 3.レジスタ レジスタ一覧 4.キャリブレーション値の求め方 5.概要 6.INA226回路基板の作成 |
1.INA226 Arduinoプログラム 2.INA226 Pythonプログラム(RaspberrPi) |
本 文 |
1.簡単に使う アクセスの仕方(INA226の値を読む方法) 簡単には下記レジスタの値を書込んだり、読み込むことによりINA226を使用します。 実際はもっと有ります 「3.レジスタ」参照
(1)設定を送る 設定は2種類ある a.Configuration Register と b.Calibration Register a.Configuration Register 0x00 (0x00,0x4127) Configuration Register 16bitは下記の設定項目を決める。 ディフォルト値 0x4127 値の決定方法は「3.レジスタ(0)00h Configuration Register」を参照ください。
b.Calibration Register 0x05 (0x05 ,6827) キャリブレーション値は「4.キャリブレーション値の求め方を参照ください。 信号
(2)値を要求する (3)値の返信 は下表の項目の値を要求します。 最低限には 0x01 Shunt Voltage Registerと 0x02 Bus Voltage Register を読むことにより母線電圧と計算により電流値を出すことにが出来ます。
なお動作試験では 母線電圧は24(V)、電流は1(A)を入れています。 シャント抵抗は0.75(mΩ) 0x01 Shunt Voltage Register (2)値を要求する
また実際のシャント抵抗が違っている事もこの計算から判る。 電流値 1(A)が正しければ抵抗値は 293×0,0025 = 0.7325(mΩ)と思われる。次回確認する。 0x02 Bus Voltage Register 信号 (2)値を要求する
0x03 Power Register (2)値を要求する
0x04 Current Register (2)値を要求する
[目次に戻る] |
2.I2Cアドレスの選択 I2Cのアドレスは7bitで値設定はA1及びA0と指定のピンに短絡する事により16のアドレスを設定できる。
|
3.レジスター キャリブレーションレジスターの設定について 計測する最大電流により、IN±に接続するシャント抵抗値やキャリブレーションレジスタの設定を変更する必要がある。 レジスタについて INA266には10個のレジタが有ります。 測定した値は01h~04hのレジスタ値を読む事になる。 シャント電圧値、母線電圧値、電力値、電流値を読むことが出来ます。 なお電流値や電力値についてはキャリブレーションレジスターを設定する事によりシャント電圧を電流値に変換します。 レジスタ一覧
(0)00h Configuration Register
AVG 平均化のサンプル数
VBUSCT バス電圧変換時間
VSHCT シャンの電圧変換時間
MODE 動作モード
これらのビットは、連続シャントおよびバス測定モードにデフォルト設定されます。 [Configuration Registerへ戻る] [(1)レジスター一覧へ戻る] (1)01h Shunt Voltage Register フルスケール範囲 = 81.92 mV (10 進数 = 7FFF)、LSB: 2.5 μV。 [(1)レジスター一覧へ戻る] (2)02h Bus Voltage Register フルスケール範囲 = 40.96 V (10 進数 = 7FFF)、LSB = 1.25 mV [(1)レジスター一覧へ戻る] (3)03h Power Register Power Register LSB は、Current_LSB のプログラム値の 25 倍になるように内部的にプログラムされます。 [(1)レジスター一覧へ戻る] (4)04h Current Register 電流レジスタの値は、シャント電圧レジスタの10進数値を乗算(式3に従って、キャリブレーションレジスタの10進数値)して計算されます。 [(1)レジスター一覧へ戻る] (5)05h Calibration Register 電流および電力測定のフルスケール範囲と LSB を設定します。システム全体のキャリブレーション。 計算方法は「4.キャリブレーション値の求め方を参照ください。
(6)06h Mask/Enable Register アラート構成と変換準備完了フラグ。
SOL シャント電圧過電圧 このビットをハイに設定すると、変換後のシャント電圧測定がアラート制限レジスタにプログラムされた値を超えた場合にアラートピンがアサートされるように設定されます。 SUL シャント電圧不?電圧 このビットをハイに設定すると、変換後のシャント電圧測定値がアラート制限レジスタにプログラムされた値を下回った場合にアラート ピンがアサートされるように設定されます。 BOL バス電圧過電圧 このビットをハイに設定すると、変換後のバス電圧測定値がアラート制限レジスタにプログラムされた値を超えた場合にアラート ピンがアサートされるように設定されます。 BUL バス電圧不足電圧 このビットをハイに設定すると、変換後のバス電圧測定値がアラート制限レジスタにプログラムされた値を下回った場合にアラート ピンがアサートされるように設定されます。 POL 電力制限超過 このビットをハイに設定すると、バス電圧測定後の電力計算がアラート制限レジスタにプログラムされた値を超えた場合にアラートピンがアサートされるように設定されます。 CNVR 変換準備完了 このビットをハイに設定すると、変換準備完了フラグ (ビット 3) がアサートされたときにアラート ピンがアサートされるように設定され、デバイスが次の変換の準備ができていることを示します。 AFF アラート機能フラグ アラート ピンで一度に監視できるアラート機能は 1 つだけですが、変換準備も有効にしてアラート ピンをアサートできます。アラートの後にアラート機能フラグを読み取ると、アラート機能がアラートの原因であったかどうかを判断できます。アラート ラッチ イネーブル ビットがラッチ モードに設定されている場合、アラート機能フラグ ビットはマスク/イネーブル レジスタが読み取られたときにのみクリアされます。アラート ラッチ イネーブル ビットが透過モードに設定されている場合、アラート状態にならない次の変換の後にアラート機能フラグ ビットがクリアされます。 CVRF 変換準備完了フラグ デバイスはいつでも読み取ることができ、最後の変換のデータは利用可能ですが、ワンショットまたはトリガー変換を調整するために変換準備完了フラグ ビットが用意されています。変換準備完了フラグ ビットは、すべての変換、平均化、および乗算が完了した後に設定されます。変換準備完了フラグ ビットは、次の条件でクリアされます: 1.) 構成レジスタへの書き込み (パワーダウン選択を除く) 2.) マスク/イネーブル レジスタの読み取り OVF 数学オーバーフローフラグ 算術演算の結果オーバーフロー エラーが発生した場合、このビットは「1」に設定されます。これは、電流および電力データが無効である可能性があることを示します。 APOL アラート極性ビット。アラート ピンの極性を設定します。 1 = 反転 (アクティブハイオープンコレクタ) 0 = 通常 (アクティブローオープンコレクタ) (デフォルト) LEN アラート ラッチ イネーブル。アラート ピンとアラート フラグ ビットのラッチ機能を構成します。 1 = ラッチが有効 0 = 透過 (デフォルト) アラート ラッチ有効ビットが透過モードに設定されている場合、障害がクリアされるとアラート ピンとフラグ ビットはアイドル状態にリセットされます。アラート ラッチ有効ビットがラッチ モードに設定されている場合、障害発生後、マスク/有効レジスタが読み取られるまでアラート ピンとアラート フラグ ビットはアクティブのままです。 [(1)レジスター一覧へ戻る] (7)07h Mask/Enable Register 選択したアラート機能と比較する制限値が含まれます。 [(1)レジスター一覧へ戻る] (8)FEh Manufacturer ID Register 製造者 ID レジスタには、製造者の一意の識別番号が格納されます。 ID: メーカー ID ビット ビット 0 ~ 15 メーカー識別ビットを格納します [(1)レジスター一覧へ戻る] (9)FFh Die ID Register DID: デバイス ID ビット DIの一意の識別番号とリビジョン ID が格納されます。 ビット 4 ~ 15 デバイス識別ビットを格納します。 RID: ダイ リビジョン ID ビット ビット 0 ~ 3 デバイスのリビジョン識別ビットを格納します [(1)レジスター一覧へ戻る] [目次に戻る] |
4.キャリブレーション値の求め方(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 に耐える構造及び周辺機器に対する温度上昇に注意する必要がある。 [目次に戻る] |
5.概要 INA226は、I2CまたはSMBUS互換のインターフェースを備えた電流シャントおよび電力モニターです。
この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アサイン
|
6.INA226回路基板の作成 太陽光のバッテリー母線の電圧と電流を測定するために作成した。 電流は60A程度を測定するため、外部抵抗は0.75mΩを接続する予定だ。 外付け抵抗とINA226を取付ける場所が1m程度離れると思われるのでその間の電線はシールドケーブルにしたがどうなるか?楽しみでもある!
プリントパターンを失敗した! IN- と VBus を接続してしまったので、パターンを切って配線した 作成品の写真で赤線がその部分だ。 次のプリント板作成でキチンと反映したい。
[目次に戻る] |