列出、讀取及寫入 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