armok 发表于 2007-11-16 23:42:31

用Atmega8单片机自制智能型液晶显示充电器 (527DZ作品)

一、概述:

   移动通讯、消费类数码产品、笔记本电脑、便携仪器等便携设备市场的不断扩张,使得我们对电池的性能和工作寿命的要求不断地提高。从20世纪60年代的商用镍镉和密封铅酸电池到近几年的镍氢和锂离子技术,可充电电池容量和性能得到了飞速的发展。

  但充电电池的使用离不开对其补充能量的充电器,而且充电器的好坏将会直接影响到电池的充电性能和使用寿命。

  本文详细介绍了镍镉、镍氢、锂电池这三种最为常用的充电电池的特点,同时介绍本站设计的智能型充电器的电路原理。


http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181155.gif
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181156.gif

二、各种充电电池特性:
  目前各种电器使用的充电电池主要有镍镉电池(NiCd)、镍氢电池(NiMH)、锂电池(Lilon)和密封铅酸电池(SLA)四种类型。

1.各种充电电池的优缺点
  NiCd电池是前几年使用最为普遍的充电电池。它的优点主要是价格便宜,缺点是其自放电率较高,存在记忆效应,且镍镉电池会对环境产生污染,因此也将逐渐地退出市场。通常NiCd电池可以充放电1000次左右。
  近两年来,重量更轻容量更大的NiMH电池得到了更为普遍的使用。在手机、数码相机、数码摄像机等便携式设备中都能见到NiMH电池的身影。镍氢电池的容量比镍镉电池高1.5-2倍,且具有不污染环境、价格便宜、性能好等优点。NiMH电池的自放电率大概为20%左右
  同其他充电电池相比较,锂电池具有最高的能量/重量、能量/体积比、无记忆效应等优点。但是锂电池成本高而且充电器要求也是最高的。如果对锂电池充电不当的话,很容易损坏电池,甚至产生电池爆炸。

2.影响充电电池使用寿命的因素
  影响镍氢、镍镉电池使用寿命的主要因素是过充电和充电时电池温度过高(通常要求电池温度保持在45度以下进行充电)。另外,由于镍镉电池具有记忆效应,因此,如果在镍镉电池存储的电量没有完全放完的情况下充电的话,也会影响电池的使用寿命。

而影响锂电池使用寿命的主要因素有以下几点:
  过放电:锂电池放电过程中,锂离子不断地从电池负极移动到电池正极,但是不能使锂离子完全地移动,必须保留一部分锂离子在电池负极中。否则电池寿命就会大大地缩短。为保证电池放电结束后电池中还保留部分锂离子,就要求电池在使用中不能过放电。通常锂电池单体的终止放电压为3.0,不要低于2.7V。

  充电温度:通常要求锂电池在充电过程中温度不能超过50度,否则会影响电池使用寿命。

  最高充电电压:锂电池的最高电压为4.2V,否则会使正极的锂离子移动太多,从而大大缩短电池的使用寿命。

三、智能型充电器的设计要求
  几乎是所有用户都希望充电器的充电速度越快越好。因此,充电器能够提供的充电速率就是充电器设计的一个重要指标,但是要提高这个指标的前提是充电器必须能够在快速充电阶段能够准确的判断电池的状态。快速充电器的一个本质特征就是在过度充电之前自动降低充电速率。同时充电速率最好也不要超过电池生产商的建议值,通常不要超过2C的充电速率。
  如果充电器做不到这一点的话,那么我觉得只能设计和使用合适的小电流涓流充电器。
  因此,一个安全可靠的充电器就需要能够在电池的充电过程中能够严格的控制电池的充电电流、电压、温度等物理参数。因此,智能型充电器通常应该包括恒流/恒压控制环路、电池电压监测电路、电池温度监测电路等基本单元。智能充电器的基本硬件方框图如下图所示:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181157.gif

四、CPU电路:
  本充电器设计采用ATMEL公司2002年推出的一款AVR高档单片机Atmega8。其内部集成了大容量的存储器,提供了PWM脉宽调制脉冲产生器、多路AD转换器、实时时钟电路、串行接口等硬件接口。非常适合用作智能型充电器的MCU控制单元。Atmega8有DIP28和TQFP/MLF32三种封装类型。我们选择了DIP28封装,如下图所示:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181158.gif

MCU控制单元电路如下图所示:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181159.gif


