BC1.2 设备(实验性)

电池充电规范目前的修订版为 1.2,通常简称为 BC1.2。BC1.2 定义了 USB 设备汲取超过 USB 2.0 规范所规定的 0.5 A、2.5 W 限值的电流时所需遵循的限制和检测机制。

BC1.2 规范使用“充电端口”一词表示在 USB 连接上提供 VBUS 的设备,使用“便携式设备”一词表示从 USB 连接汲取电流的设备。

请注意,BC1.2 Specification 使用缩写 PD 表示便携式设备。请勿将其与同样使用缩写 PD 的 USB-C 电力传输(Power Delivery)混淆。

在许多设备上,当连接的 Type-C 对端不支持 Power Delivery 时,BC1.2 用作后备机制,用于确定 USB Type-C 端口所连接充电器的供电能力。

BC1.2 Specification 中的关键参数包括:

参数

符号

范围

允许 PD(便携式设备)从充电端口汲取的电流

IDEV_CHG

1.5 A

充电下行端口额定电流

ICDP

1.5 - 5.0 A

连接到 SDP 时的最大配置电流

ICFG_MAX

500 mA

专用充电端口额定电流

IDCP

1.5 - 5.0 A

挂起电流

ISUSP

2.5 mA

单位负载电流

IUNIT

100 mA

虽然 ICDP 和 IDCP 额定电流最高可达 5.0 A,但 BC1.2 电流受 IDEV_CHG 参数限制。因此,在 Zephyr 实现中使用便携式设备模式时,BC1.2 支持的电流上限为 1.5 A。

基本操作

BC1.2 设备驱动仅提供两个 API:bc12_set_role() 和 bc12_set_result_cb() 。

应用调用 bc12_set_role() 将 BC1.2 设备切换到断开连接、便携式设备或充电端口模式。

在断开连接状态下,BC1.2 驱动会关闭检测芯片的电源。断电操作因厂商而异。

当以下两个条件均满足时,应用调用 bc12_set_role(),并将类型设置为 BC12_PORTABLE_DEVICE:

  • 应用已将端口配置为上行端口,即 USB 设备端口。

  • 应用在 USB 连接上检测到 VBUS。

在便携式设备模式下,BC1.2 驱动会为检测芯片上电并启动充电器检测。充电器检测完成后,BC1.2 驱动会调用通过 bc12_set_result_cb() 注册的回调进行通知。默认情况下,BC1.2 驱动将电流限制为 1.5A,以符合 BC1.2 规范。

为符合 USB 2.0 规范,当驱动检测到 SDP(标准下行端口)充电对端,或 BC1.2 检测失败时,驱动会将可用电流报告为 ISUSP(2.5 mA)。当连接的 USB 主机恢复 USB 总线运行时,应用可以将汲取电流提高到 IUNIT(100 mA);当 USB 主机配置 USB 设备时,应用可以将汲取电流提高到 ICFG_MAX(500 mA)。

当 USB 端口配置为下行端口(即 USB 主机端口)时,应用使用充电端口模式。在充电端口模式下,BC1.2 驱动会为检测芯片上电,并配置 Devicetree 属性指定的充电器类型。如果驱动支持检测插拔事件,BC1.2 驱动会调用通过 bc12_set_result_cb() 注册的回调进行通知,以指示便携式设备对端的当前连接状态。

配置选项

相关配置选项:

API 参考

Battery Charging (BC1.2)
BC1.2 backed emulator APIs