Linux i2ctool 工具的使用方法
1、工具安装
sudo apt-get install i2c-tools
2、使用
2.1 探测总线和设备
参数说明:
-
-y
:自动选择yes-r
:快速读指令-q
:快速写指令-f
:强制使用此设备地址
(1)探测i2c总线:
i2cdetect -l
(2)探测i2c设备
i2cdetect -y -r <id> 这里的 id 是你上面探测到总线 id 0 或者 1 ,注意:该命令检测出来的地址是7位地址,不包括读写位的
i2c0总线上地址0x1e处有设备:
i2c1总线上0x1a和0x38处有设备(UU表示该设备已经被驱动启用;如果是数字就表示该处有设备,但是没有驱动启用):
(3)查看设备支持的功能
i2cdetect -F 1
2.2 打印i2c设备所有寄存器的值
i2cdump -f -y <id> <device addr>
2.3 读取i2c设备某个寄存器的值
如下:获取1总线从设备0x62寄存器00的值
2.4 写入i2c设备某个寄存器的值
下面指令 0x62 后的第一个0x00 是要写入的寄存器地址,第二个 0x00 是要写入的值
如下:设置1总线从设备0x62寄存器00的值为0x00
2.5 向I2C设备(0x62),寄存器地址为16位的从设备读取或者写入数据
i2ctransfer命令 (i2ctransfer becomes available starting with I2C tools revision v4.0 included into OpenEmbedded Thud (2.6.x)) 语法 参数说明: 参数f:强制访问设备。 实例 其中:1是总线号,0x1a是设备地址,0x0 0x0是16-bit寄存器地址,0xfe和0xf2是写入的数据。 也就是把0xfe和0xf2写入到0x1a芯片的0x0 0x0寄存器中。w4表示要写4个字节,即寄存器地址0x0 0x0和数据0xfe 0xf2。 ② i2ctransfer -y -f 1 w2@0x1a 0x0 0xf r16 其中:1是总线号,0x1a是设备地址,0x0 0xf是16-bit寄存器地址,r16是读16个字节。 也就是从0x0 0xf寄存器开始,向后读16个字节。w2表示要写2个字节,即寄存器地址0x0 0xf。 |
本文来自博客园,作者:白菜没我白,转载请注明原文链接:https://www.cnblogs.com/xingboy/p/16889193.html