ARTICLE DETAIL

资讯详情

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

TP4056锂电池充电芯片实战:从选型到PCB调试全解析

TP4056锂电池充电芯片实战:从选型到PCB调试全解析 我一直觉得TP4056 是入门锂电池充电管理最合适的芯片之一。从最早在学校实验室做 18650 电池盒充电模块到后来在量产的小型手持设备上用这颗料中间换过好几家国产兼容型号最后还是觉得它的整体表现最“稳”。如果你也在折腾锂电池供电的项目或是想搞明白这颗芯片怎么选型、怎么把充电电路做稳定这篇内容应该能给你省下不少试错的时间。这篇文章我会按自己的实际使用习惯来写先讲选型时要关注的参数再拆解外围电路的设计然后走一遍 PCB 布局和焊接调试最后汇总我踩过的坑和排查思路。内容偏实战涉及的数据都以我实测过的结果为参考部分结论也会结合工程实践做说明方便你直接抄作业。1. 选型之前先把 TP4056 这枚芯片吃透1.1 为什么是 TP4056而不是 CN3066 或 BQ24074很多人一上来就问“TP4056 和某某芯片哪个好”其实这类单节锂电充电 IC 的底层原理都差不多线性充电、恒流恒压、涓流预充。但 TP4056 能在 DIY 圈子里流行这么久核心就三条。第一条是外围电路极简。一个 PROG 电阻设定电流两个指示灯显示状态输入输出加两颗去耦电容就能稳定工作甚至很多模块把保护板和充电、放电做到一张板子上也不过巴掌大小。对新手来说这是最友好的学习对象。第二条是采购方便、成本低。这颗料从早期的 DIP 封装的替代版本到现在的 SOP-8/EMSOP-8国产兼容型号一大堆不管是嘉立创还是淘宝几毛钱一颗批量拿更便宜。对个人项目和教学场景来说成本几乎可以忽略。第三条是充电逻辑可靠。恒流阶段电流稳定恒压阶段电压精度做到了 ±1% 左右典型值 4.2V能有效保护电池不过充。对比同价位的 CN3066TP4056 的截止电压一致性更稳定我实测过十几片空载浮充电压基本都在 4.19V 到 4.21V 之间这个精度对 18650 和聚合物电芯都够用。当然它也有明显短板输入输出之间是线性降压关系发热和充电电流成正比。同样是 1A 充电如果你用 5V 给 3.7V 电池充电芯片上要消耗大约 1.3W 功率这个热量要好好处理后面专门讲。1.2 拿到数据手册后先盯这三个关键指标很多人拿着手册不知道看什么我一般只看这几个关键点。第一是充电终止电压TP4056 典型值是 4.2V这个参数直接决定电池能不能充满。手册上给的精度是 ±1%也就是说 4.158V 到 4.242V 之间都算合格。我实测多数芯片在 4.19V 左右但也不排除个别批次偏高所以如果你做产品最好每批来料都抽测一下空载电压。第二是截止充电电流芯片会在恒压阶段电流下降到设定电流的 1/10 时判定充满。比如你设定 1A 充电那当电流降到 100mA 左右时充电过程结束。这个比例是固定的你想要更小的截止电流只能通过改小设定的充电电流来实现。第三是静态功耗TP4056 在待机模式下电源电流大约 55μA这个值看起来很小但如果你直接把芯片接在电池上长期挂机一个月也会耗掉不少电量。所以设计电池供电设备时最好在电池和充电电路之间加一个防倒灌的二极管或 MOS 开关或者干脆用带使能端的充电方案。1.3 充电电流设定PROG 电阻的计算与实测修正TP4056 的充电电流完全由 PROG 引脚对地电阻决定公式是R_PROG 1000 / I_BAT这里 R_PROG 的单位是 kΩI_BAT 是想要的充电电流单位是 A。比如想要 1A 充电电流R_PROG 就是 1kΩ想要 500mA就用 2kΩ。这里有三个实际经验要特别注意。第一个是电阻精度尽量选 1%。公式是理论值但芯片内部的参考电压和电流镜像电路对电阻精度敏感用 5% 的电阻可能导致实际电流偏离设定值 10% 以上。我遇到过用 1kΩ 的 5% 电阻实测电流只有 0.93A 的情况换成 1% 的贴片电阻后恢复到 0.99A。第二个是 PROG 引脚不能悬空。很多初学者拿芯片样品随便飞线测试PROG 引脚什么都不接结果上电后芯片完全不充电。这是因为 PROG 引脚悬空时内部电路无法建立充电电流基准芯片会认为充电电流为零直接进入待机模式。正确做法是先用电阻把这个引脚拉到地再接电池测试。第三个是充电电流越大对散热和电源的考验越大。回头我会详细讲散热这里先提醒你别一上来就追求 1A 充电如果你的输入电源不给力或者电路板面积太小建议先从 500mA 开始验证。我整理了一个常用对照表方便你直接查设定充电电流PROG 对地电阻1%精度充满截止电流约芯片功耗5V输入典型值100mA10kΩ10mA约 0.13W300mA3.3kΩ30mA约 0.39W500mA2kΩ50mA约 0.65W800mA1.2kΩ80mA约 1.04W1A1kΩ100mA约 1.3W2. 充电原理与外围电路设计核心2.1 三阶段充电在 TP4056 内部是怎么运转的锂电池充电不是一刀切往里灌电流而是分阶段控制。TP4056 内部大致按“涓流预充 - 恒流充电 - 恒压充电”三步走。拿一块 3.7V、2000mAh 的电池举例。如果电池电压低于 2.9V 左右芯片会进入涓流预充模式以设定电流的 1/10 左右慢慢给电池“热身”。这个阶段的目的是防止过放电池以大电流充电时发热失控你可以理解成先小口喝水润嗓子不能直接灌。当电池电压被抬升到 2.9V 以上后芯片进入恒流阶段也就是以你设定好的电流比如 1A持续充电。这个阶段电池电压会慢慢上升直到逼近 4.2V。电压到达 4.2V 后芯片转入恒压充电模式。它不再固定输出电流而是死死钳住 4.2V 电压让电流随电池饱和程度自然下降。当电流降到截止阈值设定电流的 1/10时充电过程结束CHRG 引脚的状态翻转STDBY 引脚输出充满信号。我在实际测试中观察到这个“截止”过程是平滑进入的不会突然跳变。如果你用示波器抓 PROG 引脚电压会发现它在恒压阶段逐渐下降那是充电电流在按指数规律衰减属于正常现象。这里有一个判断技巧如果你想让电池充得更满可以让截止电流更小比如把设定电流降低电流截止点也会同比降低但充电时间会明显变长。是否值得取决于你的项目对续航和充电时长的侧重。2.2 外围电路搭建哪些元件能省哪些省不得TP4056 的外围虽然简单但有几个元件是省不得的我按优先级来排。输入电容 IN 和 BAT 引脚对地电容是必须的。典型接法是 IN 端接 10μF 陶瓷电容BAT 端接 10μF 电容。这里有一个必须强调的细节BAT 引脚的对地电容不能太大。如果你在电池正极和地之间接了大容量电容芯片在判断充满时可能会被电容的漏电流干扰导致提前截止或无法进入恒压段。我实测在 BAT 端接 100μF 电容后满电判断电压会出现明显波动所以建议这个电容控制在 10μF 到 22μF 之间。PROG 引脚对地电阻前面说过了直接决定电流大小不建议用可调电阻代替因为可调电阻的温漂会影响电流精度。再一个是输入端的退耦电容靠近 IN 引脚放置。很多现成模块上还会加一个防反接二极管或保护 MOS但如果你只做充电部分输入端至少要有极性保护否则电源接反会直接打坏芯片。关于 CE 引脚如果你不需要使能控制可以把它接到 IN 的正极让芯片始终处于可工作状态。有的模块会把 CE 引脚悬空这样芯片默认不工作很多人不知道这一点上电发现没反应其实是 CE 引脚的问题。这个必须重点查一下。TEMP 引脚是接电池内置 NTC 的如果你用的电池没有 NTC 输出或者模块本身不打算做温度保护就把 TEMP 引脚直接接地。注意不要悬空悬空的话芯片内部温度检测逻辑会认为电池过热拒绝充电。这是我踩过的一个坑当时我飞线测试时 TEMP 悬空芯片始终不动作查了半天才发现是这个问题。2.3 指示灯与状态判断搞懂开漏输出再接线TP4056 有一红一绿两个指示灯分别对应 CHRG 和 STDBY 引脚。这两个引脚都是开漏输出意思是芯片内部只能把引脚拉低不能主动输出高电平。所以你看到的那些模块上LED 一端接 VCC另一端经过电阻接到 CHRG 或 STDBY 引脚就是这个原因。充电状态下CHRG 引脚被内部拉低红色 LED 点亮STDBY 处于高阻态绿色 LED 熄灭。充满后CHRG 转为高阻态STDBY 被拉低绿灯亮。但这里有一个细节当没有接电池时CHRG 引脚会周期性输出脉冲导致红灯闪烁或微亮这是 TP4056 用来检测电池是否接入的机制。很多新手以为芯片坏了其实不是。如果你设计的电路对指示灯状态有严格要求需要在 MCU 端读取状态时不能直接通过 LED 的亮灭判断因为开漏输出在高阻态时引脚会被外部上拉到高电平你要确认外部上拉电阻的取值不会导致 MCU 引脚误判。我一般会用 10kΩ 上拉到 VCC再从引脚直接接 MCU。3. 原理图落地PCB 布局、焊接与调试全流程3.1 PCB 布局的散热设计要点这部分要单独拿来说TP4056 最大的“坑”就在散热。芯片是线性充电输入电压 5V电池电压 3.7V 时输入输出压差约 1.3V乘以 1A 充电电流芯片上的功耗接近 1.3W。这个热量在 SOP-8 这种小封装上不是闹着玩的如果你直接把芯片焊在最小尺寸的板上温度会飞快飙升芯片内部过热后充电电流会自动下降导致实际充电速度远低于预期。我的经验是两个方向同时走。第一PCB 底层一定要铺铜并且通过过孔把芯片底部的散热焊盘EP 焊盘连到背面大铜皮上。我画板时会专门留出一个完整的 GND 区域不让走线把它切碎。第二如果空间允许尽量用 EMSOP-8 封装配合更大的散热铜皮比 SOP-8 的散热能力好不少。我实测的数据是这样的同样是 1A 充电在只有最小焊盘的小板上芯片表面温度能到 80℃ 以上优化铜皮和过孔后同等条件下温度能控制在 65℃ 左右。别小看这几度的差别温度越低充电电流越能维持在你设定的值充电时间越短。3.2 焊接到调试连起来走一遍拿到 PCB 后我习惯按“先焊电源部分再焊控制部分最后焊电池端子”的顺序操作。首要原则是 PROG 电阻先焊好因为它的位置影响后续测试的电流标定。焊接时注意两点。一是 EP 焊盘要充分吃锡焊完可以用万用表蜂鸣档确认 EP 焊盘和 GND 是导通的。二是不要为了美观把芯片引脚上的锡刮得太薄尤其是功率路径上的引脚过薄的焊点在大电流下可能产生额外压降影响充电电压精度。焊完先别急着接电池。用稳压电源给输入端加 5V先测 IN 引脚电压是否正常再测 PROG 引脚电压。正常工作时 PROG 引脚电压大概在 1V 左右这个电压是由内部基准决定的。如果你能测到 1V 左右说明芯片已经准备开始充电了。我第一次用 TP4056 调试时犯过一个低级错误直接空载测 BAT 引脚电压发现是 0V以为芯片坏了。其实这是正常现象因为没接电池时BAT 引脚相当于悬空状态没有电压采样回路。只有在 BAT 引脚对地接一个小电容或者接上真实电池才能看到输出。3.3 用真实电池做一次完整充放电循环调试时我建议不要用电源直接模拟电池最好用真实的锂电池因为电池的电压-电流特性远比电子负载复杂更能暴露问题。我通常会用一块放电到 3.5V 左右的 18650 电池做测试。接好电池后上电红色 LED 应该点亮说明进入恒流充电。然后观察电流表的读数理论上应该接近你设定的目标电流。我遇到过一种情况设定 1A实测只有 0.7A。排查后发现是输入电源线太细5V 在线上掉了 0.3V导致芯片输入电压不足充电电流上不去。换成粗短线后恢复正常。这个现象在电子负载或万用表串联到供电链路时尤其明显要留意测试工具的压降。充电接近满电时电流会逐渐下降最后红灯灭、绿灯亮整个流程完成。这时候我一般会等几分钟重新上电确认绿灯还是亮的。如果电池电压落到 4.05V 以下说明截止电压偏低需要检查 BAT 引脚的电容和电路虚焊问题。4. 常见问题与排查技巧实录4.1 把最容易踩的坑整理成一张速查表我把这些年用 TP4056 遇到的高频问题整理成一张表检查顺序是从输入到输出、从硬件到结构按这个顺序排查基本不会有遗漏。现象常见原因排查方法解决方案上电后芯片完全不工作CE 引脚悬空或拉低测 CE 引脚电压将 CE 接 IN 正极充电电流偏小PROG 电阻偏大/电源压降测输入电压测 PROG 电阻换 1% 精密电阻降低线损红灯闪烁未接电池或 BAT 接触不良测电池端电压接好电池检查端子芯片过热散热焊盘虚焊/铜皮太小测温升检查底部焊盘补锡加大铺铜始终绿灯不充电电池电压高于 4.2V 或 TEMP 异常测电池电压测 TEMP换电池将 TEMP 接地BAT 输出不稳定BAT 端电容太大检查电容值换回 10μF 或去掉电容充满判断过早恒压阶段电流下降异常观察电流曲线检查电池健康状态4.2 充电电流上不去先查功耗路径再查芯片自身如果你是严格按照手册接线的但电流还是上不去问题大概率出在输入路径上而不是芯片本身。我第一次用面包板搭建测试电路时充电电流怎么都到不了 700mA 以上换芯片也不行后来发现是面包板内部的金属簧片接触电阻太大大电流下一路压降就有 0.2V 到 0.4V。这个问题在插座转接板上尤其常见所以做带 1A 电流的测试时尽量直接焊在 PCB 上或者用粗导线连接。另外电源本身也要检查。很多 USB 充电器标称 5V 2A实际在小电流下电压是稳的但如果你用一个 5V 500mA 的充电头去带 1A 的充电电路电压会被拉低到 4.2V 甚至更低芯片肯定到不了目标电流。我的建议是测试时用稳压电源显示电压调到 5.2V 左右补偿线路压降观察实际电流是否达到设定值。4.3 指示灯亮灭逻辑和你想的不一样前面提到未接电池时红灯会闪烁或微亮这容易误导人。另外还有一些模块上的 LED 接法是反的也就是灯珠并联到芯片引脚和地之间而不是串联到 VCC 和引脚之间。遇到这种情况上电时红灯灭、绿灯亮会让你以为是充满状态实际上是因为 LED 的接法反转了。如果你用的是现成模块这一点要看模块说明如果是自己画的板子建议统一按“LED 阳极接 VCC阴极经电阻接芯片引脚”的接法这样逻辑最直观。指示灯还有一个容易忽略的点充电完成刹那和电池通过 BAT 引脚倒灌到芯片的问题。TP4056 本身没有防倒灌设计充满后如果你不拔输入电源电池电压会通过芯片内部或外部电路点滴漏电所以很多模块会在 BAT 端加一个二极管或 P-MOS 做隔离。如果你需要长期把电池挂在充电板上这个隔离电路一定要加。4.4 发热和寿命满电长期挂机的隐患很多人把 TP4056 模块直接贴在电池上充满后也不断电这样长时间浮充会加速电池老化。有个细节常被忽略TP4056 在充满后并不完全停止消耗电能静态电流约 55μA看起来不大但一年下来也会损耗电池容量的几个百分点。更严重的是如果充电输入一直保持 5V芯片始终处于待机状态局部温度会高于常温长期来看对电池不利。我的做法是在电池正极到充电电路之间加一个低压差二极管或 P-MOS 开关充满后通过管理逻辑彻底切断充电板与电池的连接。如果你只是做一个小模块至少可以做到“用完断电”别让充电板一直挂在电池上。5. 最后分享两个小经验第一PROG 引脚是可以用来做充电状态监测的。用 ADC 采集 PROG 引脚电压换算成充电电流就能在 MCU 端实时看到充电进度。换算关系是 I_BAT V_PROG / R_PROG × 1000这里的 V_PROG 约等于 1V所以电流约等于 1000 / R_PROG这算是个白嫖的电流检测方案。第二如果你要在多块电池之间切换充电建议在电池端加一个防反接的 P-MOS 电路。TP4056 没有内置反接保护电池一旦接反芯片很容易直接烧掉。我自己烧坏的芯片里至少有一半是电池接反导致的。这个教训不值当再交一遍学费。TP4056 这芯片看着简单但真正要做到“充得快、充得满、不发热、不误判”还是需要从选型到布板再到调试一点点抠细节。希望这篇文章能帮你少走一些弯路也欢迎你把自己遇到的有意思的问题拿出来交流。
返回列表