Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Linux系のシェルでi2cを扱う

i2cのインターフェイスが出ているLinux系環境でシェル経由でi2cデバイスを扱うコマンドがあります。

実際のところ

導入

$ sudo apt-get install i2c-tools

つかいかた

i2cset

"-y"は対話モードを無効化。パイプでつなぐなら必須。

i2cset [-f] [-y] [-m mask] [-r] i2cbus chip-address data-address [value] ... [mode]

RTCモジュールを補正するスクリプトではこんな実例が。

# Calibrate the clock (default: 0x47). See datasheet for MCP7940N
i2cset -y 1 0x6f 0x08 0x47
i2cdetect

配下のi2cデバイスを搜索します。
iono Piのマニュアルにはこんな風な事例が載ってますね。

$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
 0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 6f
70: -- -- -- -- -- -- -- —