📺 B站 嵌入式孙老师:博主个人介绍
📘 博主书籍-京东购买链接*:Yocto项目实战教程
📘 加博主微信,进技术交流群: jerrydev
AW35615 与 HUSB311 全面对比:Type-C / PD / DP Alt Mode 核心逻辑、硬件 Switch 设计与 RK3576 调试要点
一、背景:为什么一颗 Type-C CC 芯片会影响 USB、DP、充电和下载?
在 RK3576、RK3588、平板、工控板、智能终端等产品中,经常会看到一个 Type-C 口同时承担多种功能:
- USB2 下载 / ADB
- USB Device
- USB Host
- USB3 高速数据
- Type-C DP Alt Mode 显示输出
- Source / Sink / DRP 供电角色切换
- 正反插识别
- PD 充电协商
这时板子上通常会放一颗 Type-C CC / PD 控制芯片,例如:
- AW35615
- HUSB311
- HUSB311C
- FUSB302
- RT1711 / RT1715
- TUSB422
在某些原理图中,甚至会看到同一个位置标注:
U4001 = AW35615(Default) / HUSB311(Option)
这说明这两个芯片在该设计里属于同类功能器件:Type-C CC / PD 控制器,用于 Type-C 口的检测、方向识别、角色判断、PD 协商和 Alt Mode 协商。当前硬件文档中也明确提到,AW35615 负责 CC 检测、插头正反识别、PD 协商、DP Alt Mode 进入条件协商,而真正的 USB3 / DP 高速复用由 RK3576 内部 USBDP PHY 完成。
这篇文章将从工程角度完整说明:
- AW35615 是什么;
- HUSB311 是什么;
- 两者有什么相同点和差异;
- Type-C 的 USB / DP 切换到底谁在做;
- AW35615 / HUSB311 作为 “Switch” 时该怎么理解;
- RK3576 平台上应该怎么配置和调试;
- 硬件设计和软件设备树中最容易踩坑的点。