MCU系统时钟和实时时钟的选择:
  Atmega8具有5种类型的系统时钟源,即外部晶振、外部低频晶振、外部RC振荡、内部RC振荡及外部时钟。由于充电器在充电过程中需要计算充电时间,因此智能充电器的设计中必须包括实时时钟源。根据Atmega8的时钟源特点,本充电器的MCU系统时钟选择使用可校准的内部RC振荡器产生8M时钟,外接32.768KHz的晶振做为实时时钟的时钟源。

PWM脉宽调制波产生器:
  Atmega8具有3个定时/计数器,可以实现定时/计数功能外,还具有任意小于16位相位和频率可调的PWM脉宽调制输出功能。本充电器使用T/C1产生PWM,为了获得较高的PWM脉冲频率,T/C1的工作模式选择快速模式。PWM脉冲从PB1(15脚)输出。

AD转换器:
  DIP28封装形式的Atmega8具有4个10位精度和2个8位精度的AD转换通道。本充电器在充电过程中需要随时采集电池的充电电流、放电电流、电池电压和电池温度,共需要4个AD转换通道。我们采用ADC0(PC0)采集充电电流数据,ADC1(PC1)采集电池电压,ADC2(PC2)采集电池温度,ADC3(PC3)采集放电电流。
  Atmega8的21脚AREF是AD转换器的电压参考源。20脚Avcc是AD转换器的电源引脚,为了减小电磁干扰提高测量精度,Avcc是通过L1和C6组成的LC网络才连接至5V电源端。

五、1602B字符型液晶模块
  1602B字符型液晶模块是2行16个字的5x8点阵图形来显示字符的液晶显示器,控制芯片为KS0066。液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形。这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181160.gif


下图是该模块的外形封装尺寸图:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181161.gif


脚注意事项:
  从该模块的正面看,引脚排列从右向左为:15脚、16脚,然后才是1-14脚。

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181162.jpg

VDD:电源正极,4.5-5.5V,通常使用5V电压;

VL:LCD对比度调节端,电压调节范围为0-5V。接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;

RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;

R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据;

E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。

D0-D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。本充电器就是采用4位数据传送方式;

BLA: LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;

BLK: LED背光地端。

1602B在智能充电器中的电路

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181163.gif



六、恒流/恒压电路
下图是采用PWM方式控制的恒流/恒压电路。由于图中的开关管是工作在开关状态,因此电路的工作效率较高。

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181164.gif

工作原理:
  当开关管Q导通时,输入电源通过电感L向电容C充电,同时电感L开始存储能量。当Q断开后,电感要保持电流从而开始释放能量,二极管D开始导通,电感继续给电容充电。开关管周期性的导通,从而保证了电路输出恒定的输出电压。如果开关管的导通时间增加,则输出电压升高,充电电流加大。反之则输出电压下降,充电电流下降。

  因此,通过调整PWM的占空比,就可以实现实现充电器的恒流和恒压功能。占空比与输出电压的关系如下:

ton/T = (Vo + VD) / (Vi – Vsat + VD)

其中:
ton :开关管导通时间
T :PWM脉冲的周期
Vi :输入电压
Vo :输出电压
Vsat :开关管的饱和压降
VD :二极管导通压降

电感L的计算方法如下:
L = (Vi – Vsat - Vo)ton / Ipk

其中:
Ipk = 2IoMAX
IoMAX = 最大输出电流

下图是本充电器的恒流/恒压电路。

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181165.gif

图中开关管选用了东芝的TPC8103 MOSFET管,为8脚贴片封装。其外形和内部原理图如下。
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181166.gif

七、基准电压源
TL431是一个具有良好的热稳定性能的三端可调基准电源。外形如下图所示:
http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181167.gif

TL431有3个引脚,分别为:阴极C(CATHODE)、阳极A(ANODE)和参考端R(REF)。

其内部工作原理图如下图所示:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181168.gif

充电器基准电压电路如下图所示:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181169.gif

  TL431的内部含有一个2.5V的基准电压,所以当在REF端引入输出反馈时,器件可以通过从阴极到阳极很宽范围的分流,控制输出电压。输出电压可以控制在Vref(2.5V)到36V范围内。当R12和R16的阻值确定时,两者对Vo的分压引入反馈,若V o增大,反馈量增大,TL431的分流也就增加,从而又导致Vo下降。显见,这个深度的负反馈电路必然在VI等于基准电压处稳定,此时Vo=(1+R12/R16)Vref。选择不同的R1和R2的值可以得到从2.5V到36V范围内的任意电压输出,特别地,当R1=R2时,Vo=5V。需要注意的是,在选择电阻时必须保证TL431工作的必要条件,就是通过阴极的电流要大于1 mA 。

  本充电器选择的基准电压值=(1+3/6)×2.5=3.75V

