😺
Linux: I2CデバイスのレジスタのRead/Write
はじめに
Linuxで接続されているI2Cデバイスのレジスタをリードライトする時に利用するi2c-tools
についてまとめています。Linuxカーネル本家のツールということもあり?、ほとんど全てのプラットフォーム/SoCで使えると思います。
インストール
sudo apt-get install i2c-tools
I2Cバスの一覧を表示
i2cdetect
コマンドを利用して確認ができ、/dev/i2c*
に存在するものが表示されます。
$ i2cdetect -l
i2c-3 i2c 1230000.i2c I2C adapter
i2c-1 i2c 4560000.i2c I2C adapter
特定のI2Cバスにぶら下がるデバイスのレジスタをダンプ
i2cdump
コマンドを使います。
使い方
i2cdump -y <対象のバスの番号, i2c-*の*の番号> 対象デバイスのスレーブアドレス(7bit)
$ i2cdump -y 2 0x8
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 ..............?.
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 ..............?.
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
特定のデバイスの特定のレジスタのリード/ライト
i2cget
, i2cset
コマンドを利用します。
リード
使い方
i2cget -y <対象のバスの番号, i2c-*の*の番号> スレーブアドレス(7bit) レジスタのアドレス
例
$ i2cget -y 3 0x10 0x07
0xca
ライト
使い方
i2cset -y <対象のバスの番号, i2c-*の*の番号> スレーブアドレス(7bit) レジスタのアドレス データ
例
$ i2cset -y 3 0x20 0x17
参考文献
Discussion