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:可以读写多字节寄存器地址。i2ctransfer可以替代i2cset和i2cget。

 (i2ctransfer becomes available starting with I2C tools revision v4.0 included into OpenEmbedded Thud (2.6.x))

语法
    i2ctransfer [-f] [-y] [-v] [-a] i2cbus w-n@chip-address data-0 data-1 ... data-n r-num
    i2ctransfer [-f] [-y] [-v] [-a] i2cbus w-n@chip-address data-0 data-1 ... data-n

参数说明:

  参数f:强制访问设备。
  参数y:关闭人机交互模式;
  参数v:
  参数a:允许用0x00-0x07和0x78-0x7f地址
  参数i2cbus:指定i2c总线的编号
  参数w-n:写n个字节
  参数chip-address:器件地址
  参数data-0 data-1 ... data-n:寄存器地址(读) / 寄存器地址和写的数据(写)
  参数r-num:读num个字节

实例
  ① i2ctransfer -y -f 1 w4@0x1a 0x0 0x0 0xfe 0xf2

  其中: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。

posted @ 2022-11-14 15:32  白菜没我白  阅读(1249)  评论(0编辑  收藏  举报