八、电流检测电路:
  本充电器需要实时监控充电过程中的充电电流、电池电压、电池温度以及放电电流值。因此需要运放电路来对这些参数进行放大。LM324是一款使用普遍且价格便宜的4运放集成电路。其工作电压为3-32V,封装如下图所示:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181170.gif

  电流检测电路如下图所示。通过检测与电池串联的电流检测电阻R26上的电压,即可计算出充电电流和放电电流。运放2为充电电流检测放大器,运放3为放电电流检测放大器。

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181171.gif


  两路放大器的增益均为:R27/R30=87/6.6=13。即最大电流检测值为:基准电压/电流放大器增益/R26=3.7/13/0.1=2.8A。

九、电池电压检测电路
  为了监控电池电压,需要将电池电压变换在单片机的AD测量范围以内,即0至Vref范围内。这里采用了一个普通的差分放大电路。如下图所示:


http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181172.gif

  其运放输出电压TEST_V=Vbattery×R17/R14。即电池最大测量电压为:

Vbattery_max=Vref×R14/R17=3.75×12/3.08=14.6V。

十、温度传感电路
温度传感器:LM35

  LM35是一款精密集成电路温度传感器,其输出的电压线性地与摄氏温度成正比。LM35系列传感器生产制作时就已经过校准过,其输出电压与摄氏温度一一对应,使用极为方便。其灵敏度为10.0mV/℃,精度在0.4℃至0.8℃(-55℃至+150℃温度范围内),低输出阻抗,线性输出和内部精密校准使其与读出或控制电路接口简单和方便,可单电源和正负电源工作。

特性
在摄氏温度下直接校准
+10.0mV/℃的线性刻度系数
确保0.5℃的精度(在25℃)
额定温度范围为-55℃至+150℃
适合于远程应用
工作电压范围宽,4V至30V
低功耗,小于60uA
在静止空气中,自热效应低,小于0.08℃的自热
非线性仅为±1/4℃
10输出阻抗,通过1mA电流时仅为0.1Ω

参数指标及外形图(三种封装)
本充电器选用了LM35DZ型号,封装类型为TO-92塑封,如下图所示。工作温度范围为0℃至+100℃。

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181173.gif

TO-92封装(底视图)

1脚:+VS,2脚:Vout,3脚:GND

典型应用
利用数字表可以直接测量温度,如室温25℃时,表上读数为0.25V。如下图所示:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181174.gif

本充电器温度测量电路如下图所示:

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181175.gif


  运放电路增益为R34/R35=12/2=6。因为AD转换器基准电压为3.7V,因此充电器的温度测量最大值为(基准电压/温度测量增益)/10mV=3700/6/10=62摄氏度。

十一、RS232接口电路
  这里采用下图分立元件构成的RS232接口电路,该电路工作稳定可靠,而且无须调试。如果需要缩小体积的话,可以采用MAX232专用串口芯片。

http://cache.amobbs.com/bbs_upload782111/files_8/ourdev_181176.gif

  本充电器除了使用LCD做为状态显示以外,还采用了一个双色发光二极管做为充电器的状态指示。这样的话,即使在黑夜里使用充电器,也能够在远处一眼就看出充电器的状态。双色二极管的驱动也是ATMEGA8串口的TX和RX脚。

zqljg 发表于 2007-11-18 22:49:10

能否提供详细的电路图与程序,谢谢armork!

tywood 发表于 2008-1-26 18:49:36

希望能做个pdf文件好让大家下载

wxfhw 发表于 2008-1-27 00:04:33

不错的资料!

eliucheng 发表于 2008-3-31 16:51:56

能否提供详细的电路图与程序,谢谢

sciencehero 发表于 2008-4-6 16:55:04

记录!

armok 发表于 2008-4-6 16:57:08

527dz 网站已经不再存在。这个充电器项目,已经转成了527dz的个人事业。所以,他没有对这个资料开源。

谢谢大家的关注。也谢谢527dz。没有当初www.527dz.com 的启发,就不会有 ouravr.com 的存在 :)

zhuo17 发表于 2008-4-26 13:13:30

Forever.c 发表于 2008-8-3 12:13:52

thanks好资料

