0、开场
以前在公司画的板是12V/24V供电,用的是成品大功率开关电源,或者电源适配器,自己随便画的板倒是低电压的5V,但是供电方式就是留个USB接口,对于很多小型或便携的产品是不太方便啦,刚好现在需要做的项目用到了锂电池,填补知识的空白,开心,我也不知道为啥激动,反正抑郁的时候难受要死不如就现在好好享受心底自然流露的好奇和愉悦。
1、锂电池放电曲线
通常说的锂电池3.7V,指的是放电的平台电压(有点拐点的感觉),4.2V说的是充满电的时候,下图是放电曲线。
- 在4.18V到4V的区间,电池电压下降的很快;
- 在4.0V到3.71V的区间,电压下降的趋势比较缓和;
- 在3.71V再往下的区间,电压下降的趋势又变陡;
2、锂电池充电曲线
充电的方案用的是TP4054,典型电路是比较简单的,根据不同的应用需求手册上有提供更完善的电路;
下图是以时间为X轴,以电压、电流为Y轴的充电曲线。
- 在电压小于2.9V的时候,充电电流为设置的恒定电流的1/10,也就是400mA的1/10即40mA来充电;
- 当电压大于2.9V后,以400mA的恒定电流充电;
- 当电压快充到4.2V的时候,降低电流,改为恒压充电,当电流降到设置电流的1/10停止充电,电流降为0,停止充电循环;
3、设置锂电池充电电流
上面提到设置充电电流,是通过PROG引脚外接的电阻决定的,公式为:
其中IBAT指的就是你要设置的充电电流,根据电流的范围对应公式1和公式2,以IBAT=400mA为例应使用公式一,计算出Rprog=1.66K;
4、TP4054锂电池充电的3种模式检测
4.1、3种实际情况与CHRG引脚的状态
我们想要知道是否外接着5V在充电,是否已经充满,也就是3种情况:
- 压根没有外接5V,不在充电;
- 有外接的5V,正在充电中;
- 有外接的5V,已经充满了;
手册中这个图是有关充电阶段与CHRG的状态的,其中2分为三个阶段在上面也有介绍;
那么总结一下,现在可以得到如下条件,问题就是如何检测CHRG的三种状态来对应实际的三种情况就行了。
- CHRG高阻抗:没有外接5V的情况,不在充电;
- CHRG强下拉(10mA):正在充电;
- CHRG弱下拉(20uA):已经充满;
4.2、检测电路与思路
将OUT设置为高电平:
- 强下拉时检测IN是低电平,即正在充电;
将OUT设置为高阻抗:
- 弱下拉时检测IN是低电平,即已经充满;
- 高阻抗时检测IN是高电平,即没有充电;
代码上高阻抗的话,就是将GPIO设置为浮空输入;