基于MPPT控制的锂离子电池充电器

news/2025/3/22 17:03:34/文章来源:https://www.cnblogs.com/linkstu/p/18786829

基于MPPT的集成电路,可跟踪电源点并对电池充电,最大额定功率为1A,外形尺寸为TP4056。

当谈到独立的单电池充电器时,只有一个流行的名字进入我的脑海,那就是我们的多功能锂离子/锂po TP4056电池充电器。这是广泛使用的,有很多功能与电池保护有关。锂电池在市场上很容易获得适当的充电解决方案,但当涉及到太阳能变化时,可以在网上看到一些微控制器项目。我想创建一个独立的太阳能电池充电器模块,幸运的是,我在协和CN3165找到了一个解决方案,就像TP4056锂离子一样,充电电流可以用单个电阻在外部设置。

机载功能包括欠压锁定,自动充电,恒流充电,维护充电模式(定时器终止),充电/终止指示灯和电池温度监测。所有模式和电池充电过程详细如下。非常感谢PCBWay赞助这个项目的pcb !他们的高质量制造和快速周转使这一建设成为可能。

CN3165及其特点:

CN3165是一款完整的恒流/恒压线性充电器,适用于单电池锂离子和锂聚合物电池。该器件包含一个片上功率MOSFET,消除了外部感测电阻和阻塞二极管的需要。片上自适应电池可以根据输入电源的输出能力自动调整充电电流,因此CN3165非常适合太阳能供电系统。

热反馈调节充电电流,以限制高功率工作或高环境温度下的模具温度。调节电压内部固定在4.2V,精度为1%,也可以通过外部电阻向上调节。充电电流可以用一个电阻器在外部设置。断开输入电源后,CN3165自动进入低功耗休眠模式,电池漏电流降至小于3uA。

特点:

•适用于太阳能供电系统

•片上功率MOSFET

•不需要外部阻塞二极管或电流检测电阻

•预置4.2V调节电压,精度1%,可通过电阻器向上调节

•连续充电电流可达1A

•恒流/恒压操作

•输入电源电压被移除时自动低功耗休眠模式

•指示灯或uP接口状态指示

•C/10电荷终止

•自动充电

•电池温度传感

PCBWay是我发现的PCB制造的最佳解决方案。他们提供了一个低成本、高可靠性和万无一失的过程,从原型到全面的产品制造。快速的周转时间,广泛的材料选择,和卓越的客户支持。

线路图:

我已经阅读了数据表,它描述了添加了一些保护功能的应用电路。数据表电路如下:

在这里,我们需要一个电阻来设置电池充电电流的最大输出,一个电容在电池端子上用于电源噪声消除。还有一些led指示灯用于电池更换和完成模式。在单个电池运行时,反馈引脚直接连接到电池端,连续监测电池电压,以实现自动充电重新启动和断电。相同的充电IC可以通过用分压器馈送反馈引脚来对1个以上的电池进行最大1amp的充电。

修改后的电路:

我修改了电路,增加了一些外部保护功能。我添加了一个USB C型输入,一个TVS二极管来拒绝太阳能输出中的任何尖峰,一个正向偏置二极管来使其极性友好,可以在原理图中看到。

在第2节中,IC本身与2个电阻一起设置电流,led指示灯和IC的一些耦合电容器。

在第3节中,输出从引脚头获取,并且它还包含与TP4056相同的保护电路。所有这些都被打包成一个小的形式因素。

PCB布局:

这是我在考虑所有噪音和稳定性问题时所执行的硬件关卡设计。轨道经过足够的计算以承载最大电流,从而提供最大功率并减少热效应。两个板载状态led用于监控电池充电。并且为了保持开关部分对输入和输出的所有影响最小,PCB根据输入到输出流进行划分。我保持了与TP4056板相同的外形因素,这使得这个设计更实用,更容易作为一个独立的电池充电设备使用。输入电源采用C型USB,焊盘设计与TP4056相同。

BOM和装配注意事项:

焊接时,最佳做法是先安装IC和USB连接器。然后是小电容,电阻,然后是电感。因为IC焊盘和USB连接器很难用手焊接。如果你不想组装电路板,那么PCBWAY组装服务是最好的选择。

锂离子电池充电方式:

让我们深入了解充电过程,看看锂离子电路的变化过程中发生了什么。

充电:

涓流充电(也称为预充电)分为两个阶段:它是一种电池保护功能,只有在电池放电过量时才会启用。

如标称电压为3.7v,电池过放电(如低于2.8V),则先进行恢复充电,防止电池因电流过大而损坏。此时,软件还没有启动,是一种由硬件控制的行为。这一阶段的“涓流充电”是指电池过放电后到恢复到开机电压之前的充电过程。涓流充电电流为最大充电电流的1/10,即0.1C(以最大充电电流为1A为例,涓流充电电流为100mA)。

通常所说的涓流充电是指持续一段时间的充电过程。它是一种恒压充电,限制了充电电流的取值;当电池达到正常电压(3.7v)时,涓流变化模式关闭,恒流充电模式开启。

恒流恒压充电:

在标准充电过程中,电池以等于最大充电电流的恒定电流充电。随着电池电压的稳步上升,当电压接近设定的最大电压时,充电过程切换到恒压充电(约4.15v)。此时,充电电流逐渐减小,直至达到最大充电电流的1/10,此时充电过程结束。恒压变化模式用于保持电池健康,不会更快地退化。