avr_appli 发表于 2008-8-3 13:14:17

mark

yangyi 发表于 2008-8-3 20:31:11

mark,527dz网站我也曾上过,后来就不能登录了,可惜了。

ddcour 发表于 2008-8-3 20:51:17

good

cnzi 发表于 2008-9-5 22:38:08

希望这个现在的avr网站越办越好啦!

fishsu27 发表于 2008-10-7 15:11:27

THANKS 阿莫

feixue 发表于 2008-10-8 15:03:00

整理传上来

点击此处下载 ourdev_443590.pdf(文件大小:1.35M) (原文件名:Atmega8单片机自制智能型液晶显示充电器.pdf) 

zydk1447 发表于 2008-10-23 12:14:41

下了,谢谢armok!

li0713 发表于 2008-10-23 16:05:41

好东西!!收藏

cjr82123 发表于 2008-10-23 17:12:43

Mark,Mark!!!

ycmzq 发表于 2008-10-24 00:44:39

好资料,收藏了.

pengcong2008 发表于 2008-11-6 07:59:19

请问楼主,是否有锂电平衡充放的代码,谢谢!

学习中。。。

ywl0409 发表于 2008-11-6 09:22:20

如果有220V输入充电的就实用了。

googse 发表于 2008-11-6 14:57:52

感谢不已,学习多多

gumogumo 发表于 2008-11-9 01:14:42

COOL!!!!给楼主加200分

654987 发表于 2008-12-3 15:43:04

顶顶!!

i387DX 发表于 2008-12-3 16:19:00

好铁,留个记号。

tanganrong 发表于 2008-12-5 23:16:01

已下载,不错的参考资料。

namo_xu 发表于 2008-12-7 20:01:18

里面的同相比例放大器计算是不是错了?比如LM35放大部分应是(12+2)/2=7。      资料还是不错的,我也想做冲电器。

msdy 发表于 2008-12-9 20:51:15

that good!

wxws 发表于 2008-12-9 23:21:27

MARK

pinocchio 发表于 2008-12-9 23:54:47

mark

sol84 发表于 2008-12-10 13:22:33

mark

pcwinner 发表于 2008-12-10 21:18:04

唉,又一个不错的网站倒下。

ycbx1569 发表于 2008-12-17 22:30:28

mark

qzzz 发表于 2008-12-17 22:45:53

很不错啊,支持!

abslearn 发表于 2008-12-19 22:45:18

真的不错~~~谢谢楼主分享

!!!

kevinavr 发表于 2008-12-22 18:57:39

留下脚印。

lxhf546 发表于 2008-12-29 10:48:18

我挺奇怪的,这里用的MCU是mega8的,可是下载的原理图里怎么又变成是mega32了?整个充电器从开始到现在有多少变化,有过什么变化?

vincent.r 发表于 2008-12-29 10:52:25

需要Mark.

zzw0817 发表于 2009-1-7 15:52:19

好东西,希望ouravr不会象527dz,支持ouravr...

zhoujie 发表于 2009-1-8 09:12:39

原来是祖师啊,膜拜膜拜,做个记号

zenboys 发表于 2009-3-14 12:47:20

讲得很详细,留下

ryantee 发表于 2009-3-20 11:24:04

留个记号。      方便阅读。。。

谢谢!

sctwp 发表于 2009-4-12 11:00:12

长江后浪推前浪,前浪那个什么的

zgdqty 发表于 2009-5-16 23:55:41

好资料!谢谢分享!

naohbbq 发表于 2009-5-25 10:39:24

记号,强

kenshen 发表于 2009-5-26 17:12:33

我哭我现在用16的来做 没代码真麻烦

touch_mcu 发表于 2009-5-26 23:59:31

记号

huiyong888 发表于 2009-6-1 12:22:41

留个记号,好贴!很想学习用单片机做充电器,就是不知道如何下手做,楼主能提供个初学者学习的“用Atmega8单片机自制智能型液晶显示充电器 ”详细资料吗,我的电子信箱:huiyong828@163.com   交学费也行。
我只做个开关电源,那位精通单片机朋友能合作做也行,期待联系qq:179755240

huyaping2000 发表于 2009-6-15 18:12:32

好资料。

yu_studio 发表于 2009-6-15 18:42:16

不错,留记号

arone 发表于 2009-6-23 16:22:44

顶一个

dzkr 发表于 2009-6-24 23:41:04

认真学习,受益不浅啊,谢谢

