|
最近用USB做一个多接锂电池串联的平衡充电板,方案使用5V升压给3接电池充电,使用XL6005升压发现发热厉害,效率太低,调试了半天决定还是把QC3.0的快充协议搞清楚,使用QC3.0的电压可调方式来给2-3节锂电池串联的情况充电可以大大减轻发热量。在amobbs上搜QC3.0快充的电压调节方式没找到具体的实现方法,于是上网搜资料,查快充电源端芯片的手册研究。终于实现了基本的电压调节。放到论坛上给需要的人参考下。本来想淘宝上买个诱骗器研究下,现在终于可以调节电压了,就可以进行平衡充下一步的改版工作了。1:这个是FP6601Q快充里面的实现说明,主要是要实现以0.2V电压调整的continuous mode,这样才能去掉2-3接锂电池充电时升压或降压DCDC带来的额外功耗
网上搜了下,找到这个资料比较明白:http://bbs.mydigit.cn/read.php?tid=1748488
里面的这段话:
我的硬件电路为:
在这个电阻电容越来越贵的年代,突然发现多用二极管价格也是很便宜的^。^
以上电路实际测试产生0.6V和3.0V。
软件流程为:
MCU上来就把DP_UP_IO输出1,DP_IO OD或推挽输出0.这样D+上电压0.6V。
DM_UP_IO模式输入,DM_IO OD输出1,(推挽输出1也没问题),这样D-上为高阻
直接延时个2S,偷懒,没去判断D-是否为0了。要判断需要把DP_UP_IO设为模拟输入,再选通DP_UP_IO所在ADC通道去采集ADC电压。
设置D+:0.6V ;D-:3.3V进入continuous mode状态
DP_IO=0;
DM_IO=1;
DM_UP_IO=1;
DM_UP_IO_PP;//IO设为推挽输出状态
好了,以上完成后延时个2s,剩下就可以开始发脉冲来升高或降低电压了。这个很好记忆
D+有一个+号,说明是加电压,D-是减电压,最后测试的确如此
D+因为平时是0.6V,所以脉冲就是高电平这样的:
D-平时3.3V,脉冲就是低电平:
我选择的脉冲宽度估计是250ms,虽然程序的DELAY_MS函数是500,单是从5000实际是2秒多来看,估计是1/2的关系
以上我只是验证了手上的充电器,对于时间的最大最小范围并没有做深入的测试,大家需要使用的时候需要
1:多测试一些充电器
2:测试下临界值:延时的时间,脉冲的宽度等最大最小值,这样取一个中间范围的参数不容易出问题。
程序是直接使用HC89S003F4的DEMO程序改的。
改了后的电路图(我原来是使用2个上拉电阻接5V的,这样虽然可以产生0.6V和3V,但是无法触发QC协议,后来飞线解决)
另外HC89S003F4使用仿真器调试摸索了下,设置开芯片外部的RST脚,低电平复位,下载时选择复位RST脚,供电方式也要选择,摸索了半天才可以在外部充电器插着的时候正常下载,否者仿真器会提示无法下电,KEIL假死在那里。使用体验上比较麻烦。
ADC电压是直接使用仿真器查看的。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|