fuchsia.hardware.i2c

已新增:10

專家

裝置

定義於 fuchsia.hardware.i2c/i2c.fidl

取得名稱

取得這部 I2C 裝置的名稱。如未指定名稱或空白字串,系統會傳回 ZX_ERR_NOT_SUPPORTED。

已新增:11

要求

<空白>

回應

名稱類型
payload Device_GetName_Result

轉移

針對特定 I2C 裝置核發一或多項交易。

每個 Transaction 都會依照 transactions 中顯示的順序執行。如有讀取移轉作業的資料,系統會透過 read_data 傳回,後者會針對 transactions 中的每項讀取轉移提供一個項目。交易處理作業會持續執行,直到所有移轉作業都完成、發生錯誤,或目標發出 NACK 回應寫入移轉作業為止。

可能的錯誤值為 ZX_ERR_INVALID_ARGS:transactions 沒有任何元素、Transaction 未指定 data_transfer,或者長度為零的 DataTransfer。ZX_ERR_OUT_OF_RANGE:DataTransfer 過大,無法由這個 I2C 控制器處理。 ZX_ERR_IO_NOT_PRESENT:裝置未回應其 I2C 地址。 ZX_ERR_IO_REFUSED:裝置在寫入傳輸結束前核發了 NACK。

要求

名稱類型
transactions vector<Transaction>[256]

回應

名稱類型
payload Device_Transfer_Result

結構

裝置取得名稱回應

定義於 fuchsia.hardware.i2c/i2c.fidl

欄位類型說明預設
name string[64] 無預設

裝置轉移_回應

定義於 fuchsia.hardware.i2c/i2c.fidl

欄位類型說明預設
read_data vector<vector<uint8>>[256] 無預設

資料表

交易

定義於 fuchsia.hardware.i2c/i2c.fidl

data_transfer 是必要項目,並指定這筆交易屬於讀取或寫入傳輸 (請參閱上文)。stop 是選用項目,用於指定交易是由停止條件 (如果是 true) 或重複開始 (如果為 false 或未指定) 終止。如果此交易是清單中的最後一個交易,則無論 stop 的值為何,系統都會產生停止條件。

序數欄位類型說明
data_transfer DataTransfer
stop bool

聯合國

資料移轉彈性

定義於 fuchsia.hardware.i2c/i2c.fidl

如果已設定 read_size:這是讀取移轉,而且會從目標讀取 read_size 個位元組。如果已設定 write_data:這是寫入轉移,且 write_data 會寫入目標。

序數Variant類型說明
read_size uint32
write_data vector<uint8>[32768]

Device_GetName_Result 嚴格

定義於 fuchsia.hardware.i2c/i2c.fidl

序數Variant類型說明
response Device_GetName_Response
err zx/Status

Device_Transfer_Result 嚴格

定義於 fuchsia.hardware.i2c/i2c.fidl

序數Variant類型說明
response Device_Transfer_Response
err zx/Status

場景

名稱類型說明
MAX_COUNT_TRANSACTIONS 個 256 uint32

可在呼叫 Transfer 中指定的交易數量上限。

MAX_I2C_NAME_LEN 64 uint32

I2C 頻道名稱的長度上限。

已新增:11
最大傳輸比例 32768 uint32

使用大型傳輸作業或進行多次交易時,用戶端應瞭解管道訊息大小上限。如果產生的訊息值低於下列限制,可能會對管道造成太大影響。

單一 Transaction 中可以讀取或寫入的位元組數上限。

別名

名稱說明
讀取資料 vector[MAX_TRANSFER_SIZE]敬上

用於從讀取移轉作業傳回資料。

服務

服務

定義於 fuchsia.hardware.i2c/i2c.fidl

名稱類型傳輸
裝置 fuchsia.hardware.i2c/Device 版本