OpenBMC开发笔记系列——(二)i2c常用命令

### 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>

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenBMC开发笔记系列中,首先需要下载OpenBMC源代码。可以使用以下命令在本地克隆OpenBMC仓库:git clone git@github.com:openbmc/openbmc.git。 接下来,建议结合参考资料https://www.jianshu.com/p/5ef4653bfaaf和https://engineering.fb.com/2015/03/10/open-source/introducing-openbmc-an-open-software-framework-for-next-generation-system-management/,以获取更详细的指导和信息。 生成SSH密钥对也是开发过程中的一个重要步骤。可以使用以下命令生成SSH密钥对,并将公钥添加到相应的服务中:ssh-keygen -t rsa -C "XXXX@xxxx.com" gedit ~/.ssh/id_rsa.pub。 通过以上步骤,您可以开始OpenBMC开发笔记系列的学习和实践。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [OpenBMC开发笔记系列——(一)开发环境搭建](https://blog.csdn.net/u012937840/article/details/127781743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Facebook OpenBmc介绍的PPT](https://download.csdn.net/download/adaloceyou/85042746)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值