列出、讀取及寫入 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 裝置讀取 1 個位元組。使用 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 裝置。詳情請參閱
read
說明「<device>
」的說明
和 <address>
。
交易
i2cutil transact <device> (r <bytes>|w <address> [<address>...] [<data>...])...
使用多個區隔進行交易。每個片段可以寫成
(w
) 或讀取 (r
)。
轉儲
i2cutil dump <device> <start> <count>
從地址開始讀取及列印<count>
登錄的<device>
資料
由「<address>
」指出
list
i2cutil list
列出系統上所有可用的 I2C 裝置。裝置名稱的易記名稱
也會列出否則裝置會顯示為 (ANONYMOUS)
。
連線偵測 (ping)
i2cutil ping
對 devfs 路徑 /dev/class/i2c
下的所有 I2C 裝置進行連線偵測 (ping)
讀取每個裝置的 0x00
位址。
說明
i2cutil help
列印說明文字。
範例
讀取一位元組
讀取 I2C 裝置的 0x20
時,讀取暫存器的 1 個位元組
由 devfs 節點索引 4
表示:
$ i2cutil read 4 0x20
讀取三個位元組
使用 I2C 裝置的 0x20
讀取註冊資料中的三個位元組
由 devfs 節點索引 4
表示:
$ i2cutil transact 4 w 0x20 r 3
從地址 0x10 開始傾印九個暫存器
從地址 0x10 傾印九個暫存器。
$ i2cutil dump pmic 0x10 9
0x10: 0x00
0x11: 0x00
0x12: 0x00
0x13: 0x00
0x14: 0x00
0x15: 0x00
0x16: 0x00
0x17: 0x00
0x18: 0x00
從多位元組位址讀取一位元組
從多位元組位址 0x203D
讀取暫存器的 1 個位元組
以 devfs 節點索引 4
表示的 I2C 裝置:
$ i2cutil read 4 0x20 0x3D
使用 devfs 節點路徑讀取 1 個位元組
從多位元組位址 0x203D
讀取暫存器的 1 個位元組
每個 devfs 節點路徑代表的 I2C 裝置
/dev/class/i2c/004
:
$ i2cutil read /dev/class/i2c/004 0x20 0x3D
使用裝置易記的名稱讀取 1 個位元組
從多位元組位址 0x203D
讀取暫存器的 1 個位元組
具有下列名稱:temp_sensor
$ i2cutil list
378: temp_sensor
379: (ANONYMOUS)
380: humidity_sensor
381: pmic
$ i2cutil read temp_sensor 0x20 0x3D
寫入一位元組
將一個位元組 0x12
寫入到所代表 I2C 裝置的 0x2C
上
devfs 節點索引 3
:
$ i2cutil write 3 0x2C 0x12
使用 devfs 節點路徑寫入兩個位元組
將兩位元組 0x121B
寫入暫存器的 0x2C
以 devfs 節點索引 /dev/class/i2c/003
表示的 I2C 裝置:
$ i2cutil write /dev/class/i2c/003 0x2C 0x12 0x1B
對所有 I2C 裝置執行連線偵測 (ping)
查看下方所有裝置的 0x00
位址
/dev/class/i2c
。
$ 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