毕业设计基于MAX1898的智能充电器设计.docx
《毕业设计基于MAX1898的智能充电器设计.docx》由会员分享,可在线阅读,更多相关《毕业设计基于MAX1898的智能充电器设计.docx(16页珍藏版)》请在冰点文库上搜索。
毕业设计基于MAX1898的智能充电器设计
基于MAX1898的智能充电器设计
在人们日常工作和生活中,充电器的使用越来越广泛。
从随身听到数码相机,从手机到笔记本电脑,几乎所有用到电池的电器设备都需要用到充电器。
充电器为人们的外出旅行和出差办公提供了极大的方便。
单片机在电池充电器领域也有着广泛的应用,利用它的处理控制能力可以实现充电器的智能化。
充电器各类繁多,但从严格意义上讲,只有单片机参与处理和控制的充电器才能称为智能充电器。
1实例说明
随着手机在世界范围内的普及使用,手机电池充电器的使用也越来越广泛。
本章将通过一个典型实例介绍51单片机在实现手机电池充电器方面的应用。
实例所实现的充电器是一种智能充电器,它在单片机的控制下,具有预充、充电保护、自动断电和充电完成报警提示功能。
实例的功能模块如下。
●单片机模块:
实现充电器的智能化控制,比如自动断电、充电完成报警提示等。
●充电过程控制模块:
采用专用的电池充电芯片实现对充电过程的控制。
●充电电压提供模块:
采用电压转换芯片将外部+12V电压转换为需要的+5V电压,
该电压在送给充电控制模块之前还需经过一个光耦模块。
●C51程序:
单片机控制电池充电芯片实现充电过程的自动化,并根据充电的状态给
出有关的输出指示。
2设计思路分析
要实现智能化充电器,需要从下面两个方面着手。
(1)充电的实现。
它包括两部分:
一是充电过程的控制;二是需要提供基本的充电电压。
(2)智能化的实现。
在充电器电路中引入单片机的控制。
2.1为何需要实现充电器的智能化
充电器实现的方式不同会导致充电效果的不同。
由于充电器多采用大电流的快速充电法,在电池充满后如果不及时停止会使电池发烫,过度的充电会严重损害电池的寿命。
一些低成本的充电器采用电压比较法,为了防止过充,一般充电到90%就停止大电流快充,而采用小电流涓流补充充电。
手机电池的使用寿命和单次使用时间与充电过程密切相关。
锂电池是手机最为常用的一种电池,它具有较高的能量重量比、能量体积比、具有记忆效应,可重复充电多次,使用寿命较长,价格也越来越低。
锂电池对于充电器的要求比较苛刻,需要保护电路。
为了有效利用电池容量,需将锂电池充电至最大电压,但是过压充电会造成电池损坏,这就要求较高的控制精度。
另外,对于电压过低的电池需要进行预充,充电器最好带有热保护和时间保护,为电池提供附加保护。
一部好的充电器不但能在短时间内将电量充足,而且还可以对电池起到一定的维护作用,修复由于使用不当造成的记忆效应,即容量下降(电池活性衰退)现象。
设计比较科学的充电器往往采用专用充电控制芯片配合单片机控制的方法。
专用的充电芯片具备业界公认较好的-△V检测,可以检测出电池充电饱和时发出的电压变化信号,比较精确地结束充电工作,通过单片机对这些芯片的控制,可以实现充电过程的智能化,例如,在充电后增加及时关断电源、蜂鸣报警和液晶显示等功能。
充电器的智能化可以缩短充电的时间,同时能够维护电池,延长电池使用寿命。
2.2如何选择电池充电芯片
目前市场上存在大量的电池充电芯片,它们可直接用于进行充电器的设计。
在选择具体的电池充电芯片时,需要参考以下标准。
●电池类型:
不同的电池(锂电池、镍氢电池、镍镉电池等)需选择不同的充电芯片。
●电池数目:
可充电池的数目。
●电流值:
充电电流的大小决定了充电时间。
●充电方式:
是快充、慢充还是可控充电过程。
本例要实现的是手机的单节锂离子电池充电器,要求充电快速且具有优良的电池保护能力,据此选择Maxim公司的MAX1898作为电池充电芯片。
MAX1898配合外部PNP或PMOS晶体管可以组成完整的单节锂电池充电器。
MAX1898提供精确的恒流/恒压充电,电池电压调节精度为±0.75%,提高了电池性能并延长了电池使用寿命。
充电电流可由用户设定,采用内部检流,无须外部检流电阻。
MAX1898提供了充电状态的输出指示、输入电源是否与充电器的连接的输出指示和充电电流指示。
MAX1898还具有其他一些功能,包括输入关断控制、可选的充电周期重启(无须重新上电)、可选的充电终止安全定时器和过放电电池的低电流预充。
MAX1898的关键特性如下。
●简单、安全的线性充电方式。
●使用低成本的PNP或PMOS调整元件。
●输入电压:
4.5~12V。
●内置检流电阻。
●±0.75%电压精度。
●可编程充电电流。
●输入电源自动检测。
●LED充电状态指示。
●可编程安全定时器。
●检流监视输出。
●可选/可调节自动重启。
●小尺寸μMAX封装。
2.3MAX1898的充电工作原理
充电芯片MAX1898的内部电路包括输入电流调节器、电压检测器、充电电流检测器、定时器、温度检测器和主控制器。
输入电流调节器用于限制电源的总输入电流,包括系统负载电流与充电电流。
当检测到输入电流大于设定的门限电流时,通过降低充电电流从而控制输入电流。
因为系统工作时电源电流的变化范围较大,如果充电器没有输入电流检测功能,则输入电源必须能够提供最大负载电流与最大充电电流之和,这将使电源的成本增高、体积增大,而利用输入限流功能则能够降低充电器对直流电源的要求,同时也简化了输入电源的设计。
MAX1898外接限流型充电电源和P沟道场效应管,可以对单节锂电池进行安全有效的快充,其最大的特点是:
在不使用电感的情况下,仍能做到很低的功率耗散,可以实现预充电,具有过压保护和温度保护功能,最长充电时间的限制可为锂电池提供二次保护。
MAX1898的典型充电电路如图1所示。
电路具体说明如下。
(1)输入电压范围为4.5~12V。
锂电池要求的充电方式是恒流恒压方式,电源的输入需要采用恒流恒压源,一般可采用直流电源外加变压器。
图1MAX1898的典型充电电路
(2)通过外接的场效应管提供锂电池的充电接口。
(3)通过外接的电容CcT来设置充电时间tCHG。
这里的充电时间指的是快充时的最大充电时间,它和定时电容CcT的关系如下式所示。
=34.33×
式中,tCHG的单位为小时,CcT的单位为nF。
大多数情况下,快充时最大充电时间不超过3小时,因此常取CcT为100nF。
(4)在限制电流的模式下,通过外接的电阻RSET来设置最大充电电流IFSTCHG,关系如下式所示。
式中,RSET的单位为Ω,IFSTCHG的单位为nF。
当充电电源和电池在正常的工作温度范围内时,插入电池将启动一次充电过程。
平均的脉冲充电电流低于设置的快充电流的20%,或者充电时间超出片上预置的最大充电时间时,充电周期结束。
MAX1989能够自动检测充电电源,没有电源时自动关断以减少电池的漏电。
启动快充后,打开外接的P型场效应管,当检测到电池电压达到设定的门限时进入脉冲充电方式,P型场效应管打开的时间会越来越短。
充电结束时,LED指示灯将会呈现周期性的闪烁,具体的闪烁含义如表1所示。
表1MAX1898典型充电电路的LED指示状态说明
充电状态
LED指示灯
电池或充电器没有安装
灭
预充或快充
亮
充电结束
灭
充电出错
以1.5Hz频率闪烁
3硬件电路设计
硬件电路设计主要围绕充电芯片MAX1898展开,而单片机控制部分的电路较为简单。
3.1主要器件
本例的核心器件是MAX1989。
MAX1989可对所有化学类型的Li+电池进行安全充电,它具有高集成度,在小尺寸内集成了更多功能,尽可能多地覆盖了基本应用电路,只需要少数外部元件。
MAX1989为10引脚、超薄型的μMAX封装,
其引脚分布如图2所示。
其引脚功能如下。
IN(1脚):
传感输入,检测输入的电压或电
流。
(2脚):
充电状态指示脚,同时驱动LED。
图2MAX1898引脚分布图
EN/OK(3脚):
使能输入脚/输入电源“好”输出指示脚。
EN为输入脚,可以通过输入禁止芯片工作;OK为输出脚,用于指示输入电源是否与充电器连接。
ISET(4脚):
充电电流调节引脚。
通过串接一个电阻到地来设置最大充电电流。
CT(5脚):
安全充电时间设置引脚。
接一个时间电容来设置充电时间,电容为100mF时,几乎为3个小时,此引脚直接接地将禁用此功能。
RSTRT(6脚):
自动重新启动控制引脚。
当此引脚直接接地时,如果电池电压掉至基准电压阈值以下200mV,将会重新开始一轮充电周期。
此引脚通过电阻接地时,可以降低它的电压阈值。
此引脚悬空或者CT引脚接地(充电时间设置功能禁用)时,自动重新启动功能被禁用。
BATT(7脚):
电池传感输入脚,接单个Li+电池的正极。
此引脚需旁接一个大电解电容到地。
GND(8脚):
接地端。
DRV(9脚):
外部晶体管驱动器,接晶体管的基极。
CS(10脚):
电流传感输入,接晶体管的发射极。
本例的单片机芯片选用Atmel公司的AT89C52,它完全可以满足要求。
另外,由于充电器外部为+12V供电,因此需要通过电压转换芯片将+12V电压转换为+5V电压,这里选用三端电压转换芯片LM7805来完成此功能。
为了降低电源干扰,保持电路的稳定,在LM7805完成电压转换,将+5V充电电源送给MAX1898之前,先经过一次光耦模块6N137处理,通过单片机对光耦模块的控制,可以及时关断充电电源。
6N137的引脚分布如图3所示。
其引脚功能如下。
NC(1脚、4脚):
悬空。
+(2脚)、-(3脚):
发光二极管的正、负极。
GND(5脚):
接地端。
图36N137引脚分布图
OUTPUT(6脚):
输出脚。
EN(7脚):
使能脚。
为低时,无论有无输入,输出都为高。
不使用时,悬空即可。
VCC(8脚):
电源输入脚。
3.2电路原理图及说明
硬件电路由单片机电路、电压转换及光耦隔离电路、充电控制电路3部分组成。
单片机部分的电路原理图如图4所示。
图4基于MAX1898的智能充电器电路单片机部分原理图
图4中,U1为单片机AT89C52,工作在11.0592MHz时钟;U2为蜂鸣器,蜂鸣器由单片机的P2.1肛却控制发出报警声提示;单片机的P2.0脚输出控制光耦器件,在需要的时候可以及时关断充电电源:
单片机的外部中断0由充电芯片MAX1898的充电状态输出信号/CHG经过反相后触发。
图5所示的为电压转换及光耦隔离部分电路的原理图。
图5基于MAX1898的智能充电器电路电压转换及光耦隔离部分原理图
U3为输出+5V的电压转换芯片LM7805,它将12V的输入电压转换为固定的5V输出,U4为光耦隔离芯片6N137,其输入为LM7805产生的5V电压,输出为经过隔离的5V电压,U4的2脚和单片机的P2.0相连,由单片机控制适时地关闭电电源。
图6所示的为充电控制部分的电路原理图,其核心器件为充电芯片MAX1898,其充电状态输出引脚/CHG经过74LS04反相后与单片机INT0相连,触发外部中断,LED-R
为红色发光二极管,红灯表示电源接通;LED-G为绿色发光二极管,绿灯表示处于充电状态。
Q1为P沟道的场效应管,由MAX1898提供驱动。
图6中,R4为设置充电电流的电阻,阻值为2.8kΩ,设置最大充电电流为500mA;C11为设置充电时间的电容,容值为100nf设置最大充电时间为3小时。
在MAX1898和外部单片机的共同作用下,实现了如下的充电过程。
●预充
在安装好电池之后,接通输入直流电源,当充电器检测到电池时将定时器复位,从而进入预充过程,在此期间充电器以快充电流的10%给电池充电,使电池电压、温度恢复到正常状态。
预充时间由外接电容CcT确定(100nF时为45分钟),如果在预充时间内电池电压达到2.5V,且电池温度正常,则充电进入快充过程;如果超过预充时间后,电池电压仍低于2.5V,则认为电池不可充电,充电器显示电池故障,LED指示灯闪烁。
●快充
快充过程也称为恒流充电,此时充电器以恒定电流对电池充电。
恒流充电时,电池电压缓慢上升,一旦电池电压达到所设定的终止电压,恒流充电终止,充电电流快速递减,充电进入满充过程。
图6基于MAX1898的智能充电器电路充电控制部分原理图
●满充
在满充过程中,充电电流逐渐衰减,直到充电速率降到设置值以下,或满充时间超过,转入顶端截止充电。
顶端截止充电时,充电器以极小的充电电流为电池补充能量。
由于充电器在检测电池电压是否达到终止电压时有充电电流通过电池内阻,尽管在满充和顶端截止充电过程中充电电流逐渐下降,减小了电池内阻和其他串联电阻对电池端电压的影响,但串联在充电回路中的电阻形成的压降仍然对电池终止电压的检测有影响。
一般情况下,
满充和顶端截止充电可以延长电池5%~10%的使用时间。
●断电
当电池充满后,MAX1898芯片的2引脚/CHG发送的脉冲电平会由低变高,这将会被单片机检测到,引起单片机的中断,在中断中,如果判断出充电完毕,则单片机将通过P2.0口控制光耦6N137,切断LM7805向MAX1898的供电,从而保证芯片和电池的安全,同时也减小功耗。
●报警
当电池充满后,MAX1898芯片本身会熄灭外接的LED绿灯。
但是,为了安全起见,单片机在检测到充满状态的脉冲后,不仅会自动切断MAX1898芯片的供电,而且会通过蜂鸣器报警,提醒用户及时取出电池。
当充电出错时,MAX1898芯片本身会控制LED绿
灯以1.5Hz左右的频率闪烁,此时不要切断芯片的供电,要让用户一直看到此提示。
4软件设计
充电电器的充电过程主要由MAX1898控制,而单片机芯片主要是对电池起保护作用。
本例的软件设计较为简单,其主要功能如下。
当MAX1898完成充电时,其/CHG引脚会产生由低到高的跳变,该跳变引起单片机的INT0中断。
/CHG输出为高存在3种情况:
一是电池不在位或无充电输入,二是充电完毕,三是充电出错(此时,实际上/CHG会以1.5Hz频率反复跳变)。
显然前两种情况单片机都可以直接控制光耦切断充电电源,所以,程序中只要区别对待第3种充电出错的情况即可。
因此,在此中断中,如果判断出不是充电出错,则控制P2.0脚切断电源,控制P2.1脚启动蜂鸣器报警。
4.1程序流程
单片机控制智能充电器工作的程序流程如图7所示。
图7基于MAX1989的智能充电器程序流程图
4.2程序说明
主要程序代码及其说明(见注释语句)如下。
#defineucharunsignedchar
#defineuintunsignedint
sbitGATE=P2^0;
sbitBP=p2^1;
uintt_count,int0_count;
/*定时器0中断服务子程序*/
voidtimer0()interrupt1using1
{
TR0=0;//停止计数
TH0=-5000/256;//重设5mg计数初值
TL0=-5000%256;
tcount++;
if(t_count>600)//第一次外部中断0产生后3s
{
if(int0_count==1)//还没有出现第二次外部中断0,则认为充电完毕
{
GATE=0;//关闭充电电源
BP=0;//打开蜂鸣器报警
}
else//否则即是充电出错
{
GATE=1;
BP=1;
}
ET0=0;//关闭T0中断
EX0=0;//关闭外部中断0
int0_count=0;
t_count=0;
}
/*外部中断0服务了程序*/
voidint0()interrupt0using1
{
if(int0_count==0)
{
TH0=-5000/256;//5ms定时
TL0=-5000%256;
TR0=1;//启动定时/计数器0计数
t_count=0;//产生定时器0中断的计数器清零
}
int0_count++;
}
/*初始化*/
voidinit()\
{
EA=1;//打开CPU中断
PT0=1;//T0中断设为高优先级
TMOD=0×01;//模式1,T0为16位定时/计数器
ET0=1;//打开T0中断
IT0=1;//外部中断0设为边沿触发
EX0=1;//打开外部中断0
GATE=1;//光耦正常输出电压
BP=1;//关闭蜂鸣器
int0_count=0;//产生外部中断0的计数器清零
}
voidmain()
{
/*调用初始化函数*/
init();
/*无限循环*/
whiole
(1);
}
5实例总结
本章以充电芯片MAX1898的使用为例,介绍了如何利用单片机实现智能化的手机充电器。
目前,充电电池的种类繁多,因此在充电器的方案设计时需要针对不同的电池选择不同的充电芯片。
本例实现的是单节锂离子电池充电器,因此选用了芯片MAX1898作为充电芯片。
在本例设计过程中,需着重把握以下几点。
(1)预充、快充、满充等充电方式的工作原理。
(2)MAX1898的充电状态指示输出信号/CHG在本例中的应用。
(3)MAX1898外围电路的设计,其中包括设置充电电流的电阻和充电时间的电容数值的选取。
(4)如何在单片机程序中判断出充电完成还是充电出错,并做出相应的处理。