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

指令

read

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 讀取登錄。

write

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

將一或多個位元組 (<data>) 寫入 I2C 裝置。如需 <device><address> 的說明,請參閱 read 說明。

交易

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

使用多個區隔進行交易。每個片段可以是寫入 (w) 或讀取 (r)。

轉儲

i2cutil dump <device> <start> <count>

<address> 指定的位址開始讀取及列印 <device> 中的 <count> 註冊

清單

i2cutil list

列出系統上所有可用的 I2C 裝置。系統也會列出裝置的易記名稱 (如有)。否則裝置會顯示為 (ANONYMOUS)

連線偵測 (ping)

i2cutil ping

從每部裝置的 0x00 位址讀取資料,對 devfs 路徑 /dev/class/i2c 下所有 I2C 裝置進行連線偵測 (ping)。

說明

i2cutil help

列印說明文字。

範例

讀取一個位元組

在以 devfs 節點索引 4 表示的 I2C 裝置 0x20 中,讀取註冊資料庫中的一個位元組:

$ i2cutil read 4 0x20

讀取三個位元組

在以 devfs 節點索引 4 表示的 I2C 裝置 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

從多位元組位址讀取一個位元組

在 devfs 節點索引 4 所代表的 I2C 裝置 0x203D 多位元組位址 0x203D 上讀取註冊位元組:

$ i2cutil read 4 0x20 0x3D

使用 devfs 節點路徑讀取一個位元組

在由 devfs 節點路徑所代表的 I2C 裝置 0x203D 上,讀取登錄到的一個位元組:/dev/class/i2c/004

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

使用裝置易記的名稱讀取一個位元組

在名為 temp_sensor 的 I2C 裝置 0x203D 多位元組位址 0x203D 上讀取註冊位元組:

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

寫入一個位元組

在由 devfs 節點索引 3 代表的 I2C 裝置 0x2C 中,將一個位元組 0x12 寫入註冊:

$ i2cutil write 3 0x2C 0x12

使用 devfs 節點路徑寫入兩個位元組

在 devfs 節點索引 /dev/class/i2c/003 代表的 I2C 裝置 0x2C 上,將兩個位元組 0x121B 寫入註冊:

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

對所有 I2C 裝置進行連線偵測 (ping)

讀取 /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