电池上提到的充电电流额定值,由C额定值定义。C是表示电流相对于电池标称容量的一种方法。例如,如果电池的容量为1000mAh,则1C等于1000mA (1A)的充电电流。

充电终止:

有两种典型的充电终止方法:最小充电电流法和定时器法(或两者的结合)。最小电流法监测恒压充电阶段的充电电流,当充电电流降至0.02C ~ 0.07C时终止充电过程。第二种方法是在恒压充电阶段开始时开始计时,连续充电2小时后终止充电过程。在现代,即使手机显示100%健康,充电终止也不会停止,此时以非常小的电流继续充电,以增加电池的整体寿命。

测试和工作:

我在装配了一个最大电流限制为100mA的电源后给电路板上电,这样如果出了什么问题,也不会损坏任何东西。但是在第一次工作时,所有的连接都是正确的,但是在上电之前总是检查VCC和GND线的连续性。所以,我连接了一个3.9V的锂离子电池,最大充电电压为4.2V。设置默认充电电流。充电电流额定值应该与电池额定值相匹配,所以我总是建议使用高C额定值的电池,同时用3A充电。

太阳能充电:

简单的充电:

当电池在全电位充电时,产生的热量很少,这满足了这个IC 94%的效率。我也测试了所有的保护功能,它们都工作得很正常。始终建议检查电路板的输出电压,锂离子电池的输出电压应在4.15-4.22伏范围内。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/903535.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux文件】把/etc/passwd删除了,该怎么办?

场景: 在做渗透测试发现网站存在任意文件删除漏洞,测试删除了/etc/passwd,那么删除后该如何恢复?一、 /etc/passwd文件的作用 /etc/passwd 是 Linux 系统中存储用户账户信息的关键文件,包含用户名、UID、GID、主目录路径和默认 Shell 等。删除 /etc/passwd 仍会导致以下问题…

20244210 实验一《Python程序设计》实验报告

20244210 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级:2442 姓名: 陈可 学号:20244210 实验教师:王志强 实验日期:2024年3月18日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练习变…

Linux命令:top

Linux命令:top 简介 Linux top 是一个在 Linux 和其他类 Unix 系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。 语法 top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]参数说明:-d <秒数>:…

一次Java后端服务间歇性响应慢的问题排查记录

分享一个之前在公司内其它团队找到帮忙排查的一个后端服务连接超时问题,问题的表现是服务部署到线上后出现间歇性请求响应非常慢(大于10s),但是后端业务分析业务日志时却没有发现慢请求,另外由于服务容器`livenessProbe`也出现超时,导致容器出现间歇性重启。分享一个之前…

作业3:结对项目

这个作业属于哪个课程 软工23级这个作业要求在哪里 作业要求链接这个作业的目标 合作实现一个自动生成小学四则运算题目的命令行程序项目成员 陈日强 3123004736, 李铭恩 3123004745Github仓库链接 Math-Quiz-Generator一、PSP表格PSP2.1 阶段 任务 预估耗时(分钟) 实际耗时(…

鸿蒙NEXT开发案例:程序员计算器

【环境准备】 • 操作系统:Windows 10 • 开发工具:DevEco Studio 5.0.1 Release Build Version: 5.0.5.306 • 目标设备:华为Mate60 Pro • 开发语言:ArkTS • 框架:ArkUI • API版本:API 13 【项目背景与价值】 在程序员日常开发中,常常需要进行复杂的数学运算(如三角…

自定义异常--java进阶day08

1.自定义异常2.自定义异常的格式 看你想要定义哪种异常,对应的继承哪种异常类以我们之前写的代码举例,Exception类过于庞大,所有的异常子类都可以被它接收,这样就会导致无法精确捕获,所以我们要自定义异常我们自定义一个学生年龄异常定义了自己写的异常后,setAge里面抛出…

boolean io.swagger.v3.oas.models.media.Schema.getExampleSetFlag()

java17 <springdoc.version>2.3.0</springdoc.version> 错误信息 jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: boolean io.swagger.v3.oas.models.media.Schema.getExampleSetFlag() 确保项目中使用的 swagger-cor…

异常的两种处理方式--java进阶day08

1.异常的默认处理流程 java中,对于异常的默认处理方式是--向上抛出 之前我们说过,异常都是类,当某个程序出错后,就会自动生成该异常对象,而这个异常对象就如同一颗雷.java的异常默认处理方式--向上抛出,其中上,就是指上一级,调用该程序的那个逻辑 所以,在错误代码那一…

在centOS上更新yum资源报错:Cannot find a valid baseurl for repo: base/7/x86_64

在centOS中更新yum 的资源和新的依赖时,报:Cannot find a valid baseurl for repo: base/7/x86_64 报错内容:[root@localhost ~]# yum update 已加载插件:fastestmirror Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo…

并行计算架构和编程 | Assignment 1: Performance Analysis on a Quad-Core CPU

from pixivvAssignment 1: Performance Analysis on a Quad-Core CPU Environment SetupCPU信息 Architecture: x86_64CPU op-mode(s): 32-bit, 64-bitAddress sizes: 46 bits physical, 57 bits virtualByte Order: Little Endian C…

Contest3923 - 计科23级算法设计与分析上机作业-03

A.质数 题面思路 考虑到输入数据量较大,选择线性欧拉筛预处理 示例代码 #include<bits/stdc++.h>using namespace std;#define ll long long //#define int ll #define pii pair<int, int> #define all(x) x.begin(),x.end() #define fer(i, m, n) for(int i = m;…