ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

TP4056与DW01A详解:单节锂电池充放电电路原理与调试

TP4056与DW01A详解:单节锂电池充放电电路原理与调试 前阵子帮朋友修一块带保护的一体化锂电池充电板现象很怪充电能充满指示灯也正常但接上负载就是没输出。万用表量电池两端电压3.9V完全正常输出端却始终是0V。折腾了半天才反应过来这块板子上TP4056只是负责“把5V变成4.2V”的充电管理芯片真正决定电池能否对外放电的是旁边那颗不起眼的DW01A和配套的8205A双MOS管。很多人玩单节锂电池充放电电路都以为一块小板就是“充电芯片保护芯片”叠在一起实际上这两个芯片的职责边界、工作顺序、触发条件完全是两套逻辑搞不清的话碰到问题只能瞎换芯片。这篇就以TP4056和DW01A为核心把单节锂电池充放电电路从原理到PCB再到调试完整拆开讲一遍。内容适合正在做锂电池供电产品、DIY移动电源或者单纯想把一块锂电池用明白的硬件爱好者。1. TP4056和DW01A的分工关系充电管理芯片与保护芯片各管哪一段1.1 一块一体化小板上到底有几套电流回路拿到常见的TP4056DW01A一体板正面大芯片是TP4056旁边还有两颗小芯片一颗6脚的DW01A一颗8脚的8205A。很多人以为TP4056既管充电又管放电其实完全不是。这块板子上至少有三套回路充电回路、放电回路、保护采样回路。充电时5V电源从输入焊盘进来经过TP4056内部调整后从BAT引脚输出到电池正极电流经过电池内部从电池负极出来再经过8205A里负责充电的那只MOS管回到电源负极。放电时电池正极直接接到负载正极负载电流从负载负极回流经过8205A里负责放电的那只MOS管回到电池负极。保护采样则是DW01A一直在监测电池正负极之间的电压以及流过MOS管的电流在采样电阻上产生的压降。理解这个之后你就能明白为什么过放保护后输出端会是0V因为你量的是负载端的P和P-而电流路径上放电MOS管被DW01A关断了等于在负极端断开了一个开关。1.2 充电管理和电池保护是两道独立的关卡TP4056的核心任务是“按规矩把电充进去”。它管的是充电电压不能超过4.2V充电电流不能超过设定值充满之后要自动停止。但TP4056本身不会管电池有没有过放、负载有没有短路、放电电流是不是过大。DW01A和8205A组成的保护电路核心任务是“防止电池被充坏、放坏、短路烧掉”。它管的过充、过放、过流、短路这几个方向和TP4056完全独立。哪怕TP4056坏掉了只要保护电路还在电池就不会因为过充而起火反过来外部负载短路时TP4056也没能力切断放电回路保护电路会瞬间掐断输出。所以这两套系统是串联关系充电管理芯片在正极路径上工作保护芯片在负极路径上设卡。设计时要让它们在电气上协调但不能让它们互相干扰。比如TP4056采样电池电压必须绕过保护MOS的压降否则充到“假4.2V”就提前转灯。2. TP4056的恒流恒压充电原理与参数设计2.1 锂电池为什么需要4.2V恒压和1A限流单节钴酸锂/三元锂电池的标称电压是3.7V满电电压4.2V过放截止电压大约2.5V到3.0V。它最忌讳两件事电压超过4.2V继续硬充以及大电流一直往里灌导致发热失控。TP4056采用线性充电方案内部本质是一个可调线性稳压器加限流电路。充电分三个阶段涓流预充当电池电压低于2.9V时TP4056认为电池可能处于深度放电状态不敢直接用大电流用设定电流的1/10慢慢充把电压抬起来。恒流充电电池电压超过2.9V后进入恒流阶段以PROG电阻设定的电流比如1A恒定充电此时电池电压会慢慢从3.0V左右升到4.2V附近。恒压充电当电池电压逼近4.2V芯片切换到恒压模式把电压稳定在4.2V此时电流会自然下降直到降到设定电流的1/10芯片判定充满停止充电。这个三段式逻辑是所有单节锂电充电芯片的基础。TP4056的恒压精度一般在±1%以内也就是4.158V到4.242V之间都算合格所以看到量出来4.21V、4.22V不用太紧张只要不持续往上飙就行。2.2 PROG电阻、截止电流与涓流预充的关系PROG引脚是TP4056设置充电电流的引脚对地接一个电阻阻值决定了恒流阶段的电流大小。常用公式是I_BAT 1200 / R_PROG R_PROG单位ΩI_BAT单位A更准确一点PROG引脚内部被拉到约1V内部还有一个1200倍的电流镜像所以1200Ω对应1A。实际操作中可以记几个常用值R_PROG充电电流适用场景1.2kΩ1A18650电池、常规移动电源2kΩ0.6A小型软包电池、长期小电流充电4kΩ0.3A微型设备、纽扣类锂电池如果支持10kΩ0.12A调试、极低速率维护充电这个电阻选择要结合电池容量来定。一般建议充电电流不超过1C18650容量2600mAh的话1A充电是0.38C很安全如果是500mAh的小软包电池1A就达到2C极容易发热鼓包这种场景一定要调小PROG电阻。截止电流是另一个容易忽视的参数。TP4056在恒压阶段检测到电流下降到设定值的1/10以后认为充满并停止。也就是说如果你用1A充电截止电流是100mA用0.5A充电截止电流是50mA。电池越接近满电这个电流越小转灯越准确。2.3 状态指示、防倒灌和TEMP引脚这些细节TP4056有两个开漏输出引脚CHRG和STDBY。CHRG在充电时拉低STDBY在充满时拉低两个引脚都需要外接上拉电阻或LED限流电阻。如果两个灯都不亮先检查CE引脚有没有接高电平CE是使能脚低电平时芯片不工作。TEMP引脚是电池温度检测输入通常接一个10k NTC热敏电阻到地NTC贴在电池表面。一旦检测到温度过高芯片会停止充电。如果不需要这个功能TEMP应该直接接地不能悬空也不能接高电平。很多模块为了省成本直接把它接地功能上没问题但等于放弃了高温保护。TP4056内部输出结构是PMOS理论上电池电压高于输入电压时会有倒灌风险但芯片内部集成了防倒灌电路。实测中如果输入5V断开BAT引脚电压不会倒灌回VCC这点做产品可以放心。但要注意输入电压不要超过7V长期推荐5V左右输入过高的话线性压差大芯片会很烫。3. DW01A8205A保护电路过充、过放、过流的触发与恢复3.1 三个保护门限和延时到底怎么设的DW01A是单节锂电池保护芯片SOT23-6封装非常小但功能很齐全。它通过VDD和VSS两个引脚监测电池电压通过VM引脚也叫CS引脚监测负载电流的状态。过充保护当电池电压高于4.3V左右不同批次有差异典型4.25V-4.3V并持续约100msDW01A会判断为过充OC引脚输出低电平关断8205A中控制充电回路的MOS管。这时充电电流被切断防止电池继续被灌。过放保护当电池电压低于2.4V左右也有2.3V或2.5V的版本并持续约100msDW01A会判断为过放OD引脚输出低电平关断8205A中控制放电回路的MOS管。此时电池对外输出被切断只保留DW01A自身的微安级耗电避免电池被彻底放空。过流保护当VM引脚的电压超过0.15V左右并持续12msDW01A会认为放电回路电流过大同样关断放电MOS。这个0.15V是8205A导通电阻上产生的压降所以保护电流值取决于MOS管的导通电阻不是固定的。短路保护当VM引脚电压瞬间超过1V以上一般1.35VDW01A会极快地关断放电MOS反应时间在微秒级别实现短路保护。延时设计是为了防止误触发。充电器插拔瞬间、负载启动瞬间都会有短暂浪涌如果保护电路响应太快系统就没法用了。过充过放用100ms延时过流用12ms短路用微秒级这个组合是行业里经过验证的标准参数。3.2 8205A两只MOS管是怎么把回路切断的8205A内部封装了两个N沟道增强型MOSFET共漏极连接或者是共源极结构取决于具体接法本质上就是两个可以独立控制通断的开关。一个接在电池负极和充电器负极之间叫充电MOS另一个接在电池负极和负载负极之间叫放电MOS。因为MOS管内有一个寄生二极管所以单只MOS并不能双向完全关断。充电MOS的寄生二极管方向允许放电电流通过放电MOS的寄生二极管方向允许充电电流通过。这样设计有个巧妙的地方即使DW01A只关断了充电MOS负载依然可以通过放电MOS的体二极管向电池放电反过来也一样。实际工作中过充时关充电MOS放电MOS保持导通所以负载还能正常工作过放时关放电MOS但充电器接入后电流可以通过充电MOS的体二极管进入电池完成激活。这也是为什么很多保护板在过放后接上充电器电池电压会慢慢回升过了2.4V左右保护解除然后才真正进入充电状态。3.3 为什么过放保护后必须“激活”才能恢复刚接触锂电池的人总会遇到一个疑惑电池放完电后接上充电器却充不进去输出端也是0V是不是板子坏了其实不是是DW01A的过放保护把放电MOS关死了。此时电池电压在2.4V以下DW01A由电池供电进入低功耗模式。当你接上充电器因为放电MOS关闭充电电流只能通过充电MOS的体二极管流进电池电流很小但足够让电池电压慢慢上升。等VDD电压恢复到过放恢复门限以上DW01A解除过放保护OD引脚恢复高电平放电MOS重新导通充电器才开始正常大电流充电。这个过程就像设备被锁住了必须插一下充电器“激活”。在USB充电的小风扇、蓝牙音箱上特别常见因为电池没电后保护板率先动作插上充电线后需要等几秒才能开机原理就在这里。4. 从原理图到PCB一套可落地的单节锂电充放电设计4.1 关键器件选型与参数核对设计一套稳定的单节锂电充放电电路不能只靠TP4056和DW01A。按照我的习惯至少要核对以下这些器件充电芯片TP4056注意封装和散热焊盘ESOP8或DFN封装。如果充电电流长期1A必须保证底层有足够铜箔散热否则芯片会热折返电流自动下降。保护芯片DW01A选的时候看静态功耗一般在3μA以下不同批次有差异。注意工作电压范围要覆盖2.4V到4.5V。双MOS管8205A关键是导通电阻RDS(on)常见25mΩ到40mΩ。导通电阻越大大电流放电时损耗越大发热越明显。如果设备需要2A持续放电尽量选20mΩ以下的版本。充电电流设定电阻R_PROG精度1%最好温漂小的金属膜电阻。输入输出电容TP4056的VCC对地至少放1μF陶瓷电容最好10μFBAT对地也放1μF到10μF。电容要靠近引脚不然充电启动瞬间容易振荡。状态指示LED两个LED串330Ω到1kΩ限流电阻不要直接接在CHRG、STDBY引脚上不带限流。选型表格可以参考器件推荐规格注意事项TP4056ESOP8最大充电电流内部限制约1.2A1A以上需加强散热DW01ASOT23-6静态功耗3μA过放恢复电压各批次有差异8205A双NMOSRDS(on)≤30mΩ持续电流2A以内R_PROG1200Ω 1%对应1AC_IN10μF 0603 X5R耐压10V以上C_BAT10μF 0603 X5R放在BAT与GND之间4.2 典型原理图与电流路径标注完整的单节锂电充放电电路核心连接关系是5V输入正极接TP4056的VCC5V输入负极接GND同时连到P-负载负极。TP4056的BAT引脚接电池正极B。电池负极B-接8205A的第一只MOS管的漏/源极。8205A的第二只MOS管连接P-。DW01A的VDD接BVSS接B-VM接8205A的公共源极/电流采样点。DW01A的OC接充电MOS栅极OD接放电MOS栅极。画原理图时我习惯把充电回路和放电回路的电流路径用不同颜色标出来。充电路径VCC → TP4056 → BAT → B → 电池 → B- → 充电MOS → P- → 输入负极。放电路径B → 负载 → 负载- → P- → 放电MOS → B- → 电池负极。看到路径之后布局就自然有方向了。需要注意的一点是P-和B-不是直接连通的中间隔着8205A。很多人测量板子时直接把万用表红笔接P、黑笔接P-发现不通就以为板子坏了实际上P-和B-之间就是一只MOS管只有DW01A让放电MOS导通时才连通。4.3 布局布线时的散热与引线问题PCB布局是这块板子最容易翻车的地方。TP4056是线性充电芯片1A充电时典型压差5V-4.2V约0.8V功耗约0.8W虽然不算大但如果没有散热铜皮芯片温度很容易超过100℃然后触发内部热保护充电电流被强制打折。我的建议是TP4056的VCC和BAT引脚走线加宽到1mm以上芯片底部的散热焊盘一定要开窗并且用大量过孔连接到背面整块地铜。如果板子空间允许背面铺一整片GND散热效果会好很多。DW01A和8205A所在的保护区域走线也要注意。电池负极端到8205A的走线尽量短而粗否则大电流放电时会产生额外压降可能让DW01A误判过流。电流采样线VM到DW01A要单独走细线不要和主电流路径共用长走线采样的是MOS管上的真实压降不是走线上的寄生压降。另外电池连接器、负载端都建议加ESD保护和TVS尤其是便携设备经常插拔的地方静电打坏保护芯片是常见故障。5. 实板调试遇到的现象和排查链路5.1 充电电流始终上不去这个问题在自制板上太常见了。充电电流只有几十毫安或者根本没电流排查顺序很重要先量TP4056的VCC引脚电压是不是正常的5V。然后量PROG引脚对地电阻很多板子用的排阻或0603电阻虚焊一碰就断路芯片会认为PROG悬空默认涓流小电流。再把电池接上量BAT引脚电压如果电池已经接近4.2V充电电流小是正常的恒压阶段电流本来就该下降。如果这些都正常但电流还是上不去检查TEMP引脚。TEMP接地才能关闭温度检测如果TEMP悬空内部电路状态不稳定芯片可能禁止充电。还要注意输入电源本身的能力。很多USB电源标称5V/1A实际带载后电压掉到4.5VTP4056的线性降压需要输入高于电池电压至少0.3V到0.5V输入不足时电流当然上不去。5.2 电池端电压冲到4.25V还没停止这里要分情况。TP4056的恒压精度是±1%如果量到4.22V在正常范围内不需要处理。如果持续涨到4.3V以上甚至4.4V就真的有问题了。先检查万用表本身准不准换一块表或者用台式万用表对比。然后检查BAT引脚到电池正极之间有没有串东西如果串了防反接二极管二极管的压降会让反馈采样点偏移导致实际电池电压被充高。正确的做法是反馈采样点尽量靠近电池两端不要和充电主回路混在一起。还有一个容易忽略的情况电池本身内阻过大或已经老化。充电过程中TP4056采到的是芯片输出端的电压不是电池端电压如果电池正极和芯片之间走线太长太细线上压降会让芯片提前进入恒压但电池端电压还在慢慢爬。回到第一种情况在电池端并联一个万用表观察两端电压是否在4.2V附近稳定能快速定位问题。5.3 保护动作后输出端0V怎么判断是芯片还是外围负载端P和P-之间量不到电压先别急着怀疑DW01A坏了。正确的排查顺序是第一步拆下电池直接量B和B-两端电压。如果电池电压正常3.0V以上说明电池没坏。如果电压是0V那就是电池过放了先激活再说。第二步量P到B的电压理论上应该是0V直连或近似直连如果不是查TP4056和接线。第三步量P-到B-的电压。正常工作时这个压降应该是0V附近MOS导通压降很小。如果量出来有几伏甚至不导通说明放电MOS没有导通DW01A很可能处于保护状态。第四步量DW01A的OD引脚电压。OD引脚正常导通时输出高电平接近电池电压保护时输出低电平。如果OD是高电平但8205A没导通查MOS栅极和焊接如果OD为低电平那就看是过放还是过流。接上充电器等几秒看OD能不能恢复高电平。能恢复就说明芯片没事只是处于保护状态不能恢复再考虑换芯片。5.4 8205A发烫与MOS导通电阻的测量8205A发烫说明它的导通电阻太大或者流过的电流太大。首先用量表测8205A导通时源漏之间的压降正常1A电流下压降应该在30mV到50mV如果再高就说明MOS没有完全导通或者RDS(on)偏大。常见原因是DW01A的OD/OC输出驱动电压不够MOS管栅极电压太低管子处于半导通状态。DW01A输出高电平本身是电池电压经过内部电路提供的如果电池电压只有3.0V那Vgs只有3.0V对于某些需要更高栅压的MOS管来说导通不完全内阻变大发热就上来了。所以8205A必须选低Vgs(th)的型号不是随便找一个双N-MOS就能替代。替代前先看栅极阈值电压最好低于1V或者保证在2.5V下完全导通。6. 一些扩展用法和我踩过的坑6.1 把1A充电改为500mA或2A要注意什么改充电电流本质就是改PROG电阻。1A改500mA把1.2kΩ换成2.4kΩ即可这个很简单。但如果想把1A改到2A就要慎重了。TP4056的数据手册写着最大充电电流由外部电阻决定但实际上受限于封装散热长期2A发热非常严重。线性充电的功耗是输入电压−电池电压×充电电流5V输入给3.7V电池充2A功耗是2.6W这已经不是一块小板能轻松扛住的了。哪怕芯片扛得住电池端2A对很多小容量电池也是过充风险。实测下来TP4056稳定跑1A是没问题的1.5A需要加强散热和降低环境温度2A还是换个同步降压充电芯片吧比如IP2326、SW6124这类效率高还能给更大电流。6.2 什么时候不建议用TP4056这种线性充电方案TP4056结构简单、外围少、成本低但有三个明显短板第一发热。线性充电的效率最高也就80%左右压差越大效率越低。输入用12V降压到5V再充还行直接拿9V去充功耗会非常难看。第二没有充电路径管理。TP4056充电时负载如果依然接在电池上负载电流会被叠加到充电电流里导致芯片以为充电电流很大实际分给电池的电流被压缩。这种情况下充满时间会大大延长甚至转灯不准确。第三输入范围窄。它对输入电源要求基本上是固定5V不支持快充协议不支持宽的电压范围。如果产品需要边充边用、支持快充、或者需要大电流充电都应该换带路径管理的开关充电芯片别再硬磕TP4056。6.3 给DIY玩家的几个测量建议最后分享几个板级调试的小习惯。第一万用表的表笔一定要尽量短测MOS管压降和采样电压时表笔接触电阻都可能造成误判。第二调试时在输入和电池之间串一个小型电流表不要只靠充电板上的LED判断状态。第三示波器不一定用得上但至少准备一个电子负载测输出电流能力比万用表测电阻实在得多。还有一点是我自己的经验第一版PCB设计时一定要把TP4056的PROG、DW01A的OD和OC、8205A的G1和G2都引出测试点。这段经验是用好几块板子换来的手忙脚乱拿镊子去戳芯片引脚非常痛苦提前留好测试点调试效率能翻一倍。
返回列表