i2cutil

列出、读取和写入 I2C 设备。

用法

i2cutil read <device> <address> [<address>...]
i2cutil write <device> <address> [<address>...] <data> [<data>...]
i2cutil transact <device> (r <bytes>|w <address> [<address>...] [<data>...])...
i2cutil dump <device> <address> <count>
i2cutil list
i2cutil ping
i2cutil help

命令

朗读

i2cutil read <device> <address> [<address>...]

从 I2C 设备读取一个字节。使用 transact 读取多个字节。<device> 可以是 devfs 节点的完整路径(例如:/dev/class/i2c/031),也可以是 devfs 节点的索引(例如:31),也可以是通过 i2cutil list 获取的设备的易记名称。使用 ping 获取 devfs 节点路径和索引。<address> 是要读取的 <device> 的内部寄存器。可使用多个 <address> 值访问多字节(小端字节序)寄存器地址。例如,使用 i2cutil read 4 0x20 0x3D 读取位于 0x203D 的寄存器。

i2cutil write <device> <address> [<address>...] <data> [<data>...]

将一个或多个字节 (<data>) 写入 I2C 设备。请参阅 read 说明,了解 <device><address> 的说明。

交易

i2cutil transact <device> (r <bytes>|w <address> [<address>...] [<data>...])...

执行包含多个细分的交易。每个段可以是写入 (w) 或读取 (r)。

dump

i2cutil dump <device> <start> <count>

<device> 中从 <address> 表示的地址开始读取并输出 <count> 寄存器

list

i2cutil list

列出系统中可用的所有 I2C 设备。还会显示设备的易记名称(如果提供)。否则,设备将显示为 (ANONYMOUS)

ping

i2cutil ping

通过读取每个设备的 0x00 地址,Ping devfs 路径 /dev/class/i2c 下的所有 I2C 设备。

帮助

i2cutil help

输出帮助文本。

示例

读取一个字节

从 I2C 设备的 0x20 处的寄存器(由 devfs 节点索引 4 表示)中读取一个字节:

$ i2cutil read 4 0x20

读取三个字节

从 I2C 设备(由 devfs 节点索引 4 表示)的 0x20 处的寄存器读取三个字节:

$ i2cutil transact 4 w 0x20 r 3

从地址 0x10 开始转储 9 个寄存器

从地址 0x10 开始转储 9 个寄存器。

$ i2cutil dump pmic 0x10 9
0x10: 0x00
0x11: 0x00
0x12: 0x00
0x13: 0x00
0x14: 0x00
0x15: 0x00
0x16: 0x00
0x17: 0x00
0x18: 0x00

从多字节地址中读取一个字节

从 I2C 设备的多字节地址 0x203D 处的寄存器(由 devfs 节点索引 4 表示)中读取一个字节:

$ i2cutil read 4 0x20 0x3D

使用 devfs 节点路径读取一个字节

从 I2C 设备的多字节地址 0x203D 处的寄存器(由 devfs 节点路径 /dev/class/i2c/004 表示)中读取一个字节:

$ i2cutil read /dev/class/i2c/004 0x20 0x3D

使用设备的易记名称读取一个字节

从名为 temp_sensor 的 I2C 设备的多字节地址 0x203D 处的寄存器中读取一个字节:

$ i2cutil list
378: temp_sensor
379: (ANONYMOUS)
380: humidity_sensor
381: pmic
$ i2cutil read temp_sensor 0x20 0x3D

写入一个字节

将一个字节 0x12 写入到 I2C 设备(由 devfs 节点索引 3 表示)的 0x2C 处的寄存器:

$ i2cutil write 3 0x2C 0x12

使用 devfs 节点路径写入两个字节

将两个字节 0x121B 写入 I2C 设备(由 devfs 节点索引 /dev/class/i2c/003 表示)的 0x2C 处的寄存器:

$ i2cutil write /dev/class/i2c/003 0x2C 0x12 0x1B

Ping 所有 I2C 设备

读取 /dev/class/i2c 下所有设备的 0x00 地址。

$ i2cutil ping
/dev/class/i2c/821: OK
/dev/class/i2c/822: OK
/dev/class/i2c/823: OK
/dev/class/i2c/824: OK
Error ZX_ERR_TIMED_OUT
/dev/class/i2c/825: ERROR

列出所有 I2C 设备

列出系统上的所有 I2C 设备及其好记的名称(如果有)。

$ i2cutil list
378: temp_sensor
379: (ANONYMOUS)
380: humidity_sensor
381: pmic

备注

源代码

i2cutil 的源代码://src/devices/i2c/bin/i2cutil.cc