这几天试了一下从QC2.0的移动电源上获得9V和12V的输出。
常规做法似乎是用单片机来做握手協议这次电路里我不想专门为这个功能烧写一段程序了,所以用几个小规模器件实现了握手
网上能搜到的QC2.0握手协议大概是这樣:
1. 受电方插入后,在D+输出0.6V;
2. 供电方检测到这个电压后把D-与D+断开,并将D-下拉至0V;
3. 受电方检测到D-下降后按需要的电源电压在D+和D-上输出:
4. 供电方给出对应电压。
因此如果要输出9V受电方需要以下操作:
0 | 初始状态,之后主动进入状态1 |
等待D-检测到下降至0.325V以下进入状态2 | |
艏先给D+和D-分别接个模拟开关吧。
0 | 0 | 初始状态之后主动将S1置1 |
0 | 等待D-检测到下降至0.325V以下,之后将S0置1 | |
S1的行为可以理解为状态机复位可用电源的Power Good信號来实现。
注意这里SOT-23-5的稳压器的4号脚是Power Good信号与常见的稳压器不同。如果用一般稳压器输出脚再加个RC延时或IMP809什么的效果应该差不多。
另外由于QC开启后VBUS可能是9V或12V,稳压器的输入应该能够承受这个电压
稳压器的3号脚(EN)将用来复位整个状态机。
检测D-的下降可以用一个比较器来做由于进入QC模式后D-的电压会被重新设高,这里可用个触发器来锁住S0的值触发器的复位就是S1,即Power Good信号
C2和C5的作用都是延时。小规模器件做出来的电路速度太快供电方那边的芯片有可能反应不过来。
最后把0.6V和比较器用的0.325V做出来:
电路就完成了总共使用的芯片有:
每個应该都是几毛钱的样子。
测试使用QC2.0输出的移动电源上电或复位后,经过1秒钟左右的握手过程移动电源能够输出9V:
这里两张图中D-電压不一样是因为我改过分压电阻。0.42V对应的是上面原理图中的数值可以看到移动电源对D-的下拉把电压搞下来了一点。
基本实现了我想要嘚功能同时用的都是很常规的器件,也不需要烧程序
如果省略掉状态0,则可以进一步省去D触发器: