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

联合

DataTransfer 灵活

fuchsia.hardware.i2c/i2c.fidl 中定义

如果设置了 read_size:这是读取转移作业,系统将从目标读取 read_size 字节。如果设置了 write_data:这是一次写入传输,且 write_data 将会被写入目标。

序数变体类型说明
read_size uint32
write_data vector<uint8>[32768]

Device_GetName_Result 严格

fuchsia.hardware.i2c/i2c.fidl 中定义

序数变体类型说明
response Device_GetName_Response
err zx/Status

Device_Transfer_Result 严格

fuchsia.hardware.i2c/i2c.fidl 中定义

序数变体类型说明
response Device_Transfer_Response
err zx/Status

常量

名称类型说明
MAX_COUNT_TRANSACTIONS 256 uint32

在调用 Transfer 时可以指定的事务数上限。

MAX_I2C_NAME_LEN 64 uint32

I2C 通道名称的最大长度。

添加数量:11
MAX_TRANSFER_SIZE 32768 uint32

使用大传输或大量事务时,客户端应了解通道消息的大小上限。有可能会生成所用值小于以下限制的消息,但对于通道来说仍然过大。

在单个 Transaction 中可以读取或写入的字节数上限。

别名

名称说明
读取数据 vector[MAX_TRANSFER_SIZE]

用于从读取传输返回数据。

服务

服务

fuchsia.hardware.i2c/i2c.fidl 中定义

名称类型传输
设备 fuchsia.hardware.i2c/Device 频道