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() 注册的回调进行通知,以指示便携式设备对端的当前连接状态。
配置选项
相关配置选项: