1、引言
近年来,便携式电子产品的迅猛发展促进了电池技术的更新换代。锂离子电池由于其具有高能量密度、长寿命、低自放电率、无污染等特性,迅速成为市场的主流电池产品。为了防止电池出现过充电或过放电状态、保证电池的安全性能和避免出现电池特性恶化现象,必须在锂离子电池组中安装保护电路。同时要锂电池能够稳定可靠的为设备提供能量,对于电池的智能检测与监控是必须考虑的环节。锂电池供电是现代便携式设备最合适的供电方案,但其充放电安全性不如镍铬电池、镍氢电池及普通一次性干电池的传统电源。如果充放电方法不对,将会导致锂电池发生安全问题,甚至爆炸,故锂电池有必要加入监控电路以实时监控充放电过程。本文以珠海炬力soc芯片atj2085来设计锂电池的外围检测系统,该设计方案以微处理器作为各种功能控制的核心, 除了对锂离子电池组提供过充、过放、过流保护外, 还可有效的对锂离子电池组内各单节锂电的充、放电提供平衡保护、能够实时检测出电池所处状态并对锂电池进行保护。
2、atj2085的电池监测的功能的使用
atj2085为lqfp封装,64针脚,采用内嵌式的mcu和24-bit dsp双处理器体系结构,分别完成针对操作事件控制和多媒体数据编/解码算法的系统级优化,通过数模混合信号技术,在单一硅片上集成了高精度adc/dac转换器、usb控制器,实时时钟rtc等。支持usb2.0(fullspeed),支援mp3/wma/wav/wmv/asf等格式媒体播放;支持mtv电影播放;支持jpg、gif、bmp图片浏览。其系统集成度高,外围应用电路简单,拥有功能完善而成熟的开发工具和环境。
在atj2085中,电池电压从电池电压检测引脚vbatpin输入,vbat的电压范围小于3.0伏,所以无论一节碱性电池(1.5v)供电还是两节碱性电池(3.0v)供电,在外部电池供电电压小于3.0伏时外部都无需要加分压电阻。atj2085中有一个4bit的adc,它把0.9-1.5伏之间的电压16等分为:0.90v,0.94v,0.98v,1.02v,1.06v,1.10v,1.14v,1.18v,1.22v,1.26v,1.30v,1.34v,1.38v,1.42v,1.46v,1.50v。当电池电压大于3.0伏供电时,batsel接高电平,决定了从vbatpin脚输入的电压在比较前会被分压。并且a/d变换出来的数值会每2秒一次被记录在io port(d8h).bit[3:0]里,这样软件就可以读回io port(d8h)中的值,与功能规格表(表1)中的值作比较,来确定要显示的电池电量及采取的动作。很明显atj2085能在更多点上监测电池电压。
举例如下:
假设vl0》vl1》vl2》vl3,电池电量显示为3格
选vl0=1.30v, 即io port(d8h).bit[3:0]=0ah,
vl1=1.10v, 即io port(d8h).bit[3:0]=05h,
vl2=0.98v, 即io port(d8h).bit[3:0]=02h,
当vbat》vl0时,电池电量显示为满格;
当vl0》vbat》vl1时,电池电量显示为缺1格;
当vl1》vbat》vl2时,电池电量显示为缺2格;
当vbat《vl2时,电池电量显示为缺3格,即空格,并闪烁。
另外,当电池的电压低于某个电压时(假设vl2),软件把一些耗电大的电路关断(利用io port控制),如dsp,dac等等。当vbat pin脚上的电压低于lbd pin脚的电压时,atj2085仍会被无条件复位。
3、电池检测系统设计
3.1 电路设计
在本文中检测电路仅仅列出锂电池检测电路的原理图,该设计考虑到了锂电池的过压特性,于是选用sc805电池检测芯片来进行硬件电路的设计。如下图所示,电路图一部分是对于usb充电和过压的保护设计,另一部分为电池电量检测
正如atj2085的电池监测的功能的使用描述一样,需要在电池两端连接电阻r424和电阻r422(理想状态下电阻r424和电阻r422比值应该为1:2)来分压。但是考虑到非理想adc的量化间隔是非等宽的,这势必导致adc器件不能完全正确地把模拟信号转化成相应的二进制码,从而造成信噪比的下降;且adc每个量化的二进制码所对应的量化间隔都不同,为了使设计的系统参数尽可能准确,我们需要克服微分非线性量化误差。于是需要调整r424和r422的组值(如图1所示)。
3.2 电压检测
atj2085内部有一个4 bit非理想 adc.作为检测电源电压之用。此4 bit adc可以根据固件(f/w)设定的电压值,产生lb-和lbnmi-信号。对于锂电池,由于自身特性不可能使产生的电压直接可以达到0~1.5,需要利用如下公式分压:
将分压后的值与锂电池实际值进行对应,其电压检测如表2所示:
通过硬件后可以将表2的值对应到表1中去通过调用以下软件流程进行处理。
3.3 软件流程
该检测系统软件设计流程如图2所示:
首先清watchdog,然后通过gpio_a0检测usb状态,接下来进行充电引脚gpio确认并开始充电,充电时将gpio_a0(如检测电路图)寄存器的对应位置高电平,同时利用gpio_b6进行电池状态检测[6][7]。当需要对4位adc寄存器读写数据时,需要设置其端口值参数,通过电池状态检测后,最后将检测到的电池参数通过显示函数显示在lcd上。
其初始化代码如下:
output8(0x4e,input8(0x4e)|0x08)//清watchdog
output8(0xee,input8(0xee)|0x01); //初始化端口参数,开始充电
output8(0xf0,input8(0xf0)&0xbf);
output8(0xf1,input8(0xf1)|0x40);
output8(0xee,input8(0xee)& 0xfe);
if((input8(0x50)&0x40)!=0x40)
if(!(input8(0xee)&0x04)) //防止充电黑屏后拔掉usb不开
4、结束语
通过该方法设计的锂电池检测系统不仅可以有效防止电池的过压、过充、过放、过温,同时可以智能监控电池的电压状态;该设计方案简单易行,稳定可靠,对于嵌入式系统的设计与研发具有一定的指导意义和实践价值。该方法的创新之处在于不管外接干电池、锂电池还是镍氢电池均可以用该电路设计方法对电池进行监控。
苹果首次直播,居然没“带货”
中国移动公布了2019至2020年分布式块存储产品集中采购结果
机器人不断发展,未来人机共存将是趋势
如何利用RTLinux进行嵌入式应用程序的开发
Configuration Wizard的语法规则
基于微处理器实现锂电池外围检测系统的设计
特斯拉目前正通过各种方法提升Model 3的生产和交付效率
LED灯带SASO认证 IEC检测和检验要求
NVIDIA车载人工智能(AI)引擎助力 起重机也能无人驾驶
电气中的三相交流电如何区分相序?
贸泽电子与运动控制公司Trinamic 签署全球分销协议
betBEB钱包正在让加密数字货币走向现实
PLC与计算机的数据通信
智能公交与车载视频一体化终端的研究与展望
华为mate10/mate10pro即将发布:倪飞亲自下场宣传,确认有三个版本,保时捷版买不起,全面屏版售价良心
GPU助力基因组重测序分析
华为确定无法和谷歌合作了即将启动备选方案
基地继电器的原理图
多款互联网存款产品下架,是否对银行有影响?
iPhone X导入OLED面板,韩系、日系、陆系厂商在OLED面板布局