二、先给结论:AW35615 / HUSB311 都不是高速 DP Switch
先把最重要的结论放在前面。
AW35615 和 HUSB311 都不是 USB3 / DP 高速 Lane Switch。它们是 Type-C CC / PD 控制器。
它们主要负责:
- CC1 / CC2 检测
- Attach / Detach 检测
- 正反插方向识别
- Source / Sink / DRP 角色判断
- Rp / Rd 状态判断
- USB PD 通信
- Power Role Swap
- Data Role Swap
- VCONN 控制
- VBUS 检测
- DP Alt Mode 协商
- 通过 I2C + INT 通知 AP / EC / SoC
它们不负责:
- 传输 USB2 数据
- 传输 USB3 高速数据
- 生成 DP 视频
- 直接切换 DP Main Link
- 直接切换 USB3 SSTX / SSRX
- 直接完成 Type-C SuperSpeed Lane 翻转
- 直接把 HDMI / eDP 转成 DP Alt Mode
所以正确理解应该是:
AW35615 / HUSB311:
负责 Type-C 口状态识别、PD 协商、Alt Mode 协商
RK3576 USBDP PHY 或外部高速 MUX:
负责真正的 USB3 / DP Lane 复用和方向映射
电源开关芯片:
负责 VBUS 5V 或更高电压的实际开关
三、AW35615 是什么?
AW35615 是艾为电子 Awinic 的一颗 USB Type-C PD Controller / PD PHY & Controller。
根据艾为官方资料,AW35615 是一颗可编程 DRP / SRC / SNK USB Type-C 控制器,集成完整 Type-C 收发器,包括 CC 上拉 / 下拉电阻,并支持 Type-C attach、orientation 和 role 检测。部分型号支持 USB PD3.1 和 Type-C V2.4。(Awinic)
AW35615 的核心功能如下:
| 功能 | 说明 |
|---|---|
| Type-C CC 检测 | 检测 CC1 / CC2 上的 Rp / Rd 状态 |
| Attach / Detach | 判断设备插入或拔出 |
| Orientation | 判断正插 / 反插 |
| Power Role | 支持 Source / Sink / DRP |
| PD 协议 | 支持 USB PD 通信 |
| Alt Mode | 支持 Type-C Alternative Mode,例如 DP Alt Mode |
| VBUS 检测 | 检测 VBUS 电压状态 |
| VBUS 放电 | 支持 VBUS discharge |
| VCONN | 部分型号集成 VCONN switch,并支持 OCP / OTP |
| Dead Battery | 支持无主电时作为 Sink 被唤醒 |
| Wake Detection | 支持低功耗唤醒检测,避免 CC 电压反复 toggle |
| BIST | 支持测试模式 |
| I2C / INT | 通过 I2C 与主控通信,通过 INT 上报事件 |
官方资料中提到,AW35615 的 CC logic block 会监测 CC1 / CC2 上的上拉或下拉状态,用于判断是否 attach、线缆方向以及检测到的角色。其 BMC PD block 支持 Type-C 规范中的 alternative interfaces,因此可以用于 DP Alt Mode 这类场景。(Awinic)
四、HUSB311 是什么?
HUSB311 是慧能泰 Hynetek 的一颗 USB Type-C PD Controller / TCPC。
根据 Hynetek 官方资料,HUSB311 遵循 USB Type-C 和 PD3.0 标准,实现 VCONN 电源控制、Type-C CC 控制与检测、USB PD Message delivery,并通过 I2C 与 TCPM 通信,通过 INT 请求主控处理事件。(Hynetek)
HUSB311 的核心功能如下:
| 功能 | 说明 |
|---|---|
| TCPC | Type-C Port Controller |
| CC 控制与检测 | 检测 CC1 / CC2,判断 attach 和 orientation |
| Rp / Rd 配置 | 每条 CC 线支持可编程 Rp / Rd |
| PD 消息传输 | 集成 BMC 编码器、接收器和发送器 |
| Power Role | 支持 Dual-Role Port |
| Role Swap | 支持 Power Role Swap / Data Role Swap |
| Alt Mode | 支持 Type-C alternative interfaces |
| VCONN | 支持 Type-C VCONN power control |
| I2C / INT | 通过 I2C 与 TCPM 通信,通过 INT 请求 attention |
Hynetek 官方还提到,HUSB311 可以用于 DRP 双角色应用,AP 或 EC 控制 HUSB311,再根据 HUSB311 提供的信息控制电池充放电和 USB 数据通道切换;官方资料中也提到它与 FUSB302、RT1715、RT1711、TUSB422 等同类产品相似。(Hynetek)
此外,Hynetek 还有 HUSB311C,官方说明其符合 USB Type-C 和 PD3.1 标准,同样支持 CC 控制、PD message delivery、VCONN 控制、attach / orientation 检测以及 I2C + INT 通信。(Hynetek)
五、AW35615 与 HUSB311 的共同点
AW35615 和 HUSB311 的核心定位非常接近。
它们都属于:
Type-C CC / PD Controller
或者
TCPC / PD PHY Controller
它们共同负责:
| 功能项 | AW35615 | HUSB311 |
|---|---|---|
| CC1 / CC2 检测 | 支持 | 支持 |
| Attach / Detach | 支持 | 支持 |
| Orientation 正反插识别 | 支持 | 支持 |
| Source / Sink / DRP | 支持 | 支持 |
| Rp / Rd 判断 | 支持 | 支持 |
| PD 通信 | 支持 | 支持 |
| Role Swap | 支持 | 支持 |
| VCONN 控制 | 支持,依型号而定 | 支持 |
| VBUS 检测 | 支持 | 支持 |
| Alt Mode 支持 | 支持 | 支持 |
| I2C 通信 | 支持 | 支持 |
| INT 中断通知 | 支持 | 支持 |
| 是否直接切 USB3 / DP Lane | 不负责 | 不负责 |
因此,在硬件逻辑上,它们的定位基本一致:
Type-C 插入
↓
CC 检测
↓
方向识别
↓
角色判断
↓
PD 协商
↓
Alt Mode 判断
↓
通知 SoC / EC
↓
SoC / 外部 MUX 执行真正的数据路径切换
六、AW35615 与 HUSB311 的关键差异
虽然二者定位接近,但在工程选型和软件移植时仍然不能混用。
1. 厂商不同
| 项目 | AW35615 | HUSB311 |
|---|---|---|
| 厂商 | 艾为电子 Awinic | 慧能泰 Hynetek |
| 产品定位 | PD PHY & Controller | USB Type-C PD Controller / TCPC |
| 官方平台资源 | AW35615 官方驱动、GUI、RK / MCU 等资源 | HUSB311 官方 TCPC 方案与应用资料 |
2. PD 版本差异
AW35615 不同封装和版本对应的 PD 能力不同。
例如:
| 型号 | 官方描述 |
|---|---|
| AW35615QNR | USB PD3.0,Type-C 1.2,最高 100W 级别描述 |
| AW35615HCSR | USB PD3.1,Type-C V2.4,支持 SPR 和 28V EPR |
| AW35615PFCR | USB PD3.1,Type-C V2.4,支持 28V EPR |
艾为官方页面中,AW35615QNR 描述为支持 USB PD3.0,HCSR / PFCR 等版本描述为支持 USB PD3.1 和 Type-C V2.4。(Awinic)
HUSB311 官方页面描述其支持 USB Type-C 和 PD3.0;HUSB311C 官方页面则描述其支持 USB Type-C 和 PD3.1。(Hynetek)
所以不能简单说:
AW35615 一定比 HUSB311 高级
或者
HUSB311 一定只支持 PD3.0
更准确的说法是:
要看具体料号:
AW35615 的具体封装 / 后缀
HUSB311 还是 HUSB311C
3. IO 电平和封装差异
AW35615 不同型号的 IO level、封装和耐压能力不同。
例如官方页面中:
| 型号 | IO Level | 封装 | CC / VBUS 耐压描述 |
|---|---|---|---|
| AW35615QNR | 1.8V / 3.3V | WBQFN 2.5 × 2.5-14L | CC 24V,VBUS 28V |
| AW35615HCSR | 1.8V / 3.3V | WLCSP 1.40 × 1.36-9B | CC 28V,VBUS 28V |
| AW35615PFCR | 1.2V | FCQFN 1.2 × 1.2-9L | CC 32V,VBUS 32V |
这些差异直接影响硬件设计中的:
- I2C 电平
- INT 电平
- 上拉电阻电源域
- 芯片供电
- 封装焊接
- 替代兼容性
- Layout 封装兼容性
HUSB311 / HUSB311C 也有自己的封装和默认角色配置,具体必须以 Hynetek 对应 datasheet 为准。
4. 软件驱动差异
这是工程上最关键的差异。
即使原理图上写:
AW35615(Default) / HUSB311(Option)
也不代表软件可以完全不改。
需要确认:
| 项目 | AW35615 | HUSB311 |
|---|---|---|
| I2C 地址 | 以原理图和实测为准 | 以原理图和实测为准 |
| compatible | 可能是 awinic 专用驱动 | 可能走 husb311 / tcpc 驱动 |
| 寄存器表 | AW35615 自己的寄存器定义 | HUSB311 自己的寄存器定义 |
| TCPM 适配 | 需要确认是否标准 TCPCI | HUSB311 常见作为 TCPC 与 TCPM 配合 |
| 初始化参数 | 以 AW 官方驱动 / GUI / BSP 为准 | 以 Hynetek 驱动 / BSP 为准 |
| Alt Mode 上报 | 驱动需要对接 Linux Type-C 框架 | 驱动需要对接 Linux Type-C 框架 |
最容易踩坑的是:
硬件能 pin-to-pin 替换,不代表软件能 binary 兼容。
如果板子实际焊的是 AW35615,但 DTS / 驱动按 HUSB311 写,可能出现:
- I2C 能扫到,但 probe 失败;
- 插拔没有中断;
- CC 状态读不对;
- PD 协商异常;
- DP Alt Mode 不上报;
- 正反插状态无法传给 PHY;
- USB role switch 不工作。
反过来也一样。
七、AW35615 / HUSB311 与 Type-C Pin 的关系
很多人会问:
USB 模式和 DP 模式到底 CC 有什么不同?为什么硬件上一直讲 Pin?
答案是:
CC 不跑 USB 数据,也不跑 DP 视频。CC 只负责识别、协商和通知。USB / DP 的区别体现在 Type-C 连接器中不同物理 Pin 的功能分配。
Type-C 中主要有以下几类信号:
| Type-C 信号组 | USB 模式 | DP Alt Mode |
|---|---|---|
| CC1 / CC2 | 插入检测、方向识别、PD | 插入检测、方向识别、PD、DP Alt Mode 协商 |
| D+ / D- | USB2、ADB、下载 | 通常仍可保留 USB2 |
| SuperSpeed Lane | USB3 TX/RX | 可复用为 DP Main Link |
| SBU1 / SBU2 | 通常不用或辅助用途 | DP AUX |
| VBUS | 供电 | 供电 |
| GND | 地 | 地 |
因此,AW35615 / HUSB311 所处理的是:
CC1 / CC2 上的状态和 PD 消息
而不是:
USB2 D+/D-
USB3 SSTX/SSRX
DP_TX_D0/D1/D2/D3
DP_TX_AUX
SBU1/SBU2
八、Type-C USB / DP Alt Mode 硬件逻辑图
下面是一个典型的 RK3576 + AW35615 / HUSB311 + Type-C DP Alt Mode 硬件逻辑图。
这个图里最重要的是三层分工:
| 层级 | 负责对象 | 典型模块 |
|---|---|---|
| 协议控制层 | CC / PD / Alt Mode | AW35615 / HUSB311 |
| 高速复用层 | USB3 / DP Lane / Orientation | RK3576 USBDP PHY |
| 电源路径层 | VBUS 输出 / 检测 / 放电 | KTS1665 + VBUSDET + TCPC |
九、AW35615 / HUSB311 作为 “Switch” 时到底切什么?
在 Type-C 设计中,经常有人说:
AW35615 / HUSB311 是 Type-C Switch。
这句话容易造成误解。
如果这里的 Switch 指:
切换 Type-C 端口状态
那可以这么说。
如果这里的 Switch 指:
直接切 USB3 / DP 高速差分线
那就是错误的。
1. 它们切的是“状态”
AW35615 / HUSB311 切换或管理的是:
| 状态 | 说明 |
|---|---|
| Attach / Detach | 插入或拔出 |
| Orientation | 正插或反插 |
| Power Role | Source / Sink / DRP |
| Data Role | Host / Device |
| CC 状态 | Rp / Rd / Ra |
| PD Contract | PD 协商结果 |
| VCONN 状态 | 是否需要给线缆供 VCONN |
| VBUS 状态 | 检测、放电、状态上报 |
| Alt Mode 状态 | 是否进入 DP Alt Mode |
| HPD / Attention | DP Alt Mode 相关状态事件 |
2. 它们不切“高速线”
它们不直接切:
| 高速数据对象 | 应该由谁处理 |
|---|---|
| USB3 SSTX / SSRX | SoC USBDP PHY 或外部 MUX |
| DP Main Link | SoC DP PHY / USBDP PHY |
| DP AUX 到 SBU | SoC PHY / AUX mux / 外部电路 |
| 正反插 Lane 映射 | SoC USBDP PHY 或外部 MUX |
| 2-lane / 4-lane DP | SoC USBDP PHY 或外部 MUX |
因此正确的逻辑是:
AW35615 / HUSB311:
“检测到对端支持 DP Alt Mode,当前方向是反插,建议切到 DP 模式。”
RK3576 USBDP PHY:
“收到,按反插映射切换 SuperSpeed Lane 和 SBU/AUX。”
十、USB 模式与 DP Alt Mode 的差异
1. 普通 USB 模式
普通 USB 模式下:
CC1 / CC2:
负责 attach、orientation、role
D+ / D-:
负责 USB2
SuperSpeed Lane:
负责 USB3
SBU1 / SBU2:
通常不参与
VBUS:
供电或检测供电
流程如下:
2. DP Alt Mode 模式
DP Alt Mode 下:
CC1 / CC2:
负责 PD 和 DP Alt Mode 协商
SuperSpeed Lane:
被复用为 DP Main Link,或者部分保留 USB3
SBU1 / SBU2:
用作 DP AUX
D+ / D-:
通常仍可保留 USB2
VBUS:
仍然负责供电
流程如下:
十一、2-lane DP + USB3 与 4-lane DP
DP Alt Mode 并不只有一种模式。
1. 2-lane DP + USB3
这种模式下:
部分 SuperSpeed Lane → DP Main Link
部分 SuperSpeed Lane → USB3
优点:
- 可以同时输出 DP 显示;
- 可以保留 USB3 数据;
- 常见于扩展坞或显示器 USB Hub 场景。
缺点:
- DP 可用带宽较低;
- 高分辨率或高刷新率可能受限。
2. 4-lane DP
这种模式下:
全部 SuperSpeed Lane → DP Main Link
优点:
- DP 带宽更高;
- 更适合高分辨率、高刷新率显示。
缺点:
- 通常无法同时保留 USB3;
- 但 USB2 D+ / D- 一般仍可继续使用。
因此:
DP Alt Mode 占用的是 USB3 SuperSpeed Lane,不等于 USB2 下载 / ADB 一定消失。
这也是为什么一个 Type-C 口可以既支持下载 / ADB,又支持 DP 显示。
十二、AW35615 与 HUSB311 在 RK3576 板级设计中的关系
在 RK3576 Type-C DP Alt Mode 设计中,一般有四个关键模块:
| 模块 | 典型名称 | 作用 |
|---|---|---|
| Type-C CC / PD 控制器 | AW35615 / HUSB311 | CC、PD、Alt Mode |
| Type-C 连接器 | J4001 | 物理接口 |
| VBUS 电源开关 | KTS1665 | 控制板端 5V 到 Type-C VBUS |
| SoC 内部 PHY | RK3576 USBDP PHY | USB3 / DP Lane 复用 |
典型硬件链路如下:
Type-C CC1/CC2
↓
AW35615 / HUSB311
↓ I2C + INT
RK3576 Type-C / TCPM / USBDP PHY
↓
USB2 / USB3 / DP / AUX / Role Switch
而 VBUS 是另一条链:
VCC_5V0_S0
↓
U4002 KTS1665
↓
VBUS5V0_TYPEC
↓
Type-C VBUS
注意:
AW35615 / HUSB311 知道 VBUS 状态,但不等于它们直接承载 VBUS 大电流路径。
真正送电通常要靠外部 power switch、load switch、charger 或 PMIC。
十三、硬件信号分组表
1. AW35615 / HUSB311 到 Type-C 口
| 信号 | 作用 |
|---|---|
| TYPEC_CC1 | CC1 检测 / PD 通信 |
| TYPEC_CC2 | CC2 检测 / PD 通信 |
| VCONN | 给有源线缆或电子标记线缆供电 |
| VBUS5V0_TYPEC | VBUS 状态检测或相关电源路径 |
2. AW35615 / HUSB311 到 RK3576
| 信号 | 作用 |
|---|---|
| I2C2_SCL_M0_CC_RTC | I2C 时钟 |
| I2C2_SDA_M0_CC_RTC | I2C 数据 |
| USBCC_INT_L | 中断,低有效常见 |
3. RK3576 到 Type-C USB2
| 信号 | 作用 |
|---|---|
| USB2_OTG0_DP | USB2 D+ |
| USB2_OTG0_DM | USB2 D- |
| USB2_OTG0_VBUSDET | USB 下载 / Device 模式的 VBUS 检测 |
4. RK3576 到 Type-C USB3 / DP Main Link
| 信号 | USB 模式 | DP Alt Mode |
|---|---|---|
| USB3_OTG0_SSTX1P/N | USB3 TX | 可复用为 DP Lane |
| USB3_OTG0_SSTX2P/N | USB3 TX | 可复用为 DP Lane |
| USB3_OTG0_SSRX1P/N | USB3 RX | 可复用为 DP Lane |
| USB3_OTG0_SSRX2P/N | USB3 RX | 可复用为 DP Lane |
| DP_TX_D0P/N | 不用于 USB | DP Lane 0 |
| DP_TX_D1P/N | 不用于 USB | DP Lane 1 |
| DP_TX_D2P/N | 不用于 USB | DP Lane 2 |
| DP_TX_D3P/N | 不用于 USB | DP Lane 3 |
5. RK3576 到 Type-C AUX / SBU
| 信号 | 作用 |
|---|---|
| DP_TX_AUXP | DP AUX 正 |
| DP_TX_AUXN | DP AUX 负 |
| TYPEC_SBU1 | Type-C SBU1 |
| TYPEC_SBU2 | Type-C SBU2 |
| TYPEC_DPTX_AUX_PUPDCTL1 | AUX / SBU 相关辅助控制 |
| TYPEC_DPTX_AUX_PUPDCTL2 | AUX / SBU 相关辅助控制 |
6. VBUS 电源链
| 信号 | 作用 |
|---|---|
| VCC_5V0_S0 | 板端 5V 电源 |
| USB_OTG0_PWREN_H | 控制 VBUS 电源开关 |
| VBUS5V0_TYPEC | Type-C VBUS |
十四、AW35615 / HUSB311 软件配置思路
1. 芯片驱动层
首先要确认实物到底焊的是谁:
AW35615
还是
HUSB311 / HUSB311C
然后确认对应驱动:
| 实物芯片 | 驱动方向 |
|---|---|
| AW35615 | 使用 Awinic 官方 AW35615 驱动,或确认其是否兼容 TCPCI/TCPM |
| HUSB311 | 使用 Hynetek HUSB311 / TCPC 驱动 |
| HUSB311C | 使用支持 PD3.1 的 HUSB311C 驱动 |
不要只因为原理图兼容,就直接复用另一个芯片的驱动。
2. I2C 配置
需要确认:
| 项目 | 检查方式 |
|---|---|
| I2C bus | 看原理图和 pinctrl |
| I2C address | 看 datasheet / 原理图 / i2cdetect |
| IO 电平 | 1.8V / 3.3V / 其他 |
| 上拉电阻 | 是否上拉到正确电源域 |
| 时钟速率 | 100k / 400k 是否满足 |
示意:
&i2c2 {
status = "okay";
typec_controller: typec@22 {
compatible = "awinic,aw35615"; /* 示例,实际以驱动绑定为准 */
reg = <0x22>;
interrupt-parent = <&gpioX>;
interrupts = <Y IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&usbcc_int_l>;
};
};
如果换成 HUSB311,可能变成:
&i2c2 {
status = "okay";
typec_controller: typec@4e {
compatible = "hynetek,husb311"; /* 示例,实际以驱动绑定为准 */
reg = <0x4e>;
interrupt-parent = <&gpioX>;
interrupts = <Y IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&usbcc_int_l>;
};
};
注意:
上面只是结构示意,不是可以直接复制使用的最终 DTS。实际
compatible、I2C 地址、中断触发方式必须以当前内核驱动和原理图为准。
3. Connector 配置
Type-C 口通常需要描述成 usb-c-connector。
核心字段:
| 字段 | 作用 |
|---|---|
| power-role | source / sink / dual |
| data-role | host / device / dual |
| try-power-role | DRP 时优先 source 还是 sink |
| source-pdos | Source 供电能力 |
| sink-pdos | Sink 受电能力 |
| op-sink-microwatt | Sink 典型功耗 |
| altmodes | DP Alt Mode |
| ports | graph 连接到 USB / DP / PHY / mux |
示意:
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "dual";
data-role = "dual";
try-power-role = "sink";
source-pdos = <...>;
sink-pdos = <...>;
op-sink-microwatt = <...>;
altmodes {
displayport {
svid = /bits/ 16 <0xff01>;
vdo = <...>;
};
};
ports {
/* 连接到 usbdp_phy / dp / usb role switch */
};
};
十五、AW35615 / HUSB311 与 Linux Type-C 框架
在 Linux 中,推荐把 Type-C 逻辑拆成几层:
TCPC 驱动:
AW35615 / HUSB311
TCPM:
Type-C Port Manager
Type-C Class:
向系统抽象 port、partner、cable、altmode
USB Role Switch:
控制 Host / Device
Type-C Mux / Orientation Switch:
控制 USB / DP / USB+DP / 正反插
Rockchip USBDP PHY:
真正执行 Lane 复用
逻辑图如下:
如果某一层没接好,就会出现“单项功能正常,整体功能不完整”的情况。
例如:
| 现象 | 可能原因 |
|---|---|
| I2C 能扫到,但插拔没反应 | INT GPIO / IRQ 配置错误 |
| USB2 下载正常,但 DP 不亮 | Alt Mode / USBDP PHY / AUX 未接通 |
| DP 正插正常,反插不正常 | orientation-switch / lane mapping 问题 |
| USB Host 正常,Device 不正常 | role-switch / VBUSDET 问题 |
| PD 协商成功但没有显示 | DP controller / AUX / link training 问题 |
| HUSB311 能工作,换 AW35615 不工作 | 驱动 / 寄存器 / compatible 不匹配 |
十六、RK3576 平台上的配置重点
1. 必须配置 Type-C 控制器
要先保证 AW35615 / HUSB311 能工作:
I2C probe 成功
INT 中断正常
CC attach/detach 正常
orientation 正常
PD 状态正常
2. 必须配置 USB2 下载链路
USB2 下载 / ADB 依赖:
USB2_OTG0_DP
USB2_OTG0_DM
USB2_OTG0_VBUSDET
如果 USB2 下载不正常,优先查:
- D+ / D- 是否接对;
- VBUSDET 是否有效;
- USB role 是否正确;
- Type-C 角色是否正确;
- BootROM / loader 对该口的要求。
3. 必须配置 USBDP PHY
DP Alt Mode 依赖 RK3576 的:
USB3 OTG0 / DP1.4 Alt / USBDP PHY
它负责:
- USB3 / DP Lane 复用;
- 2-lane / 4-lane 模式;
- 正反插方向映射;
- SBU / AUX 映射;
- Type-C mux 状态响应。
4. 必须配置 DP Controller
AW35615 / HUSB311 协商成功后,只代表:
系统知道可以进入 DP Alt Mode
并不代表:
DP 控制器已经输出视频
还要检查:
- DRM 是否识别 connector;
- DP AUX 是否读到 EDID;
- Link Training 是否成功;
- 显示 timing 是否正确;
- lane rate / lane count 是否正确。
十七、AW35615 与 HUSB311 的 DTS 迁移注意点
如果一块板支持 AW35615 / HUSB311 二选一,DTS 和驱动需要非常小心。
1. 不要只改 compatible
很多时候不只是:
compatible = "awinic,aw35615";
和:
compatible = "hynetek,husb311";
的区别。
还可能包括:
| 项目 | 可能差异 |
|---|---|
| I2C 地址 | 可能不同 |
| INT 触发方式 | level low / falling edge |
| GPIO reset | 某些版本可能需要 |
| regulator | 供电 rail 不同 |
| vconn supply | 配置方式不同 |
| vbus supply | 配置方式不同 |
| connector 子节点 | 驱动绑定要求不同 |
| PD capability | PDO 写法不同 |
| altmode | VDO 配置不同 |
| role switch | graph endpoint 不同 |
2. 要确认是否走标准 TCPM / TCPCI
如果 HUSB311 驱动是标准 TCPC 模式,而 AW35615 是厂商私有适配方式,那么两者 DTS 差异可能比较大。
反过来,如果 AW35615 驱动也封装成标准 TCPC / TCPM 接口,那么上层 Type-C 配置可以尽量保持一致。
理想架构是:
AW35615 driver
\
→ TCPM → Type-C Class → Mux / Role / AltMode
/
HUSB311 driver
这样上层 connector、role、mux、DP Alt Mode 的配置可以复用更多。
十八、硬件 Switch 设计时的核心指点
指点一:先确认是否真的需要外部高速 MUX
如果 SoC 内部已经有:
USB3 OTG0 / DP1.4 Alt USBDP PHY
并且原理图中 USB3 / DP 高速线直接连到 Type-C 口,那么通常意味着:
SoC 内部负责高速 Lane 复用
这时 AW35615 / HUSB311 只是 CC / PD 控制器。
如果 SoC 没有内部 USBDP PHY,或者需要外部方向翻转和 mux,则可能需要外置芯片,例如:
USB3/DP Alt Mode MUX
Redriver
Retimer
Crossbar Switch
指点二:CC 控制器和高速 MUX 是两类芯片
| 类型 | 代表器件 | 作用 |
|---|---|---|
| CC / PD 控制器 | AW35615 / HUSB311 | 检测、协商、状态上报 |
| 高速 MUX | PI3USB、HD3SS、FSA、ANX 等 | 真正切高速 Lane |
| Retimer / Redriver | 高速信号增强器 | 改善 USB3 / DP 信号质量 |
| Power Switch | KTS1665 等 | 控制 VBUS 电源路径 |
不要把这几类芯片混为一谈。
指点三:正反插不是只靠 CC 芯片完成
AW35615 / HUSB311 能判断方向:
CC1 有效:一种方向
CC2 有效:另一种方向
但是它们只是把 orientation 状态告诉系统。
真正需要执行的是:
USB3 Lane 翻转
DP Lane 映射
SBU1 / SBU2 与 AUXP / AUXN 映射
这由 SoC USBDP PHY 或外部 MUX 完成。
指点四:DP 不亮时不要只查 CC 芯片
DP 不亮要分层查:
1. CC attach 是否成功
2. orientation 是否正确
3. PD 是否协商成功
4. DP Alt Mode 是否进入
5. Type-C mux state 是否切到 DP
6. USBDP PHY 是否切换成功
7. AUX / SBU 是否正常
8. EDID 是否读到
9. Link Training 是否成功
10. DRM connector 是否正常
AW35615 / HUSB311 只覆盖前 1 到 4 步的一部分。
十九、AW35615 与 HUSB311 全方位对比表
| 对比项 | AW35615 | HUSB311 / HUSB311C |
|---|---|---|
| 厂商 | 艾为电子 Awinic | 慧能泰 Hynetek |
| 类型 | USB Type-C PD Controller / PD PHY & Controller | USB Type-C PD Controller / TCPC |
| CC 检测 | 支持 | 支持 |
| Attach / Detach | 支持 | 支持 |
| Orientation | 支持 | 支持 |
| DRP | 支持 | 支持 |
| Source / Sink | 支持 | 支持 |
| PD 协议 | 依型号支持 PD3.0 / PD3.1 | HUSB311 支持 PD3.0,HUSB311C 支持 PD3.1 |
| Alt Mode | 支持 Type-C alternative interfaces | 支持 Type-C alternative interfaces |
| VCONN | 部分型号集成 VCONN switch | 支持 VCONN power control |
| VBUS 检测 | 支持 | 支持 |
| VBUS 放电 | 支持 | 依具体型号和资料确认 |
| Dead Battery | 支持 | 依具体型号确认 |
| I2C | 支持 | 支持 |
| INT | 支持 | 支持 |
| TCPM 配合 | 需看官方驱动实现 | 官方明确提到通过 I2C 与 TCPM 通信 |
| 是否直接切 USB3 / DP | 否 | 否 |
| 是否适合 RK 平台 | 官方有 RK 相关驱动资源 | 常见 TCPC 方案,可按 BSP 支持情况适配 |
| 替换风险 | 驱动、地址、封装、IO 电平需确认 | 驱动、地址、封装、IO 电平需确认 |
二十、典型调试顺序
建议按照下面顺序调试,不要一上来就调 DP 显示。
1. 确认实物焊接型号:AW35615 还是 HUSB311
2. 确认芯片供电是否正常
3. 确认 I2C 地址是否能扫到
4. 确认驱动 probe 是否成功
5. 确认 USBCC_INT_L 是否触发
6. 确认插拔 attach / detach 状态
7. 确认 CC1 / CC2 正反插识别
8. 确认 Source / Sink / DRP 角色
9. 确认 USB2 下载 / ADB
10. 确认 VBUSDET
11. 确认 VBUS source 开关
12. 确认 PD 协商
13. 确认 DP Alt Mode 协商
14. 确认 Type-C mux / orientation 状态传给 USBDP PHY
15. 确认 AUX / SBU
16. 确认 DP Link Training
17. 确认最终显示输出
二十一、常见故障定位表
| 故障现象 | 优先检查 |
|---|---|
| I2C 扫不到芯片 | 供电、I2C 地址、上拉、电平、焊接 |
| 驱动 probe 失败 | compatible、reg 地址、驱动匹配、reset / regulator |
| 插线无反应 | INT GPIO、IRQ 类型、CC 连接 |
| 只能正插,反插不行 | CC1 / CC2、orientation switch、lane mapping |
| USB2 下载失败 | USB2 DP/DM、VBUSDET、role switch |
| USB3 不通 | USBDP PHY、SuperSpeed Lane、mux state |
| DP 不亮 | PD Alt Mode、AUX/SBU、USBDP PHY、DP 控制器 |
| PD 充电异常 | PDO、Source/Sink role、VBUS、VCONN |
| AW35615 换 HUSB311 后不工作 | 驱动、I2C 地址、寄存器、DTS、INT、IO 电平 |
| HUSB311 换 AW35615 后不工作 | 同上,不能只看 pin 兼容 |
二十二、工程上如何选择 AW35615 或 HUSB311?
1. 优先看 BSP 支持
对于 RK 平台来说,最重要的不是单颗芯片参数,而是:
当前 SDK / Kernel 是否已经支持该芯片
如果 SDK 已经支持 HUSB311,而 AW35615 需要额外移植,那么 HUSB311 可能更快落地。
如果项目要求 AW35615,并且艾为提供了对应 RK 驱动包,那么 AW35615 也可以顺利集成。
2. 看 PD 版本和功率需求
| 需求 | 建议 |
|---|---|
| 只需要 PD3.0 / 100W 以内 | AW35615QNR 或 HUSB311 级别可能够用 |
| 需要 PD3.1 / EPR | 关注 AW35615HCSR / PFCR 或 HUSB311C |
| 只做普通 Type-C 检测 | 可能不需要复杂 PD3.1 |
| 需要 DP Alt Mode | 必须确认 Alt Mode 和 Type-C 框架支持 |
3. 看硬件兼容性
需要确认:
- 封装是否一致;
- pin 是否兼容;
- I2C 地址是否一致;
- INT 极性是否一致;
- VCONN / VBUS 引脚是否一致;
- IO 电平是否一致;
- 外围电阻电容是否一致;
- 默认角色是否一致。
4. 看软件维护成本
| 情况 | 风险 |
|---|---|
| 驱动已在 SDK 中 | 风险低 |
| 只有厂商 zip 驱动 | 需要适配内核版本 |
| 非标准 TCPC 实现 | 需要处理 Type-C 框架对接 |
| 没有 DP Alt Mode 示例 | DP 调试成本高 |
| 只支持充电,不支持 mux graph | USB/DP 切换可能要额外开发 |
二十三、推荐的软件架构
对于 RK3576 + Type-C DP Alt Mode,推荐目标架构如下:
AW35615 / HUSB311
↓
TCPC Driver
↓
TCPM
↓
Linux Type-C Class
↓
USB Role Switch
Type-C Orientation Switch
Type-C Mode Switch
DP Alt Mode
↓
RK3576 USBDP PHY
↓
USB3 / DP / AUX / SBU
这样做的好处是:
- Type-C 逻辑清晰;
- AW35615 / HUSB311 可替换性更好;
- USB role 切换有标准路径;
- DP Alt Mode 事件能传到 USBDP PHY;
- 正反插和 2-lane / 4-lane 模式更容易维护。
二十四、推荐的 DTS 结构思路
一个完整的 DTS 结构通常应该包含:
&i2c2
AW35615 / HUSB311 节点
connector 子节点
power-role
data-role
PDO
altmodes
ports graph
&usbdrd / &dwc3
usb-role-switch
&usbdp_phy
orientation-switch
mode-switch
DP/USB mux
&dp
DP controller
&vbus regulator / power switch
GPIO enable
示意结构:
&i2c2 {
status = "okay";
typec_controller: typec@22 {
compatible = "awinic,aw35615"; /* 示例 */
reg = <0x22>;
interrupt-parent = <&gpioX>;
interrupts = <Y IRQ_TYPE_LEVEL_LOW>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "dual";
data-role = "dual";
try-power-role = "sink";
source-pdos = <...>;
sink-pdos = <...>;
op-sink-microwatt = <...>;
altmodes {
displayport {
svid = /bits/ 16 <0xff01>;
vdo = <...>;
};
};
ports {
/* endpoint 连接到 usbdp_phy / dp / usb role switch */
};
};
};
};
如果改用 HUSB311,核心变化可能是:
compatible = "hynetek,husb311";
reg = <...>;
但实际项目中往往还需要同步调整驱动绑定、Kconfig、Makefile、寄存器初始化、PDO 配置和 graph 连接。
二十五、总结:一句话看懂 AW35615 与 HUSB311
AW35615 和 HUSB311 都是 Type-C CC / PD 控制器。
它们负责:
识别插入
判断方向
判断角色
PD 协商
DP Alt Mode 协商
通过 I2C / INT 通知系统
它们不负责:
传 USB3 数据
传 DP 视频
直接切高速 Lane
生成显示信号
控制 HDMI/eDP PHY
在 RK3576 这类平台上,完整分工应该是:
AW35615 / HUSB311:
Type-C CC / PD / Alt Mode 协商
RK3576 USBDP PHY:
USB3 / DP Lane 复用、正反插映射、AUX/SBU 映射
RK3576 USB2 PHY:
USB2 下载 / ADB
RK3576 DP Controller:
生成 DP 视频流
KTS1665 或其他 Power Switch:
控制 VBUS 电源路径
二十六、最终核心记忆
AW35615 / HUSB311 切的是 Type-C 状态,不是高速线。
CC1 / CC2 负责识别和协商;USB2 D+ / D- 负责下载和 ADB;SuperSpeed Lane 在 USB 模式下跑 USB3,在 DP Alt Mode 下可复用为 DP Main Link;SBU1 / SBU2 在 DP Alt Mode 下跑 DP AUX。
如果把 AW35615 / HUSB311 当成 DP Switch 调试,就会走偏;如果把它们当成 Type-C 协议控制器,再把 RK3576 USBDP PHY 当成真正的 Lane Switch,逻辑就会清楚很多。
📺 B站 嵌入式孙老师:博主个人介绍
📘 博主书籍-京东购买链接*:Yocto项目实战教程
📘 加博主微信,进技术交流群: jerrydev
247

被折叠的 条评论
为什么被折叠?



