I3C 仅支持 aDSP 传感器通信。不支持 Linux 用例。
概述
总线特性
- 2 线串行接口(SDA + SCL),最高支持 12.5 MHz
- 与同一总线上的传统 I2C 设备向后兼容
- 地址阶段:400 kHz
- 数据阶段:12.5 MHz
高级特性
- 带内中断(IBI)支持
- 热加入(动态添加设备)
- 同步时序和异步时间戳
- 写操作期间的 8 位数据奇偶校验
- 目标设备的动态寻址
- 单倍数据速率(SDR)模式
- 符合 MIPI I3C 规范的 CCC(通用命令码)
数据阶段模式

数据包帧结构
总线初始化
1
控制器初始化
I3C 控制器驱动初始化控制器,包括固件加载和配置设置。
2
读取配置和设备数据库
驱动读取 I3C 配置和设备数据库:
- I2C 静态地址设备列表
- I3C 静态地址设备列表
- 预期的 I3C 动态设备(供应商 ID、设备 ID、预定义动态地址、关联驱动)
- 可选的允许热加入的设备
3
设备枚举
驱动枚举总线上的设备并分配本地地址。
4
总线配置
驱动将总线配置写入控制器:
- 工作频率
- 纯 I2C/传统 I2C 模式
- SDR/HDR 启用/禁用
- 支持 IBI 的设备及预期数据字节数
5
客户端软件配置
客户端软件接收 I2C/I3C 设备和热加入设备的设备列表及配置。
软件配置
固件加载
QUP v3 串行引擎的 I3C 固件在 aDSP 启动期间随 SSC QUP 加载。 配置文件:GPIO 配置
故障排除
设备未被枚举
设备未被枚举
- 检查 SDA/SCL 连接和上拉电阻(1–4.7 kΩ)
- 确认供应商 ID 和设备 ID 与预期值匹配
地址阶段时序问题(400 kHz)
地址阶段时序问题(400 kHz)
确认地址阶段的 SCL 频率为 400 kHz。在固件配置中调整时钟分频器设置。
热加入不工作
热加入不工作
- 确认配置中已启用热加入
- 将设备添加到允许热加入的列表(供应商 ID + 设备 ID)
信号完整性问题
信号完整性问题
- 测量 SDA 和 SCL 上的上升/下降时间
- 调整上拉电阻值
- 减少总线长度或电容
常见错误码
资源
- MIPI I3C 规范
- Qualcomm Linux 接口指南
- QUP v3 串行引擎文档