rei1984 发表于 2009-6-25 08:40:38

太感谢了

yu_studio 发表于 2009-6-25 09:09:26

顶了看

rfour 发表于 2009-7-3 00:33:19

终于找到这个网站了,小弟拜见各位高人!小弟也开始在这定居学习了,狂顶!

xslff 发表于 2009-7-3 18:41:53

虽然来得有点晚了,但我相信我来得很及时,已打好地铺了!(定居)

hanxiao20 发表于 2009-7-11 22:05:50

正在做充电器,用mega48做,没想到看到这么详细的资料,十分感谢

xslff 发表于 2009-7-11 22:30:07

此贴不顶,太对不起贴主了!

lmn2003 发表于 2009-8-25 16:55:44

好久没来了,来学习了,谢谢

kinoko 发表于 2009-8-30 02:57:20

收藏很好

wzz421 发表于 2009-9-2 15:42:07

谢谢分享

freezing 发表于 2009-9-2 16:49:03

MARK

master5888 发表于 2009-9-2 20:03:14

mark

hejianji 发表于 2009-9-3 01:04:46

mark

sjh00213 发表于 2009-9-11 17:00:30

好贴哦,我正准备做这个方面的

witqyz 发表于 2009-9-19 17:42:24

很不错!!!

703xyl 发表于 2009-11-1 00:37:20

好帖啊

aohuahua 发表于 2009-11-1 11:54:20

好贴,顶

Dream_catcher 发表于 2009-11-1 14:50:36

good!

wxws 发表于 2009-11-1 16:26:31

kk

leiyun121 发表于 2009-11-9 17:23:35

mark!

gmolzc 发表于 2009-11-9 18:25:26

不錯,頂!!!

lgw65 发表于 2009-11-9 22:48:09

学习一下

Dream_catcher 发表于 2009-11-14 11:58:59

好东东mark

flyxiao 发表于 2009-11-19 10:00:48

mark

qilin3 发表于 2009-11-19 10:33:12

http://files.ourdev.cn/bbs_upload175802/files_8/ourdev_181171.gif

不知道这里的两路放大的具体作用是? 做差分吗?

gujie111 发表于 2009-11-19 10:56:50

很强大 最近想做个放电电量测试仪 这个很有参考价值

sunmy 发表于 2009-11-19 15:24:01

mark

fy024 发表于 2009-11-19 20:00:44

mark

wuhdu 发表于 2009-11-21 21:08:13

andywyt 发表于 2009-11-26 03:51:43

不错~~~~~~真的不错~~~~~~~~~~~~~~~~```

zhang0600604 发表于 2009-12-30 14:02:23

做个记号

hjginvengo 发表于 2010-1-1 16:09:29

要有源码就好了

lyx1218 发表于 2010-1-1 19:43:58

好东西!!收藏

sysatom 发表于 2010-1-12 13:17:07

mark

showeravr 发表于 2010-2-19 21:47:58

回复【楼主位】armok 阿莫
-----------------------------------------------------------------------

做个记号

shc0813 发表于 2010-2-22 21:46:25

要有源码就好了

Pmin-wei 发表于 2010-4-13 16:56:08

能提供原理图和源代码就好了,正想自己做一个呢

zhg_wx 发表于 2010-4-14 00:47:57

mark

a2xsxtl 发表于 2010-5-5 10:40:55

很好,顶!

chys01 发表于 2010-5-5 10:51:27

精品

zxf0124 发表于 2010-5-23 10:42:42

精品,小弟要学习的地方还很多。

TCMCU 发表于 2010-5-23 18:50:57

太好了,谢谢楼主的分享,对于我们菜鸟而言,就是绝好的学习资料了

再次表示感谢

salvage 发表于 2010-6-21 14:46:15

看楼主的板子,那个100uH的电感好象是手工绕的。请问有具体的数据吗?如磁芯尺寸,漆包线线径和匝数等。谢谢

coolwater 发表于 2010-6-30 14:27:01

mark

hankun5941105 发表于 2010-7-26 11:28:37

mark

vipcff 发表于 2010-8-6 11:17:09

mark

heiheihh 发表于 2010-8-9 04:33:16

希望看到楼主的pdf版本,谢谢

bondxie3 发表于 2010-8-26 10:40:27

mark

chaled 发表于 2010-8-26 17:11:51

mark
页: [1] 2
查看完整版本: 用Atmega8单片机自制智能型液晶显示充电器 (527DZ作品)