- START 条件之后的地址为开漏(仲裁阶段)。
- 重复 START 条件之后的地址为推挽。

图:I3C 框图
I3C 架构的主要特性如下:- I3C 控制器驱动软件:具有软件特权的实体,能够进行枚举和总线配置。
- I3C 客户端软件:使用 I3C 总线对设备进行读/写的软件实体。
I3C 数据包帧结构
一个帧以 START 开始,依次为命令(8 位)、数据(8 位)、转换位(1 位)和 STOP。
图:I3C 数据包帧
其中:- ACK:应答(SDA 为低电平)
- S:起始条件
- Sr:重复起始条件
- P:停止条件
- T:替代 ACK/NACK 的转换位

图:I3C 时序
I3C 总线初始化
I3C 总线初始化过程如下:- I3C 控制器驱动软件初始化 I3C 控制器(固件和配置设置)。
- I3C 控制器驱动软件读取 I3C 配置和设备数据库,包括:
- I2C 静态地址设备列表。
- I3C 静态地址设备列表。
- 预期的 I3C 动态设备列表:供应商 ID、设备 ID、预定义动态地址和关联的驱动程序。
- 可选的允许热加入的设备(供应商 ID、设备 ID 和预定义地址)。
- 驱动程序使用 I3C 控制器软件枚举总线上的设备(设置本地地址)。
- I3C 控制器驱动软件将所需设备和总线特性信息写入 I3C 控制器:
- 工作频率
- 纯/传统 I2C 模式
- SDR/HDR 启用/禁用(及类型)
- 支持 IBI 的设备和预期数据字节
- I3C 客户端软件栈接收关于 I3C 配置和设备数据库的以下信息。
- I2C 静态地址设备列表。
- I3C 静态地址设备列表。
- 预期的 I3C 动态设备列表:供应商 ID、设备 ID、预定义动态地址和关联的驱动程序。
- 可选的允许热加入的设备(供应商 ID、设备 ID 和预定义地址)。
I3C 功能
aDSP/SDC I3C 子系统支持以下功能。- 地址阶段频率为 400 kHz。
- 数据阶段频率为 12,500 kHz。
- 与传统 I2C 向后兼容。
- 目标设备的动态寻址。
- 单倍数据速率(SDR)模式。
- 符合 MIPI I3C 规范的 CCC 命令
I3C 接口组件
aDSP/SLPI 软件中的 I3C 用例支持传感器设备通信。注意:I3C 不支持 Linux 用例。
表:aDSP/SLPI/SDC
| 文件类型 | 描述 |
|---|---|
| QUP v3 串行引擎配置 |
|
| 固件配置设置 |
|
| 公共 API |
|
I3C 软件 GPIO 配置
QUP v3 串行引擎的 I3C 固件在启动序列期间随 SSC QUP 一起加载。配置文件位于 aDSP 构建中。为特定 QUP v3 串行引擎实例启用 I3C 配置的源代码路径是/firmware/qualcomm-linux-spf-1-0_ap_standard_oem_nomodem/ADSP.HT.5.5.c8/adsp_proc/core/settings/buses/qup_fw/config/<chipset>/fw_devcfg.c 和 /firmware/qualcomm-linux-spf-1-0_ap_standard_oem_nomodem/ADSP.HT.5.5.c8/adsp_proc/core/settings/buses/qup_fw/config/<chipset>/fw_devcfg.xml。
以下是加载 I3C 固件的 SSC QUP SE0 或 SE1 的示例。
/firmware/qualcomm-linux-spf-1-0_ap_standard_oem_nomodem/ADSP.HT.5.5.c8/adsp_proc/core/settings/buses/qup_common/config/<chipset>/adsp/ssc/qup_instance_mapping.c。
默认 GPIO 配置可按如下方式覆盖:

