基于 ATtiny85 逆向破解 Qualcomm Quick Charge 2.0/3.0 协议实战指南
项目背景
许多移动设备支持高通 Quick Charge (QC) 快充协议,可输出 5V/9V/12V 甚至 20V。本项目旨在开发一个低成本设备,利用 ATtiny85 单片机模拟 QC 协议握手,从 QC 移动电源/充电器获取 9V/12V 高压输出,为需要更高电压的 DIY 项目供电(如 12V LED 灯带、电机、继电器等)。

核心原理
QC 2.0/3.0 利用 USB D+/D- 线传输电压信号协商电压。接收端 (PD) 在 D+/D- 施加特定电压组合,充电器内部升压转换器据此调整 VBUS 输出电压。关键电压对照表(来自 CHY 数据手册):
| D+ 电压 | D- 电压 | VBUS 输出 |
|---|---|---|
| 0.6V | GND | 5V (默认) |
| 3.3V | 0.6V | 9V |
| 0.6V | 0.6V | 12V |
| 3.3V | 3.3V | 20V (需耐压更高的稳压器) |
ATtiny85 通过 4 个 GPIO 控制两组分压电阻网络 (10k/2.2k) 产生上述电压,一个按键切换档位,LED 指示当前电压档位(微亮 5V、中亮 9V、高亮 12V)。
硬件清单
- ATtiny85 ×1
- LM1117-3.3V 稳压器 ×1 (给 ATtiny85 供电,最高耐压 15V,严禁用于 20V 输出)
- USB-A 公头 ×1 (接 QC 电源)
- 10kΩ 电阻 ×2、2.21kΩ ×1、22.1kΩ ×1、0.05Ω ×10 (采样/分压)
- 按键开关 ×1、LED ×1、排针/跳线若干
- Arduino Uno ×1 (作为 ISP 烧录器)
- QC 2.0/3.0 移动电源或充电器 ×1 (必须具备短路保护,负载 ≤18W)
制作流程
- 原型板布局焊接,预留跳线帽隔离编程引脚 (MOSI/MISO/SCK/RESET/VCC/GND)。
- Arduino Uno 烧录
ArduinoISP例程变身 ISP 烧录器。 - 安装 ATtiny 核心支持 (David A. Mellis 版),烧录 Bootloader,再上传应用固件。
- 或拔下 ATtiny85 上面包板编程,完成后插回电路。
固件逻辑要点
// 关键时序:先拉高 D+ 0.6V 保持 2s+ 进入 QC 模式
// 之后按键每按一次循环:5V → 9V → 12V → 5V ...
// GPIO 切换顺序至关重要,错误顺序会导致 D+ 跌落 <0.325V 退出高压模式
void Init_QC() { /* D+ 输出 0.6V, D- 悬浮, 延时 3s */ }
void Set_9V() { /* D+ 3.3V, D- 0.6V */ }
void Set_12V() { /* D+ 0.6V, D- 0.6V */ }
void Set_5V() { /* D+ 0.6V, D- GND */ }
安全警示 ⚠️
- 必须使用带短路保护的优质 QC 电源,负载不超过 18W。
- 严禁输出 20V,LM1117 最高耐压 15V,否则烧毁稳压器和 MCU。如需 20V 必须更换耐压 >20V 的稳压方案 (如 LM317)。
- 注意输出极性(红正蓝负),避免 USB 接触不良发热降效。
- ISP 编程时必须拔除所有跳线帽隔离干扰。
- 不懂 QC 协议请勿修改代码,本设计主要针对 QC 2.0 Class A,高版本兼容性有限。
- 部分 QC 充电器/移动电源可能不兼容此破解方案。
应用场景
- 驱动 12V LED 灯带、电机、继电器
- 配合 LM317/LM2596 获取 1.25-10V 可调电压
- 9V 红外遥控、机器人小车供电、物联网设备备用电源
- 低功耗便携设备、显示器/打印机/扫描仪供电
参考资料
- CHY 系列数据手册 (Mouser)
- Wikipedia: Quick Charge
- TI 应用笔记 TIDU917
制造工艺
- 互动陀螺仪 LED 显示:NeoPixel Ring + Arduino Pro Mini
- DIY 云朵发光服装 — LED 灯带 + Arduino Nano + SparkFun 元件
- 自制简易红外避障传感器:IR LED + 光电二极管 + Arduino
- 3D 打造紧凑型 MIDI 架子鼓套件
- 在 Arduino Due 上实现语音识别与语音合成 - BitVoicer Server 方案
- Icom 对讲机外置 S 表:基于 CI-V 协议与 Arduino 实现
- RDA5807M 迷你立体声 FM 收音机:Arduino Nano + Nokia 5110 + PAM8403 功放
- IoT4Car车载遥测系统:Arduino MKR1000 + OBD-II 采集车辆数据上云分析
- 终极 DIY 智能啤酒机:从组件选型到云端监控的完整构建指南
- Stratasys Insight实战指南:FDM零件密封处理技巧
- Markforged Mark Two 助力 MIT 2016 硬件黑客马拉松加速创新
- 高通推出 5G 赋能 AI 无人机平台,驱动自主 UAV 创新