摘要: 如何设计线性和开关模式(开关dc-dc转换器电流源)电池充电器应用程序,需要外部微控制器和相关的系统级问题的笔记本电脑的应用说明。
笔记本电脑越来越需要复杂的电池充电算法和系统。本文介绍了锂离子(Li+)、镍镉(NiCd)和镍氢(NiMH)电池以及相关的系统级开关模式和线性电池充电器的信息和背景。这些电压调节器和电流调节器由外部微处理器如8051或Microchip PIC控制,并提供了这些控制器的示例。本文概述了使用Maxim电池充电器ic为普通电池化学物质充电的需求,并讨论了系统级权衡和固件设计技巧,以及万维网工程资源列表。
上一期的Maxim's Engineering Journal (Vol. 27)讨论了独立电池充电器的新发展。本文是由两部分组成的系列文章中的第二篇,探讨应用电池充电器ic时的系统级问题。
在过去的五年里,便携设备的市场压力已经将简单的电池充电器变成了一种复杂的开关模式设备,能够在30分钟内为先进的电池充电。这一发展也标志着与仅仅几年前的独立充电器ic的背离。其中一些集成电路具有相当大的智能:足以处理先进电池快速充电的复杂任务。
Maxim仍然生产独立充电器ic,但最近市场需求发生了变化。今天的电池充电器子系统使用外部微控制器(µC)的智能来调节充电电压和电流,通常可以在系统的其他地方使用。这种方法在大批量应用中实现了低成本,并允许根据特定应用定制充电器的最大灵活性。
所有必要的智能曾经都存在于电池充电器控制器IC本身,但现在系统设计师必须实现充电算法并编写相关固件。本文提供了必要的信息和背景,以实现充电系统基于Maxim的广泛的电池充电器ic为所有流行的化学。
下面的讨论概述了Maxim电池充电器ic对普通电池化学物质充电的要求。它解决了系统级的权衡和固件设计技巧,并列出了设计人员可用的万维网资源。讨论以基于两种常见单片机的设计示例结束:8051和Microchip PIC。任何一个例子都可以作为进一步开发定制充电器电路的基础。
目前实际使用的可充电电池有四种化学物质:镍镉(NiCd)、镍氢(NiMH)、胶凝铅酸(PbSO4)和锂离子(Li+)。在这些化学成分之间进行权衡超出了本文的范围,但是参考资料部分提供了对此类信息的访问。
注意:具体建议请咨询电池制造商。这里提供的信息仅作为各种电池化学充电要求的概述。
本节描述四种常见化学物质的一般充电技术和限制。有关更多细节和背景,请参阅Maxim数据表和文章末尾引用的其他参考资料。
正如本文和通用充电器的状态图(图1)所解释的那样,电池快速充电有几个阶段。
图1所示。一般充电器状态图。
虽然初始化不是实际充电过程的一部分,但它是这个过程中的一个重要阶段。充电器初始化自己并执行自己的自检。一次充电可能因电源故障而中断,并随之重新初始化。如果没有智能电池或某种类型的时间戳、非易失性存储,这些事件可能会不被注意到。大多数充电器在电源故障后完全重新初始化自己。如果存在过充问题,则充电器可以执行一个特殊的自检程序,以确定电池是否已经充电。例如,上电时存在的电池应该触发这样的动作。
在一些情况下,这种初始化可能导致充电问题。例如,固定时间充电器以4小时的固定间隔对电池充电。如果在充电3小时59分钟后出现电源故障,充电器将开始另一个4小时的充电,给电池一个4小时的过度充电。这种处理方法会损坏电池,这也是固定时间充电很少使用的原因之一。这个例子还说明了为什么充电器应该监控电池温度或使用其他终止方法作为备用措施。
充电过程的这一阶段检测电池何时安装以及是否可以充电。电池检测通常是通过在充电器电源关闭时寻找充电器端子上的电压来完成的,但是如果电池已经深度循环并且产生很少的电压,这种方法可能会造成问题。作为替代方案,充电器通常寻找热敏电阻或短路跳线,而不是电池本身。这种硬件的存在也可以用来识别电池组。另一方面,智能电池与电池组进行丰富的串行数据交换,通常通过称为系统管理总线(SMBus )的专用I(2) c类协议提供所有必要的充电参数。
一旦充电器确定安装了电池,它必须确定电池是否良好。在这个阶段(鉴定),检查电解槽的基本功能:打开、短路、热或冷。为了测试电池是否可充电,一些充电器——尤其是铅酸型充电器——施加一个小的充电电流(大约是快电流的五分之一),并允许电池在固定的时间内达到指定的电压。这种技术避免了深度循环PbSO4电池的错误拒绝问题,并且在电池制造商的批准下,它也可以用于其他化学物质。
环境温度和电池温度的检查也是鉴定阶段的一部分。当充电器检测到高或低的温度,它通常等待一个预定的间隔温度返回标称。如果在规定的时间内没有发生这种情况,充电器就会减少充电电流。这个动作反过来降低电池温度,从而提高效率。最后,检查单元是否打开和短路。打开的电池很容易检测到,但短路的电池指示需要确认,以避免错误的故障指示。如果所有这些检查都是令人满意的,则可以对电池进行充电,并且如图1所示进入状态。
一些充电器(主要是用于镍镉电池的充电器)包括一个可选的预处理阶段,其中电池在充电前完全放电。完全放电将每个电池的电压水平降低到1V,并消除电解液中的树突结构,这种结构通常被错误地称为记忆效应。这种所谓的记忆效应是指树突结构的存在会减少电池的使用寿命,但一个完整的充放电循环有时会消除这个问题。
预处理可以在每次充电前完成,也可以根据指示(通过负载测试或其他操作)显示电池剩余电量的一半以上。预处理可以持续一到十个小时。一般不建议电池在一小时内放电。快速预处理提出了如何处理负载电阻散发的热量的实际问题。通常也不建议预处理时间超过10小时,除非在检测到容量减少时可以手动启动预处理。人们对镍镉的“记忆效应”产生了困惑和误解,所以设计师应该避免在充电器上放一个按钮来抵消它。
使用的快速充电和终止方法取决于电池化学和其他设计因素。下面的讨论涵盖了快速充电技术广泛应用于当今常见的电池化学。有关具体的指导方针和建议,请咨询电池制造商的应用部门。
镍镉电池和镍氢电池的快速充电过程非常相似;它们的主要区别在于所使用的终止方法。在每种情况下,充电器都施加恒定电流,同时监测电池电压和其他变量,以确定何时终止充电。超过2C的快速充电速率是可能的,但最常见的速率是大约C/2。由于充电效率略低于100%,以C/2的速率充满电需要两个多小时。
当施加恒定电流时,电池电压缓慢上升并最终达到峰值(零斜率点)。镍氢电池充电应在此峰值(0得尔塔V点)终止。另一方面,NiCd充电应该在峰值过后的点结束:当电池电压首次出现轻微下降时(-得尔塔V)(图2)。如果快速充电继续超过电池的终止点,可能会导致电池损坏。
图2。镍镉电池C/2倍率下的充电特性。
在超过C/2的速率下(导致充电时间不超过两个小时),充电器还可以监测电池的温度和电压。因为当电池充满电时,电池温度会迅速上升,所以温度监控器可以实现另一种终止技术。在这个正温度斜率上的终止叫做得尔塔T终止。其他可能触发终止的因素包括充电时间和最大电池电压。设计良好的充电器依赖于这些因素的组合。
请注意:由于电池首次开始充电时出现的某些影响可以模拟终止条件,充电器通常在激活斜坡检测终止模式之前引入一到五分钟的延迟。此外,对于低于C/8的速率,电荷终止条件很难检测,因为感兴趣的电压和温度斜率(得尔塔V/得尔塔t和得尔塔T/得尔塔t)很小,与其他系统效应相当。为了在快速充电期间的安全,这些系统中的硬件和软件应该总是倾向于提前终止。
锂离子电池充电不同于镍化学充电方案。随后可以进行充电,以确保以安全的方式最大限度地储存能量。锂离子充电器的充电电压调节精度优于0.75%,其最大充电速率设置有电流限制,类似于台式电源(图3)。当开始快速充电时,电池电压较低,充电电流为电流限制值。
图3。锂电池电压与充电电流。
充电时电池电压上升缓慢。最终,电流逐渐减小,电压上升到每个电池4.2V的浮电压水平(图4)。
图4。锂离子电池充电曲线。
当电池达到浮动电压时,充电器可以终止充电,但这种方法忽略了充电操作。一种变化是当浮压达到时启动计时器,然后在固定延迟后终止充电。另一种方法是监测充电电流,并在低水平(通常为极限值的5%;一些制造商推荐更高的最低100mA)。一个“顶到顶”的循环也经常遵循这个技巧。
在过去的几年里,锂离子电池、充电器和我们对电池化学的理解都有了很大的改进。最早用于消费者的锂离子电池存在影响安全性的缺陷,但这些问题在今天设计良好的系统中不会发生。制造商的建议既不是一成不变的,也不是完全一致的,锂离子电池还在不断发展。
PbSO4电池通常通过限流方法或更常见且通常更简单的限压方法充电。限压充电方法与锂离子电池类似,但高精度并不重要。它需要将限流电压源设置在略高于电池浮子电压(约2.45V)的水平。
在确保电池充电的预处理操作之后,充电器开始快速充电并继续充电,直到达到最小充电电流。(这个过程类似于锂离子充电器)。然后终止快速充电,充电器施加V(FLOAT)的维护电荷(通常约2.2V)。PbSO4电池可以无限期地维持这种浮电压(图5)。
图5。PbSO4电池充电曲线。
在较高温度下,PbSO4电池的快充电流应按每摄氏度0.3%的典型温度系数减小。建议快速充电的最高温度约为50°C,但维护充电通常可以在该温度以上进行。
所有化学品的充电器通常包括一个可选的顶合相。这一阶段发生在快速充电结束后,并施加适度的充电电流,将电池提升到完全充电水平。(这个操作类似于在油泵自动停止后给汽车油箱加满油。)在达到电池电压、温度或时间的极限时终止充电。在某些情况下,完全充电可以比标准快速充电提供5%甚至10%的运行寿命。这里需要特别注意:电池处于或接近完全充电状态,因此容易因过度充电而损坏。
所有化学品的充电器通常包括一个可选的涓流充电阶段。这个相位补偿电池的自放电。PbSO4电池的自放电率最高(每天几个百分点),Li+电池的自放电率最低。锂离子充电速率非常低,所以不需要也不建议使用涓流充电。然而,nicd通常可以无限期地接受C/16的涓流充电。对于镍氢电池来说,安全的连续电流通常在C/50左右,但镍氢电池的涓流充电并不是普遍推荐的。
脉冲涓流是一种变化,其中充电器提供大约C/8量级的简短脉冲,具有低占空比,提供典型的平均涓流电流为C/512。由于脉冲涓流充电适用于镍化学物质,并且可以很好地用于微处理器(µP)的开/关类型控制,因此几乎可以普遍使用。
在研究具体的电路实现之前,设计人员应该熟悉通用的模块和功能(图6)。所有的快速充电器都应该以某种形式包含这些模块功能。散装电源提供原始直流电源,通常来自墙壁立方体或砖。电流和电压控制调节施加到电池的电流和电压。对于较便宜的充电器,稳压器通常是一个功率晶体管或其他线性通过元件,以热量的形式消耗功率。它也可以是一个降压开关电源,包括一个标准的自由转动二极管的平均效率或同步整流器的最高效率。
图6。通用收费系统框图。
图6中右边的块表示各种测量和控制功能。电流控制回路限制输送到电池的最大电流,电压回路维持电池上恒定的电压。(请注意,Li+电池对所施加的充电电压要求很高的精度。)
充电器的电流-电压(I-V)特性可以完全可编程,也可以仅在电流中可编程,具有电压限制(反之亦然)。始终测量电池温度,电荷终止可以基于该测量的水平或斜率。充电器也测量充电时间,通常作为智能块的计算。
该块为系统提供智能,并实现前面描述的状态机。它知道如何以及何时终止快速充电。智能是在独立的充电器集成电路芯片内部。否则,它驻留在主机微C中,而其他硬件块驻留在充电器IC中。如前所述,后一种架构是当今首选的架构。
Maxim生产各种独立和控制器型电池充电器ic。这种多样性使系统设计人员能够在性能、特性和成本方面进行权衡。表1按所支持的电池化学成分列出了这些ic,按其介绍的顺序,最新的型号在顶部。
部分 | 控制方法 | 标准调节模式** | 特性 | 化学 | 充电率 | 电荷终止方法 |
MAX1647 | µC控制,SMBus | 同步切换 | 智能电池系统,二级兼容,智能电池充电器,SMBus, Li+,独立I-V控制 | 所有 | 编程 | 编程 |
MAX1648 | 用户 | 同步切换 | 控制版MAX1647,高精度开关,I/V源:Li+ | 所有 | 编程 | 编程 |
MAX745 | DAC或单机 | 同步切换 | 先进,低成本,开关式锂+充电器,单机,仅限锂+ | 李+ | 恒压,Li+ | 李+浮动 |
MAX846A | DAC或单机 | 线性 | 低成本,通用充电器,Li+精确参考,外部CPU支持,复位和调节器 | 所有 | 恒压,Li+,程控 | Li+浮动或程控 |
MAX1540 | DAC或单机 | 同步切换 | -控制,开关模式电流源,Li+或通用 | Li+, NiCd, NiMH | 快速,涓涓细流,脉冲式涓涓细流 | 编程或Li+单机 |
MAX712 | 独立的 | 线性 | 完整的低成本镍氢电池,具有终止模式,最大次数,LED输出。没有李+。 | NiMH | 快,细流 | 0得尔塔V,最大电压,最高温度,最长时间 |
MAX713 | 独立的 | 线性 | 完整的低成本NiCd,具有终止模式,最大时间,LED输出。没有李+。 | 镍镉 | 快,细流 | 0得尔塔V,最大电压,最大温度,最大时间 |
* DAC输入类型也可以使用DAC和µC。 **所有线性类型都可以在滞回开关模式下使用,以提高效率。 |
在线性和开关模式调节之间的选择构成了一个主要的设计决策。线性模式成本较低,但耗电和发热。对于大型台式充电器来说,热量可能不是问题,但对于笔记本电脑等小型系统来说,热量可能是不可接受的。同步开关稳压器提供最高的效率(在90%的范围内),这使得它们适用于最小的系统,包括手机。列出的一些非同步开关模式电路也提供了合理的效率。此外,大多数线性部分可用于中等效率的滞后开关模式。(有关详细信息,请参阅相应的数据手册。)
充电器的自主程度带来了另一个设计决策。例如,独立充电器是完全独立的。MAX712/MAX713也为用户的终端设备提供led控制输出。
其他器件可以单独使用,也可以与数字转换器(DAC)和µP一起工作。它们包括MAX1640/MAX1641, MAX846A和MAX745。MAX1640是一种电压限制电流源,主要用于镍化学电池充电,包括充电定时器和脉冲涓流电路。它具有独立的功能,并与高效同步开关稳压器或(用于低成本应用)标准开关一起操作。
MAX846A和MAX745都能够独立运行,为锂离子电池充电,它们包括通用控制器所需的高精度参考和独立电压和电流控制。MAX846A为线性型,MAX745为同步切换型。虽然两者都可以单独使用,但它们通常在µC下运行,对充电过程的控制有限。LED照明和快充终止通常由软件启动。MAX846A包括一个线性稳压器和一个用于µC的cpu复位输出。
最不自主和最灵活的器件是MAX1647和MAX1648。它们相似,除了MAX1647有内置dac和SMBus串行端口,MAX1648有电压和电流控制输入。MAX1647是一个完整的串行控制直流电源,具有独立的电压和电流寄存器。它能够与智能电池进行SMBus通信,符合英特尔/金霸王智能电池规范的2级要求。
这些充电器ic通常使用低成本的8位控制器,如8051、PIC、68HC11或68HC05。固件可以用汇编语言或C语言编写,这两种语言都具有现成的可用性、低成本和免费的工具。这些设备的第三方和制造商已经组装了一系列令人印象深刻的编译器、汇编器、模拟器和代码库。这些源代码的大部分都可以在万维网上获得,特别是汇编语言的工具箱例程。有关充电器程序结构的提示部分提供了有关这些资源的进一步信息。
所有常见的8位µC都是合适的,但特定µC的选择超出了本文的范围。这些µC中提供了数字转换器(adc)、dac和SMBus串行接口等外设,并且需要外部adc或dac的更简单的µC版本也很有用。通常,需要外部adc或dac的更简单的µC版本更灵活,最终更有用。
充电器应用的ROM和RAM要求是适度的。一般来说,您可以在不到0.5kb的代码和32字节的RAM中实现单个化学充电器(即使是低端PIC的简单要求)。用一些聪明才智,你可以实现一个多50%代码的多化学充电器。
开发µC代码最简单的方法是从一个框架或一段类似的代码开始,然后修改它以满足您的需求。这种方法通过克服大量空白页、编译/汇编语法问题,使原型能够快速工作。不幸的是,只有数量有限的电池充电器固件存在于Web和标准应用程序说明中。但是,硬件和软件示例小节中的两个设计示例提供了一个起点。有关一些更困难的工具箱例程(如SMBus通信和数学例程)的更多信息,请参阅参考资料和参考资料部分,以及演示这些设计方法的程序设计示例。
编写电池充电器软件很简单,最好使用状态机来实现。定义一个表示当前状态的状态变量或一系列标志。然后,代码往往是根据该状态变量执行操作的大型case语句。代码模块根据当前条件修改状态变量。不允许的和不可更改的状态构成了唯一的潜在问题。所有的case语句都必须有一个默认的case,用来拾取这些不允许或“不可能”的状态并纠正它们。始终包括一个机制,检测这些情况,然后采取智能行动,如停止充电器。
保持代码简单:尽可能避免多个中断和复杂的多任务处理或排队结构。使用单个定时器中断是保持时间的一种非常有效的方法。如果CPU有一个带有中断的定时器,用它来维护系统定时器标志。这种强大的技术是无中断规则的一个例外。如果没有定时器中断可用(如PIC16C5x),则使用系统定时器(RTC)并轮询它。设计代码,使计时器不会在轮询之间溢出。
避免硬件中断。相反,应该按计时器设定的定期间隔轮询硬件输入。代码执行是实时发生的,但它不必立即对刺激作出反应。考虑到电池充电需要一个小时的时间,确定电池是否安装所需的100ms是可以接受的。独立充电器的典型性能通常是每分钟计算一次终止。
这些程序的一个简单而可行的结构是一个有节奏的循环。主程序是一个循环,它查看由计时器中断服务例程或循环本身设置的计时器标志,并调用执行所需的多个任务的子例程。一些例程在每次循环时运行,而另一些例程在每“n”次循环或滴答时运行。例如,基本的滴答时间可能是100ms。一个半秒周期的闪烁子程序将被调用,以补充每五个刻度的LED,并且温度限制检测器将在每次通过循环时进行检查。结果是一个非常坚固的结构。
对于没有定时器中断的控制器,可以由例程自己实现有节奏的循环,使用它们自己的执行时间来维持系统定时。该技术将在下一节中通过8针PIC控制器的代码示例实现。该结构的简单流程图(图7)在参考文献7中有更详细的描述。
图7。主调速回路流程图。
在探索一些示例之前,最后一个建议是考虑使用带有看门狗定时器和硬件故障安全系统的µP监视器。监视器的复位功能提供了一个干净的系统复位时,电源上来了,看门狗定时器可以捕捉到一个停滞的CPU或错误的固件卡在一个循环。Maxim还生产一些简单的温度测量/控制产品。MAX6501温度开关是一个特别好的备用系统。它们是SOT23器件,当越过固定温度阈值时改变其输出电平。
监控器在充电器应用程序中尤其重要,因为不断的应用和移除充电器的电源可能会混淆CPU。例如,如果处理器停止运行,无法终止快速充电,结果可能是灾难性的。该系统还应包括温度传感器或其他硬件覆盖,可以在没有软件干预的情况下结束快速充电。一些Maxim的sot23复位监控器包括一个看门狗(见MAX823)。
硬件和软件示例
MAX846A锂+充电器,充电定时器和led状态输出,由8针PIC控制
在这个例子中,一个小的外部µP增强了MAX846A,形成了一个完整的桌面充电器系统,包括用户界面功能,如图8中的led(指示充电过程和状态)。MAX846A就是为这种操作而设计的。其辅助线性稳压器和µp复位电路(支持外部µC)降低了典型桌面充电器应用的成本。
图8。带有LED状态指示灯的Li+台式充电器。
基于max1647的2A锂+充电器,8051µC
全功能的MAX1647充电器和8051µC构成了一个全功能的Li+充电器(图9)。图中所示的Atmel 80C2051控制器(小封装中的不可扩展8051)是需要高端充电器的系统中通常可用的典型控制器。该应用程序的源代码包括SMBus通信、通用状态机结构和其他有用的例程。在“其他软件”下查找LI1647.doc和PIC846.doc。充电器状态可以从UART读取,也可以通过µP中的附加软件读取。
图9。全功能的Li+充电器。
软件示例为MAX1647和MAX846A充电器
MAX1647和MAX846A示例(图9)的软件可在Maxim的网站上获得。MAX846A软件用于8引脚PIC12C508控制器,采用Microchip PIC汇编语言编写。它实现了一个LED用户界面和一个定时器,在达到Li+电压限制后5分钟终止快速充电。这个简单的示例不包括状态机或完整充电器的复杂性,因为大部分功能都可以在几乎独立的MAX846A中获得。
如前所述,该示例依赖于没有中断的有节奏循环结构。
MAX1647示例是用8051汇编代码为Atmel的ATM80C2051编写的,ATM80C2051是8051的20引脚版本。这段代码包括一个通用的状态机结构和用于与MAX1647内部寄存器通信的smbus驱动程序例程。它还结合了一个有节奏的循环结构,但采用80C2051的定时器中断来为所有定时创建一个定时器tick基础。欲了解更多细节,请参阅Maxim网站上的源代码文档。
以下是在万维网和供应商处提供的应用说明和其他资源的简要示例。大多数供应商在网上发布他们的应用程序说明,以便于访问。简单地访问web并在AltaVista搜索引擎中输入µC部件号通常会产生50多个文档。
飞利浦半导体:网站和光盘
AN422:使用8XC751单片机作为I(2)C总线主机
AN428:使用83C752/87C752的ADC和PWM
AN439: 87C751快速NiCd充电器
eee /AN92001:基于P83CE654微控制器的低射频发射应用
英特尔公司:网站和光盘
阿特梅尔公司:网站和光盘
一种基于AT89C2051单片机的数字温度计
24CXXX串行eeprom与AT89CX051单片机接口
AN1263:单片微控制器电磁兼容性设计
AN1262:用于HC05单片机的简单实时内核
AN1256:连接HC05单片机到多通道D/ a转换器
AN1241:连接HC05单片机和串行eeprom
AN1227:使用串行eeprom与HC05 mcu
AN477:无内置adc的单片机的简单A/D转换
微芯片:网站和光盘
AN541:使用PIC16C5X作为智能I(2)C外设
AN546:在PIC 16C73中使用A/D转换器
I(2)C总线主机的软件实现
AN577: PIC16C54A EMI结果
AN552:为16C54实现按键唤醒
AN585: PIC16/17的实时操作系统
AN606:使用PIC16/17的低功耗设计
AN520:低端8位微控制器的比较
视差:第三方网站和工具
如何使用80C51SL KBC实现SMBus控制器,Intel公司应用笔记,1994年11月。
《电池手册》,大卫·林登(编辑),第二版,McGraw Hill文本,1995年1月,ISBN: 0070379211
系统管理总线规范,版本0.95a和1.0,英特尔公司,1995年2月。
智能电池数据规范,1.0版,金霸王公司和英特尔公司,1995年2月。
SMBus BIOS规范,1.0版,英特尔公司,1995年2月。
智能电池选择器规范,0.9版,英特尔公司,1995年4月。
《理解小型微控制器》,作者:James Sibigtroth。由摩托罗拉公司CSIC分部于1990年左右出版。
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308