### i2cdetect
扫描bus 11上的设备
i2cdetect -y <bus>
i2cdetect -y 11
### i2cget
i2cget -f -y <bus> <slave> <reg/cmd> <option>
<option>
b (read byte data, default)
w (read word data)
i (read I2C block data)
获取bus 11上 0x32设备的数据
(get byte)
i2cget -f -y 11 0x32 0x00
i2cget -f -y 11 0x32 0x00 b
(getword)
i2cget -f -y 11 0x32 0x00 w
(get 6 bytes)最大只能获取32个字节(openbmc)(cpld)
i2cget -f -y 11 0x32 0x00 i 6
### i2cset
i2cset -f -y <bus> <slave> <data...> <option>
<option>
~~c (byte, no value)~~
b (byte data, default)
w (word data)
i (I2C block data)
s (SMBus block data)
Append p for SMBus PEC
#### set byte
i2cset -f -y <bus> <slave> <byte value>
i2cset -f -y <bus> <slave> <reg> <byte value>
切换bus 11上 0x70 (pca9548)设备的channel
(如关闭9548的channel 1-8(bit0-7))
i2cset -f -y 6 0x70 0x00
(如打开9548的channel 1(bit0))
i2cset -f -y 6 0x70 0x01
(如打开9548的channel 2(bit1))
i2cset -f -y 6 0x70 0x02
(如打开9548的channel 3(bit2))
i2cset -f -y 6 0x70 0x04
(如打开9548的channel 1-8(bit0-7))
i2cset -f -y 6 0x70 0xFF
mb
-bus6
--pca9548(0x70)
---bp0(ch0)
----pca9548(0x74)
-----disk0(ch0)
i2cset -f -y 6 0x70 0x01
i2cset -f -y 6 0x74 0x01
i2cget -f -y 4 0x33 0x00
#### set word
i2cset -f -y <bus> <slave> <word value>
i2cset -f -y 6 0x32 0x0001 w
#### set block
i2cset -f -y <bus> <slave> <block values> i
i2cset -f -y <bus> <slave> <reg> <block values> i
i2cset -f -y 6 0x32 0x00 0x01 0x02 0x03 i
#### write smbus block data with pec
i2cset -f -y <bus> <slave> <block data> sp
i2cset -f -y 6 0x32 0x00 0x01 0x02 0x03 ... sp
### i2ctransfer--raw
#### write
i2ctransfer <bus> w<write_cnt>@<slave> <values...>
向0x32写入2字节数据
i2ctransfer 11 w2@0x32 0x00 0x01
= = i2cset -f -y 6 0x32 0x00 0x01
向0x32写入256字节数据
i2ctransfer 11 w256@0x32 **0x00** 0x01 0x02 .... 0xff
#### write&read
i2ctransfer <bus> w<write_cnt>@<slave> <values...> r<read_cnt>
向0x32写入2字节数据,然后读取6个字节的数据
i2ctransfer 11 w2@0x32 0x00 0x01 r6
= =
i2cset -f -y 6 0x32 0x00 0x01
i2cget -f -y 6 0x32 **0x00** i 6
i2ctransfer 11 w2@0x32 0x00 0x01....
i2ctransfer 11 w1@0x32 0x0e r32
### i2cdump
i2cdump -f -y <bus> <slave>