多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

TP4056锂电池充电管理芯片从原理到STM32工程实践全解析

TP4056锂电池充电管理芯片从原理到STM32工程实践全解析 1. 从一颗小芯片说起TP4056到底解决了什么问题如果你拆过充电宝、蓝牙耳机充电仓、或者自己DIY过带锂电池的小设备大概率见过一颗丝印为TP4056的SOP-8贴片芯片。它旁边通常跟着一个0805封装的电阻、两颗LED、一个微型USB口或者Type-C口再加一块薄薄的软包电芯——这就是一套最经典的锂电池充电电路。TP4056是一颗线性锂电池充电管理IC最大特点是外围极简、成本极低、单节锂电专用。它内部集成了恒流恒压充电逻辑、温度监测、电池反接保护部分版本、充电状态指示外部只需要一个编程电阻设定充电电流就能把5V输入稳定地灌进4.2V的锂电池里。对于做STM32项目、小型物联网节点、便携仪器的人来说它几乎是绕不开的入门级电源管理方案。但问题也恰恰出在这里太多人把它当成接上就能用的黑盒结果遇到充不满、红灯不变绿、芯片发烫、电池鼓包、并联充电炸管等一系列问题。这些坑我在实际项目里几乎踩了个遍。这篇内容就把TP4056从原理到工程落地完整拆一遍包括编程电阻怎么算、散热怎么处理、和STM32怎么配合做电源管理、常见故障怎么排查以及那些数据手册上不会写但实际会要命的细节。适合阅读的人群正在做STM32嵌入式项目需要加锂电池供电的开发者、DIY充电宝或便携设备的硬件爱好者、以及想搞懂锂电池充电管理底层逻辑的电子专业学生。不需要你有多深的模拟电路功底但至少要能看懂基本的电阻电容符号和万用表读数。2. 电路整体设计与方案选型思路2.1 为什么是线性充电而不是开关充电锂电池充电方案分两大流派线性充电和开关充电。TP4056属于线性方案原理上就是把输入5V和电池电压之间的压差通过内部调整管消耗掉多余的能量以热量形式散发。听起来很浪费但它有几个开关方案比不了的优势。第一是没有电感、没有开关噪声。开关充电器需要电感、续流二极管、滤波电容工作时会在几百kHz到MHz频率上产生纹波这对旁边的模拟电路、射频模块、高精度ADC是灾难。线性方案输出干净对STM32内部的12位ADC几乎无干扰。第二是外围元件数量少。TP4056的典型应用电路只需要1个编程电阻、2个指示LED及限流电阻、输入输出各1个电容总共不到10个元件。开关方案动辄要15个以上PCB面积和BOM成本都上去了。第三是静态功耗和待机表现好。充电完成后TP4056进入涓流维护状态自身消耗极低适合长期插着充电线的设备。代价也很明确效率低、发热大。当电池电压在3.7V、输入5V时压差1.3V如果充电电流是1A芯片上就要消耗1.3W的功率。SOP-8封装的热阻大约在100°C/W左右具体看PCB铺铜1.3W意味着温升可能超过100°C芯片会触发内部热调节自动降低充电电流。这就是为什么很多人发现设了1A实际只有600mA——不是芯片坏了是它在保护自己。所以选型逻辑很清楚充电电流≤500mA、对噪声敏感、成本敏感的场景选TP4056充电电流≥1A、追求效率、散热条件差的场景老老实实上开关充电IC。2.2 单节锂电的充电曲线与TP4056的对应关系要理解TP4056的工作必须先理解锂电池的充电曲线。单节三元锂电池标称3.7V满电4.2V的标准充电过程分三个阶段涓流充电Trickle Charge当电池电压低于约2.9V时电池处于深度放电状态此时不能用大电流猛充否则会损伤电池内部结构。TP4056会以设定电流的十分之一左右进行小电流预充把电压慢慢抬上来。恒流充电Constant Current, CC电池电压升到2.9V以上后进入恒流阶段以设定的电流比如1A持续充电电压稳步上升。这个阶段充进去的电量最多大约占总容量的70%到80%。恒压充电Constant Voltage, CV电池电压到达4.2V后TP4056切换为恒压模式保持4.2V不变电流开始自然衰减。当电流衰减到设定值的十分之一左右时充电结束CHRG引脚状态翻转红灯灭绿灯亮。这个三段式逻辑全部由TP4056内部的状态机自动完成用户唯一需要设定的就是恒流阶段的电流值而这个值由PROG引脚上的电阻决定。2.3 编程电阻的计算逻辑TP4056的数据手册给出了一个公式I_bat 1200 / R_prog其中I_bat单位是安培R_prog单位是欧姆。反推一下目标充电电流编程电阻R_prog标准电阻取值130mA9.23kΩ10kΩ250mA4.8kΩ4.7kΩ500mA2.4kΩ2.4kΩ800mA1.5kΩ1.5kΩ1000mA1.2kΩ1.2kΩ这里有个关键点公式里的1200是典型值实际芯片存在±10%左右的离散性。也就是说你焊1.2kΩ电阻实际电流可能在900mA到1100mA之间波动。做产品时要留余量别卡着电池的最大充电倍率设计。还有一个容易被忽略的约束充电电流不能超过电池的0.5C。比如一块1000mAh的软包电芯最大充电电流就是500mA。你设1A虽然芯片能输出但电池会发热、寿命骤减严重的会鼓包。我见过有人拿TP4056给一块300mAh的小电芯设1A充电半小时后电芯烫得能煎鸡蛋这就是典型的过流充电。2.4 和STM32系统的配合思路TP4056本身是纯模拟芯片不需要单片机控制就能工作。但在STM32项目里我们通常希望知道充电状态、电池电压甚至动态调整系统功耗。常见的配合方式有三种状态读取把TP4056的CHRG和STDBY引脚接到STM32的GPIO上配置为输入模式通过电平判断当前是充电中、充满还是故障。注意这两个引脚是开漏输出需要上拉电阻通常10kΩ到VCC。电压监测用STM32的ADC采集电池分压后的电压换算成实际电量。这里要注意分压电阻的选取阻值太大会导致ADC输入阻抗不匹配太小会持续耗电。一般用100kΩ100kΩ分压配合0.1uF滤波电容。电源路径管理如果设备需要边充边用TP4056本身不支持电源路径管理充电时负载直接挂在电池上需要外加PMOS或者专用负载开关。这个后面会详细讲。3. 核心细节解析与实操要点3.1 典型应用电路的完整拆解一套完整的TP4056充电电路包含以下部分我按信号流向逐个说明输入端5V输入USB或DC座并联一个10uF到22uF的陶瓷电容做输入滤波。这个电容不能省因为USB线缆有电感效应插拔瞬间会产生电压尖峰没有输入电容的话可能击穿芯片。我实测过省掉输入电容的板子在热插拔时损坏率明显上升。编程电阻接在PROG引脚第2脚到地之间决定充电电流。用1%精度的金属膜电阻别用碳膜碳膜温漂大夏天和冬天充电电流能差出15%。状态指示CHRG第7脚和STDBY第6脚各接一个LED到VCC中间串1kΩ限流电阻。红灯亮表示正在充电绿灯亮表示充满。有些版本还有第三个引脚TEMP接NTC热敏电阻做温度保护不用的直接接地。电池端BAT引脚第5脚接电池正极并联一个10uF电容。这个电容的作用是稳定电池端的电压波动特别是在充电切换阶段。散热焊盘SOP-8封装的底部有一个裸露的散热焊盘必须焊接到PCB的铜箔上并且铜箔面积越大越好。很多人忽略这一点导致芯片过热降流。我的经验是散热铜箔面积至少要做到1平方厘米并且打过孔连接到背面的大面积地铜。3.2 充电电流设定的实操计算假设你有一块2000mAh的三元锂电池希望用0.4C充电也就是800mA。代入公式R_prog 1200 / 0.8 1500Ω选1.5kΩ的1%电阻。但这里要考虑芯片的离散性实际电流可能在720mA到880mA之间。如果你希望更保守一点可以选1.6kΩ对应典型电流750mA最大不超过825mA对2000mAh电池来说完全安全。再算一下发热。假设电池电压3.7V输入5V充电电流800mAP_chip (5 - 3.7) × 0.8 1.04WSOP-8封装加散热焊盘在良好铺铜的情况下热阻大约60°C/W到80°C/W。取70°C/W计算温升约73°C。如果环境温度25°C芯片表面温度会到98°C左右。这个温度手摸上去很烫但还在芯片的结温限制通常150°C以内。不过长期工作在高温下会加速老化所以如果空间允许建议把电流降到500mA发热直接减半。3.3 电池反接与保护设计TP4056本身有一定的反接保护能力但不同厂家批次的芯片表现不一致。稳妥的做法是在电池端加一个保护电路。最简单的方案是串一个肖特基二极管但二极管有0.3V左右的压降会浪费效率。更好的方案是用一颗锂电池保护IC比如DW01加双MOS组成完整的过充、过放、过流保护。这里要特别提醒TP4056只负责充电管理不负责过放保护。如果你的系统直接从电池取电没有低压切断机制电池会被放到2.5V以下造成永久损伤。所以完整的锂电池系统应该是TP4056负责充电 DW01负责保护 你的负载电路。三者缺一不可。3.4 PCB布局的几条硬规矩TP4056的PCB布局有几个容易翻车的地方我按重要性排序散热优先芯片底部的散热焊盘必须连接到尽可能大的铜皮最好在背面也铺一块地铜用至少4个0.3mm的过孔连接。我见过有人把散热焊盘悬空结果1A充电时芯片烫到自动降流到300mA还以为是芯片质量问题。输入电容紧贴芯片10uF输入电容要放在VCC引脚旁边走线越短越好。如果电容离得远走线电感会让滤波效果大打折扣。电池走线要粗BAT引脚到电池连接器的走线宽度至少0.5mm1oz铜厚因为充电电流全部从这里过。走线太细会导致压降芯片检测到的电池电压偏低提前进入恒压阶段结果就是充不满。PROG电阻远离发热源编程电阻对温度敏感不要放在芯片散热焊盘旁边。我一般把它放在板子边缘离芯片至少5mm。LED限流电阻别省有人直接把LED接在CHRG引脚上结果LED电流过大烧了引脚。1kΩ是最低要求用2kΩ更稳妥亮度也够看。4. 实操过程与核心环节实现4.1 从零搭建一套TP4056充电模块我以自己最近做的一个STM32数据采集节点为例完整走一遍流程。需求是2000mAh锂电池供电充电电流500mASTM32通过GPIO读取充电状态ADC监测电池电压。第一步确定元件清单元件规格数量备注TP4056SOP-81选带散热焊盘的版本编程电阻2.4kΩ 1%1对应500mA输入电容10uF 08051X7R材质输出电容10uF 08051X7R材质LED0805红色1充电指示LED0805绿色1充满指示LED限流电阻1kΩ 1%20805封装上拉电阻10kΩ2用于CHRG和STDBY电池连接器JST-PH 2.01注意正负极第二步原理图设计要点在EDA软件里画原理图时注意几个细节。CHRG和STDBY是开漏输出所以上拉电阻要接到VCC5V不是接到电池。TEMP引脚如果不用直接接地不要悬空。BAT引脚和电池连接器之间不要串任何元件直接连。第三步PCB布局实操板子尺寸40mm×25mm双面。顶层放TP4056和所有元件底层铺完整地铜。散热焊盘下面放9个过孔3×3阵列孔径0.3mm。输入电容距离VCC引脚不超过2mm。电池走线宽度0.8mm。PROG电阻放在板子最右侧远离芯片。第四步焊接与上电测试先焊电源部分不接电池用稳压电源给5V输入测VCC引脚电压是否正常。然后测PROG引脚电压正常应该在1V左右。接着接一个100Ω假负载代替电池测充电电流。如果电流和计算值偏差超过15%检查PROG电阻是否焊错。第五步接入真实电池用一块放完电的2000mAh电池电压约3.0V接入电路。红灯亮用万用表串联测充电电流应该在480mA到520mA之间。充电过程中用手背轻触芯片表面温热但不烫手约50°C到60°C属于正常。大约4小时后绿灯亮测电池电压应该在4.15V到4.20V之间。第六步STM32端代码实现STM32的GPIO配置为输入模式开启内部上拉或者用外部上拉。ADC配置为12位精度采样时间设为最长比如239.5个周期因为分压电阻阻值大需要长的采样时间让采样电容充分充电。// GPIO初始化 void Charge_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct {0}; __HAL_RCC_GPIOB_CLK_ENABLE(); // PB0接CHRGPB1接STDBY GPIO_InitStruct.Pin GPIO_PIN_0 | GPIO_PIN_1; GPIO_InitStruct.Mode GPIO_MODE_INPUT; GPIO_InitStruct.Pull GPIO_PULLUP; HAL_GPIO_Init(GPIOB, GPIO_InitStruct); } // 读取充电状态 uint8_t Get_Charge_State(void) { uint8_t chrg HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0); uint8_t stdby HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1); if (chrg 0 stdby 1) return 1; // 充电中 if (chrg 1 stdby 0) return 2; // 已充满 if (chrg 1 stdby 1) return 0; // 未接电池或故障 return 3; // 异常状态 }ADC读取电池电压的代码// 电池电压采集分压电阻100k100k float Get_Battery_Voltage(void) { uint32_t adc_value 0; float voltage 0.0f; HAL_ADC_Start(hadc1); HAL_ADC_PollForConversion(hadc1, 100); adc_value HAL_ADC_GetValue(hadc1); HAL_ADC_Stop(hadc1); // 12位ADC参考电压3.3V分压比2:1 voltage (adc_value / 4095.0f) * 3.3f * 2.0f; return voltage; }这里有个细节分压电阻用100kΩ100kΩ等效输出阻抗是50kΩ。STM32的ADC要求输入阻抗不超过50kΩ刚好卡在边界上。稳妥的做法是在分压点加一个0.1uF电容或者把电阻降到47kΩ47kΩ。我用100kΩ100kΩ加0.1uF电容的方案实测精度在±30mV以内够用了。4.2 边充边用的电源路径设计TP4056的一个硬伤是充电时负载直接挂在电池上充电电流和负载电流混在一起导致两个问题。一是充电时间变长因为一部分电流被负载吃掉了二是充满判断不准因为负载电流会让电池端电流始终高于截止阈值绿灯永远不亮。解决方案是加一个电源路径管理电路。最简单的做法是用一个PMOS源极接5V输入漏极接系统负载栅极由电池电压控制。当5V存在时PMOS导通系统由5V供电电池只充电不放电当5V拔掉时PMOS截止系统由电池供电。具体电路PMOS选AO3401栅极通过一个10kΩ电阻接到5V输入同时通过一个100kΩ电阻接地。当5V存在时栅极被拉高PMOS截止注意PMOS的导通条件是栅极低于源极。等等这里逻辑要理清楚。正确的接法PMOS源极接电池正极漏极接系统负载栅极接5V输入。当5V存在时栅极电压5V源极电压约3.7V到4.2V栅源电压Vgs为正PMOS截止负载由5V通过一个肖特基二极管供电。当5V拔掉时栅极被下拉电阻拉到地Vgs为负PMOS导通负载由电池供电。这个电路我实际用过效果稳定。肖特基二极管选SS34压降0.3V左右系统电压从5V降到4.7V对3.3V的STM32来说完全够用。4.3 多节电池并联充电的处理有些项目需要更大容量会把多节电池并联。TP4056可以给并联电池组充电但要注意几点。并联电池必须是同型号、同批次、同老化程度的。新旧电池混并联内阻不同充电时电流分配不均旧电池可能过充。我见过有人把一块新电池和一块旧电池并联用TP4056充电结果旧电池鼓包了。充电电流要按总容量重新计算。两节2000mAh并联总容量4000mAh0.5C就是2A。但TP4056最大只能输出1A左右受限于封装散热所以要么降低充电倍率到0.25C要么换更大电流的充电方案。并联电池的连线要等长等粗确保每节电池的线路阻抗一致。最好用星型连接从充电板出来先到一个汇流点再从汇流点分别接每节电池。4.4 充电截止电压的微调标准TP4056的恒压值是4.2V±1.5%也就是4.137V到4.263V之间。有些批次可能偏低导致电池只能充到4.1V左右用户感觉充不满。如果你需要精确控制截止电压可以选TP4056的变种型号比如TP4056-4.35V用于高压锂电或者通过外部电路微调。但我不建议普通用户去改截止电压。4.2V是锂电池的安全上限调高了有风险调低了容量损失。如果你发现电池只能充到4.0V就转绿灯先检查是不是电池老化内阻变大或者充电线压降太大导致芯片检测到的电压偏高。用万用表直接测电池两端电压如果确实是4.0V那可能是芯片批次问题换一颗试试。5. 常见问题与排查技巧实录5.1 红灯不变绿一直充电这是最高频的问题。可能原因有五个按概率排序电池内阻过大老化电池内阻可能从50mΩ升到200mΩ以上充电时电池端电压被内阻抬高了芯片检测到4.2V就转恒压但实际电池内部还没充满。表现就是绿灯亮了但电池一用就没电。解决办法是换电池。充电线压降太大劣质USB线线阻可能超过1Ω500mA电流下压降0.5V芯片输入只有4.5V充电能力不足。换一根粗线试试。PROG电阻虚焊编程电阻开路时TP4056会进入默认小电流模式约130mA充电极慢看起来像不变绿。用万用表测PROG引脚对地电阻应该是设定值。芯片散热不良芯片过热触发降流充电时间大幅延长。摸一下芯片温度如果烫手超过80°C检查散热焊盘是否焊好。电池电压过低如果电池被放到2.5V以下TP4056会先涓流充电这个阶段可能持续很久。耐心等或者先用稳压电源把电池抬到3V以上再充。5.2 芯片发烫严重TP4056发烫是正常的但烫到不能摸就不正常了。正常工作时芯片表面温度应该在50°C到70°C之间。如果超过80°C检查以下几点输入电压是不是太高有些人用9V或12V输入压差太大芯片功耗剧增。TP4056的输入范围是4V到8V推荐5V。充电电流是不是设太大了重新计算PROG电阻确保电流在合理范围。散热焊盘有没有焊用热风枪吹一下确保焊盘和PCB铜箔充分连接。PCB铜箔面积够不够至少1平方厘米越大越好。5.3 电池充到4.0V就显示充满这个问题在热词里也出现了说明很常见。原因通常是电池端到芯片BAT引脚的走线压降。充电电流500mA走线电阻0.2Ω压降就是0.1V。芯片检测到4.2V时电池实际只有4.1V。如果走线电阻0.4Ω电池就只有4.0V。解决办法加粗BAT走线缩短走线长度或者在BAT引脚和电池之间加一个开尔文连接点让芯片的电压检测走单独的细线不经过大电流路径。5.4 常见问题速查表现象可能原因排查方法解决措施红灯不亮输入无5V测VCC引脚电压检查USB线、接口红灯不亮芯片损坏测PROG引脚电压更换芯片绿灯不亮电池未接测BAT引脚电压接好电池绿灯不亮电池老化测电池内阻更换电池芯片发烫散热不良摸芯片温度补焊散热焊盘芯片发烫电流过大测充电电流增大PROG电阻充不满走线压降测电池端电压加粗走线充不满芯片离散换芯片对比更换芯片充电极慢PROG虚焊测PROG电阻重新焊接充电极慢输入压降测VCC电压换粗线5.5 几个数据手册不会告诉你的经验经验一TP4056的CHRG和STDBY引脚在未接电池时都是高电平接上电池但未充电时也是高电平。只有真正在充电时CHRG才拉低。所以STM32判断是否接电池不能只看这两个引脚要结合ADC电压判断。经验二TP4056在充电完成后如果电池电压掉到4.05V左右会自动重新启动充电。这个叫再充电阈值是正常行为。如果你发现绿灯亮了一会儿又变红灯不是故障是电池自放电导致的正常补电。经验三TP4056的TEMP引脚如果接NTC热敏电阻可以做过温保护。但NTC的选型有讲究要用10kΩ B值3435的接在TEMP和GND之间同时TEMP和VCC之间要接一个10kΩ电阻分压。不接的话直接接地不要悬空悬空会导致芯片进入保护状态不充电。经验四如果你用Type-C接口注意CC引脚要各接一个5.1kΩ下拉电阻到地否则某些充电器不输出5V。这个坑我踩过板子焊好插上没反应查了半天才发现是CC没处理。经验五TP4056的输入和输出电容要用X7R或X5R陶瓷电容不要用Y5V。Y5V的容量随电压变化极大标称10uF在5V下可能只剩3uF滤波效果大打折扣。6. 和STM32深度配合的进阶玩法6.1 用STM32做智能充电管理TP4056本身是傻瓜式充电但配合STM32可以做出更智能的行为。比如动态调整充电电流虽然TP4056的PROG电阻是硬件设定的但你可以用STM32控制一个数字电位器或者模拟开关切换不同的PROG电阻实现充电电流的分档调节。比如电池温度低时用小电流温度正常时用大电流。充电时间统计STM32记录每次充电的起始和结束时间通过RTC打时间戳存到Flash里。这样可以分析电池健康度充电时间明显变长说明电池老化了。温度监控在电池附近放一个NTCSTM32的ADC采集温度超过45°C就通过GPIO控制一个MOS切断充电。虽然TP4056自带TEMP功能但用STM32做可以更灵活比如在OLED上显示温度曲线。6.2 低功耗设计中的电源管理STM32项目用锂电池供电时功耗管理是核心。TP4056在充电时消耗的电流很小约1mA但在待机时如果STM32没有进入低功耗模式电池很快就会被耗光。我的做法是STM32平时进入Stop模式RTC定时唤醒比如每10秒采集一次电池电压和充电状态然后继续睡。Stop模式下STM32的电流可以降到几微安2000mAh电池可以撑好几个月。唤醒后的代码逻辑void RTC_Wakeup_Handler(void) { // 清除唤醒标志 HAL_RTCEx_DeactivateWakeUpTimer(hrtc); // 采集电池电压 float vbat Get_Battery_Voltage(); // 采集充电状态 uint8_t state Get_Charge_State(); // 如果电压低于3.3V进入低电量报警 if (vbat 3.3f) { Low_Battery_Alert(); } // 处理完继续睡 Enter_Stop_Mode(); }这里要注意Stop模式下ADC和GPIO的状态要保持唤醒后要重新初始化ADC。另外分压电阻在Stop模式下会持续耗电100kΩ100kΩ的分压电阻在4.2V下消耗约21uA对低功耗应用来说偏大。可以改用1MΩ1MΩ消耗降到2.1uA但ADC采样时间要相应加长。6.3 充电状态的上报与显示如果你的STM32项目带显示屏OLED或LCD可以把充电状态做得更直观。比如充电中显示电池图标闪烁旁边显示CHARGING充满电池图标满格显示FULL未充电显示当前电压和估算电量百分比电量估算用简单的电压映射就行不需要复杂的库仑计。三元锂电池的电压和电量对应关系大致是电池电压估算电量4.20V100%4.10V90%4.00V75%3.90V60%3.80V40%3.70V25%3.60V10%3.50V5%3.30V0%这个表是经验值不同电池略有差异。注意锂电池的放电曲线中间有一段很平坦3.7V到3.9V电压变化很小但电量变化很大所以单纯靠电压估算电量在中间段误差较大。要求高的话还是上库仑计芯片。6.4 充电电路的仿真验证在打板之前可以用LTspice或者Multisim做一下仿真。TP4056的官方模型不一定好找但可以用行为模型替代用一个受控电流源模拟恒流阶段一个受控电压源模拟恒压阶段再加上电池的等效电路模型一个理想电压源串一个内阻再并一个电容。仿真主要验证两点一是充电电流是否在预期范围二是芯片功耗是否超过封装限制。我一般会扫一遍电池电压从3.0V到4.2V看芯片功耗曲线找出最大功耗点。对于500mA充电、5V输入的情况最大功耗出现在电池电压最低时约(5-3.0)×0.51.0W。确认散热设计能扛住这个功耗。仿真的好处是可以在几分钟内试完不同参数不用反复焊板子。但要注意仿真模型和实际芯片有差异最终还是要以实测为准。7. 一些实际项目中的体会我做过的STM32项目里TP4056几乎是标配。从最早的蓝牙温湿度计到后来的LoRa环境监测节点再到带OLED显示的便携数据记录仪电源部分都是TP4056加锂电池的组合。踩过的坑多了慢慢也总结出一些自己的习惯。比如我现在画板子TP4056的散热焊盘下面一定会放9个过孔不管充电电流设多少。因为过孔不花钱但散热不好导致的降流问题会浪费很多调试时间。再比如PROG电阻我现在都用1%精度的0805金属膜虽然比碳膜贵几分钱但省去了温度漂移带来的不确定性。还有一点如果你做的是要过认证的产品TP4056可能不是最佳选择因为它的截止电压精度和温度保护功能相对简单。但对于DIY、毕设、小批量产品来说它的性价比和易用性很难被替代。最后分享一个判断TP4056是否正常工作的快速方法上电后先不接电池测CHRG引脚应该是高电平约5VSTDBY也是高电平。接上放完电的电池CHRG应该立刻变低约0.3VSTDBY保持高。如果CHRG不变低要么是电池没接好要么是芯片坏了。这个方法我用了很多次比看LED还快因为LED有时候限流电阻焊错会误导判断。
返回列表