1. 简介

    i2c-tools 是linux的一个工具,使用他,可以在命令行进行 i2c/SMBus 设备的用户层访问。

 

2. 实例

2.1 查看某总线上所有 i2c adapter:

> i2cdetect -l

 

2.2 罗列出每个 adapter 上设备地址的有效性

> i2cdetect -y <num>

这个例子中 标记UU 的,表示这个地址上有个设备是有效的。即,当向这个地址发送询问时有应答。

这个例子中有三个地址是有效的,0x1b、0x40、0x41

 

2.3 读取一个 7位地址 的器件的寄存器

> i2cget -f -y <num> <i2cbus chip address> <data address>

 

> i2cget -f -y 0 0x40 0 (这个器件地址是0x40,读 0寄存器)

 

2.4 给 一个 7位地址 的器件中的寄存器 写值

> i2cset -f -y <num> <i2cbus chip address> <data address> <data>

> i2cset -y 0 0x50  0x00 0x10 (往0地址上写0x10)

 

2.5 给一个 10位地址 的器件 写值 (驱动中是16位地址模式),这个命令只有在i2c-tools4.0之后才有

> i2ctransfer -y -f 0 w2@0x1d 0x00 0x20 r3

    w2, 写入两字节,就是在数据线上要传输的字节数量

    0x1d, 是器件地址,实际在总线上会发送 { 0x1d << 1  |  [ 读写位 ] }

    0x00 0x22, 共同组成0x0020这个寄存器的地址

    r3,表示读3字节

> i2ctransfer -y -f 0 w4@0x1d 0x00 0x02 0x77 0x77

    w4,表示数据线上传输4字节

    0x00 0x02,表示寄存器地址

    0x77, 第一个数据

    0x77, 下一个地址上写

 

3. 有意义的网站

    i2c-tool 介绍

    i2c-tools 下载仓库

Logo

更多推荐