许多 USB 供电的消费电子设备都内置了Qualcomm QC (快速充电)解决方案,可在不同电压下快速充电,而不是通常的 5.0 V。这使得有机会在需要更多功率或更高电压(如 9/12 V)的项目中使用与 QC 兼容的移动电源。
该项目的目的是开发一种可以破解 QC 协议的设备,并允许爱好者、开发人员、工程师使用他们的移动电源为他们的下一个耗电项目提供更多电压/功率。以此从任何与 QC 兼容的充电器/移动电源中获取 5 V和 9、12 V(最大 18 W)的电压,为耗电项目供电。
上图显示了 QC 2.0 兼容电源的 5、9、12 V输出,为 10 欧姆 5 瓦电阻器供电。
开发 Hack 设备
整个设备有两个有源元件——LM1117 3.3V稳压器和ATtiny85 MCU来控制。所有其他部件是电阻器、按钮开关、连接器、跳线、接头、端子、原型板等。
为了构建设备,首先将组件放置在整齐的布局中,然后进行焊接。一些 0 欧姆短链路用于互连不同的部分。
有跳线来禁用板载电路和启用编程。因为,编程线(SPI - MOSI、MISO、SCK)在设备操作期间也充当 GPIO。
使用 ISP 对 ATtiny85 进行编程
在对 ATtiny85 进行编程之前,将其从 IC Base 中取出并放在面包板上。要对 ATtiny85 进行编程,通过从文件 》 示例 》 ArduinoISP草图上传“ArduinoISP”,将 Arduino UNO 板转换为 ISP 编程器。该草图在Arduino IDE中可用。
编程 ATtiny85 需要以下步骤:
为 Arduino IDE安装 ATtiny 支持(感谢David A. Mellis )
使用 Arduino UNO 作为 ISP 为 ATtiny85烧录引导加载程序
使用 Arduino UNO 作为 ISP 开发和上传代码
以下电路已准备好对 ATtiny85 进行编程:
ISP = in system programmer
或者,可以通过移除其周围的所有跳线来对 ATtiny85 进行编程以保持在设备上。
设备操作
要使用该设备,首先需要将其连接到兼容 QC 的移动电源(或充电器)。默认情况下,QC 移动电源的 USB 电压为 5.0 伏。
上传代码后必须连接所有跳线,以便 MCU 可以通过 D+/- 与 QC 源进行通信。
LM1117 3.3 V 稳压器将启动并向 ATtiny85 供电。该 MCU 将开始执行代码。ATtiny85 的 4 个 I/O 引脚连接到将用作输出高电平和低电平的分压电阻器。另一个 I/O 引脚连接到将初始化为输入上拉的开关。此开关采用用户输入来更改 QC 源的电压。
现在,在详细介绍之前,重要的是要知道输出将如何变化。每种 USB(USB A、B、C、1.1、2.0、3.0+)至少有 4 条通用线/线:
VBUS (默认Vcc +5V)
D +
D -
地面
在普通充电器/移动电源中,VBUS 是固定的,因为功率传输受电流限制,500 mA、1 A、2 A 分别产生 2.5 瓦、5 瓦和 10 瓦。
但在 QC 电源设备中,有一个内部升压转换器,可以根据受电设备 (PD) 的要求提升电压!!!
QC 2.0(也称为 3.0)利用 USB 的 D+ 和 D- 与 PD 通信。PD 在 D+ 和 D- 上发送电压信号,QC 充电器将通过改变 VBUS 电压相应地供电。根据这个CHY 数据表,这里有一个表格,解释了来自 PD 的 D+/D- 上的什么信号对将使 QC 提供什么电压输出:
当 D+ 和 D- 上的电压与该表第 4 行的值相同并保持至少 1.25 秒时,QC 2.0 支持启动。如果 D+ 变为 0.0 伏(实际上低于 0.325 伏),QC 支持将停止,输出将为 5.0 伏。通过根据该表设置电压,可以改变 VBUS 上的输出。
在这里,ATtiny85 的 4 路输出连接到 2 个分压器网络,该网络由两个 10k 和两个 2.2k 电阻器组成,用于为 D+/D- 线生成这些电压信号。
例如,要在 D+ 上产生 3.3 V 电压,连接到两个 ATtiny85 输出引脚 PB3 和 PB4 的顶部和底部电阻器都将通过代码设置为高电平。
同样,要在 D- 上产生 0.6 V,连接到其他两个 ATtiny85 输出引脚(PB1 和 PB3)的顶部和底部电阻器将分别设为高电平和低电平。
这样 QC 2.0 充电器/移动电源接收电压变化请求并相应地变化。Push Switch 配置为输入 PULLUP,当未按下时,MCU 将其读取为高电平,并且代码执行保持在 while 循环中,防止设置电压发生任何变化。当用户按下 Push Switch 时,while 循环断开并设置下一个电压。再一次,代码执行进入下一个 while 循环以保持当前 VBUS 电压。
有一个 LED 可以发出昏暗 (5V)、微弱 (9V) 和明亮 (12V) 的光,为用户提供输出电压的可视化表示。
可能使用的应用
驱动 12V LED 灯条
驱动 12V 继电器、电机等
使用 LM317 或 LM2596 获得 1.25 至 10 伏之间的任何电压
9V红外遥控驱动
机器人汽车电源
笔记本电脑充电 20V
任何高达 18 瓦的系统,例如用于 IoT 应用的 WiFI、LTE、S2E 设备
远程系统的备用电源
大多数 LCD、LED 显示器、打印机、扫描仪
低功耗便携式电脑
支持其他 QC 类
由于 QC 2.0 Class B、QC 3.0 和 QC 4.0 向后兼容 QC 2.0 Class A,因此该设备可能适用于所有最新的充电器和移动电源。但电压选项将是 5.0、9.0 和 12.0 伏。如果需要其他输出电压,请阅读CHY 100、101、103 数据表并相应地修改代码。
警告!
必须使用具有短路保护的高质量QC移动电源或充电器,外部负载不得超过18瓦。这可以通过检查负载设备上的额定功率标签来确保。
必须避免输出 20 伏,因为 1117 3v3 稳压器可以处理最大 15 伏,这应该从MCU 代码中避免,方法是永远不允许 D+ 和 D- 线同时具有 3.3 伏。
如果需要20 伏输出(受QC 2.0 B 类和 QC 3.0、QC 4.0支持),则必须使用能够处理超过 20 伏的电压调节器(LM317 配置为 3.3 V)。否则Regulator 和 MCU 都将被销毁!!!!
注意输出电压的极性, +ve 用红色表示,-ve用输出端子旁边的蓝色细线表示。
必须避免USB公母耦合处的松散连接,否则会因接触电阻而产生热量并降低电源效率。
在 ISP 编程期间,必须移除所有跳线以将 MOSI、MISO、SCK、VCC、GND、RESET 引脚与电路板上的其余电路隔离,以避免干扰编程。
在没有清楚了解QC充电协议的情况下不得进行代码修改,此设计主要用于QC 2.0(A类)电源,但可部分用于更高的QC标准
Hack可能不适用于某些QC充电器/移动电源
GPIO 切换必须以正确的顺序完成,以避免终止高压模式
注意:如果以上几点没有实现,建议不要复制此项目,否则可能会发生火灾危险或设备丢失的风险!
-
usb
+关注
关注
60文章
7947浏览量
264734 -
快速充电
+关注
关注
13文章
279浏览量
50384 -
移动电源
+关注
关注
48文章
1380浏览量
75580
发布评论请先 登录
相关推荐
评论