用小规模器件实现QC2.0从机握手协议欺骗

这几天试了一下从QC2.0的移动电源上获得9V和12V的输出。
常规做法似乎是用单片机来做握手协议。这次电路里我不想专门为这个功能烧写一段程序了,所以用几个小规模器件实现了握手。

Quick Charge 2.0 握手协议

网上能搜到的QC2.0握手协议大概是这样:
0. 供电方短接D+和D-;
1. 受电方插入后,在D+输出0.6V;
2. 供电方检测到这个电压后,把D-与D+断开,并将D-下拉至0V;
3. 受电方检测到D-下降后,按需要的电源电压在D+和D-上输出:

电压 D+ D-
5V 0.6V 0V
9V 3.3V 0.6V
12V 0.6V 0.6V
20V 3.3V 3.3V

4. 供电方给出对应电压。

因此如果要输出9V,受电方需要以下操作:

状态 D+ D- 行为
0 悬空 悬空 初始状态,之后主动进入状态1
1 0.6V 输入检测 等待D-检测到下降至0.325V以下,进入状态2
2 3.3V 0.6V 已进入QC模式

具体实现

首先给D+和D-分别接个模拟开关吧。

用小规模器件实现QC2.0从机握手协议欺骗_第1张图片

上面状态机就变成了

S0 S1 D+ D- 行为
0 0 悬空 悬空 初始状态,之后主动将S1置1
0 1 0.6V 输入检测 等待D-检测到下降至0.325V以下,之后将S0置1
1 1 3.3V 0.6V 已进入QC模式

 
S1的行为可以理解为状态机复位,可用电源的Power Good信号来实现。

用小规模器件实现QC2.0从机握手协议欺骗_第2张图片

注意这里SOT-23-5的稳压器的4号脚是Power Good信号,与常见的稳压器不同。如果用一般稳压器,输出脚再加个RC延时或IMP809什么的效果应该差不多。
另外由于QC开启后,VBUS可能是9V或12V,稳压器的输入应该能够承受这个电压。
稳压器的3号脚(EN)将用来复位整个状态机。

检测D-的下降可以用一个比较器来做。由于进入QC模式后D-的电压会被重新设高,这里可用个触发器来锁住S0的值。触发器的复位就是S1,即Power Good信号。

用小规模器件实现QC2.0从机握手协议欺骗_第3张图片

C2和C5的作用都是延时。小规模器件做出来的电路速度太快,供电方那边的芯片有可能反应不过来。

最后把0.6V和比较器用的0.325V做出来:

用小规模器件实现QC2.0从机握手协议欺骗_第4张图片

电路就完成了。总共使用的芯片有:

  • MIC5206-3.3,稳压器
  • 74HC4052,模拟开关
  • LMV331,比较器
  • 74LVC1G175,D触发器

每个应该都是几毛钱的样子。

测试

测试使用QC2.0输出的移动电源。上电或复位后,经过1秒钟左右的握手过程,移动电源能够输出9V:

用小规模器件实现QC2.0从机握手协议欺骗_第5张图片

加上一点负载之后:

用小规模器件实现QC2.0从机握手协议欺骗_第6张图片

这里两张图中D-电压不一样是因为我改过分压电阻。0.42V对应的是上面原理图中的数值。可以看到移动电源对D-的下拉把电压搞下来了一点。

基本实现了我想要的功能,同时用的都是很常规的器件,也不需要烧程序。

后续

如果省略掉状态0,则可以进一步省去D触发器:

用小规模器件实现QC2.0从机握手协议欺骗_第7张图片

用小规模器件实现QC2.0从机握手协议欺骗_第8张图片

你可能感兴趣的:(自己玩,电源,QC2-0)