虽然更高的电池容量延长了设备的使用时间,但如何缩短充电时间,这给设计人员带来了额外的挑战。快速充电适用于广泛的设备,包括消费电子、医疗和工业应用。本文分为两部分,概要介绍与实现电池快速充电功能相关的挑战。
第1部分探讨在主机和电池包之间分隔充电器和电量表,以提高系统的灵活性、尽可能降低功耗,并提升用户的总体体验。此外,还介绍设备包含的监测功能,确保实现安全充电和放电。
第2部分详细探讨如何使用评估套件和树莓派板实现电池并联的快速充电系统。
第一部分
在如今这个移动设备当道的时代,电池寿命是影响用户体验的主要因素之一。在设备内部集成省电技术非常重要,但这只是解决方案的一部分。随着移动设备的功能不断增多,其对电力的要求也不断提高,原始设备制造商(OEM)也尝试大幅提高电池容量,以此延长电池的使用寿命。
例如,1S2P(1个电池串联,2个电池并联)这类架构开始风行,通过使用两个并联电池来提高总电池容量。提高电池容量带来的问题就是充电时间随之延长。为了尽可能缩短充电时间,电池技术不断改善,将充电电流从2C增大到3C或6C(也就是说,xC是1小时内通过电池的额定电流的x倍)。例如,2000 mAh电池在不对电池可靠性产生不利影响的情况下,会消耗最高12 A充电电流。
对于高电流需要特别注意,确保安全充电和放电。将电池并联使用时,开发人员还需要考虑电阻和初始容量的不匹配。在本系列文章的第1部分,我们概要介绍在所有类型的设备中提供电池快速充电功能时遇到的挑战,包括消费电子、医疗和工业应用。
我们还将探讨如何为高性能1S2P电池充电,如何在主机和电池包之间分隔充电器和电量表,以提高系统的灵活性,尽可能降低功耗,并改善整体用户体验。
充电器基础知识,以及为何电量计位置分区非常重要
电池充电系统的关键元件包括充电器本身,以及报告电池指标的电量计,例如电池的充电状态(SOC)、剩余电量使用时间和电池充满所需时间。电量计可以集成在主机端,或者集成在电池包中(参见图1-1)。
图1-1. 电池电量计可以集成在主机端,或集成在电池包中。
集成在电池包中时,电量计需要使用非易失性存储器来存储电池信息。电源路径中的MOSFET监测充电/放电电流,保护电池免于遭受危险状况。MAX17330 是ADI公司提供的电池电量计,内置保护电路和电池充电器功能(参见图1-2)。
图1-2. 包含充电MOSFET调节功能的电量计框图。
充电MOSFET可以精细调节,以实现线性充电器,在充电电源限制为5 V,充电电流在500 mA范围内时,该器件可以独立使用。由于锂电池在99%充电曲线中的充电电压都超过3.6V,因此功耗受到限制。
在充电器前面连接降压转换器来调节其输出电压,这样就可使用高压充电电源和高充电电流(参见图1-3)。同时还可以充分减少压降,从而降低充电MOSFET的功耗(参见图1-4)。
图1-3. 高压/高电流快速充电系统框图。
图1-4. 使用降压转换器来调节输出电压,以高效实现10 A充电电流。图中所示的是MAX20743降压转换器,VIN = 12 V。
在电池包中集成电量计会使电池变得智能,能够用于先进充电场景,实现先进充电功能。例如,电量计可在其非易失性存储器中存储适合电池包中电池的充电曲线参数。因此无需通过主机微控制器单元(MCU)充电。现在,主机MCU仅需管理来自电池包的ALRT信号,根据收到的警报类型增大/降低降压转换器的输出电压。
CP: 热限制 → 降低电压。
CT: MOSFET温度限制 → 降低电压。
Dropout: →增大电压。
CP是一种标志,当流经保护MOSFET的电流影响散热性能时,该标志置位。CT是一种标志,在MOSFET温度过高时置位。热限制和MOSFET限制设置使用nChgCfg1寄存器组进行配置。
可编程降压转换器(例如 MAX20743 )使用PMBus来精细调节输出电流。降压转换器中的集成式MOSFET支持高达10 A的充电电流。此外,由于PMBus使用I2C作为其物理层,可以使用单个I2C总线来管理降压转换器和电量计。
以下示例展示一种为单个3.6 V锂电池充电的方式。图1-5显示充电系统中电压和电流的时域形状。具体来说,该图显示了电池电压、电池电流和降压转换器的输出电压。
图1-5. 单个电池快速给3.6 V锂电池充电。
可以看出,降压转换器的输出(VPCK)设置为高于电池电压50 mV。该输出电压会持续增大,以免造成压差,且尽可能降低总功耗。
电池安全管理
由于快速充电期间的电流很高,OEM必须要确保安全充电。因此,作为整个电池管理的一部分,智能快速充电器必须能够监测多个重要参数。例如,在根据电池制造商规格和建议监测电池温度和环境/室温的情况下,快速充电器可以确定何时降低充电电流和/或降低端电极电压,以确保电池安全,延长电池的使用寿命。
可以根据温度调节电压和电流,以符合六区JEITA温度设置要求(参见图1-6),且基于电池电压进行三区步进充电。
图1-6. 6区JEITA温度范围。
使用步进充电曲线,根据电池电压改变充电电流,可以进一步延长电池的使用寿命。图7显示使用3个充电电压和3个相应的充电电流的步进充电曲线。可以通过状态机来管理各级之间的转换(参见图1-7)。
图1-7. 步进充电曲线,使用状态机来管理各级之间的转换。
注意,电流、电压和温度都是相互关联的(参见表1-1和表1-2)。
表1-1. 充电电流,支持步进充电和JEITA
表1-2. 充电电压,支持步进充电和JEITA
并联充电
多电池并联充电需要额外管理。例如,当两个电池的电压相差超过400 mV时,充电器必须防止出现交叉充电。只有当最低电池电量太低,无法支持系统负载时,才容许在有限的时间里进行交叉充电(参见表1-3和图1-8)。
表1-3. FET逻辑管理
图1-8. 为了防止交叉充电,当电池ΔV >400 mV,会阻止电压更高的电池放电。
将充电和电量计功能从主机端移动到电池包一端,可以单独控制1S2P配置中的每个电池。因此不需要由主机MCU完全管理充电,而是智能充电器本身根据优化充电曲线来管理其输出。由于主机端的管理只是管理电量计生成的ALRT信号,所以系统能够轻松采用不同的电池包。
必要时,智能充电器还可以阻止充电和放电,以防出现交叉充电。这种方法无需考虑电池不匹配问题,提高了典型快速充电系统的灵活性。借助快速电池充电技术,除了简化设计和整个充电流程之外,OEM还可以充分降低功耗,确保广泛应用的充电和放电安全,并改善用户体验。
第二部分
通过在电池包中实现电量计功能,原始设备制造商(OEM)可以设计智能快速充电器,从而提高系统灵活性,更大限度地降低功耗,确保安全充电/放电,并改善整体用户体验。在本部分中,我们将详细探讨如何使用评估套件和树莓派板实现电池并联的快速充电系统。
评估1S2P架构
评估简单充电系统并测试其功能,通常可以使用评估套件来完成。这些套件包括配置充电系统所需的所有硬件和软件应用,以及基于图形用户界面(GUI)的工具和API。
但相应地,包含多个单元的复杂系统的相关评估工作也更加繁琐。复杂系统中可能有多个器件需要进行表征。开发人员将需要编写一些软件代码来读取系统不同部分生成的信号,对其进行分析,并采取行动。MAX17330 可帮助管理包含两节锂离子电池的并联电池快速充电系统。如数据手册所述,MAX17330可用于同时对两节锂离子电池进行充电和控制。该系统需要两个MAX17330 IC,每个IC管理一节锂离子电池,以及一个能够即时调整输出电压的降压转换器(如 MAX20743 )。
该系统还需要使用一个微控制器来配置和管理电池充电,以及处理两个IC之间的通信。本文选择的树莓派板是系统测试中普遍使用的平台,此外我们选用Python作为编程语言。树莓派通过I2C管理通信,并记录有助于评估和调试的重要系统参数,包括充电电流、电池电压和电池荷电状态(SOC)。这些数值均存储在Excel文件中,方便进行离线分析。
测试1S2P架构
本节将介绍如何测试充电器和电量计(MAX17330)。本节还会说明并联充电可达到的实际性能。为了获得更大的灵活性和可控性,该器件由微控制器通过I2C进行编程。
图2-1显示了1S2P系统架构以及评估两节并联电池充电所需的连接。树莓派控制三个EVKIT:一个MAX20743EVKIT(降压转换器)和两个 MAX20743EVKIT (充电器+电量计)。数据记录在Excel文件中。
图2-1. 使用树莓派的1S2P充电系统评估架构
可从MAX17330产品页面的"工具和仿真"选项卡中下载并使用基于GUI的MAX17330评估套件软件。使用配置向导(从"器件"选项卡中选择)可为MAX17330生成初始化文件(.INI)。INI文件中包含寄存器地址/寄存器值格式的器件寄存器初始化信息。微控制器需使用该文件来逐个配置MAX17330中的寄存器。
MAX17330X2EVKIT 数据手册详细说明了生成初始化文件所需的各个步骤。图2-2所示的配置用于启动并联充电。接下来可按图2-3中的配置启用步进充电。图2-4显示了基于图2-3配置步进充电后的预期步进充电曲线。
图2-2. 配置MAX17330进行并联充电
图2-3. 启用步进充电
图2-4. 基于图3来配置步进充电的预期步进充电曲线
MAX20734 降压转换器可在需要时提高两个MAX17330EVKIT上的电压。MAX20734降压转换器根据地址0x21处的内部寄存器值改变输出电压。降压转换器可以通过I2C控制;已编写一个Python类来执行此操作。
最后,如图2-5所示,MAX20743EVKIT输出分压器被修改,输出范围为3 V至4.6 V(使用的值为R6 = 4K7和R9 = 1K3)。
图2-5. 输出分压器已被修改,输出范围为3 V至4.6 V(R6 = 4 K7且R9 = 1 K3)
表2-1. MAX20743基于寄存器0x21的转换输出电压
从表2-1可以得出如下曲线:
其中,x为要在输出端施加的电压。虽然这种方法会有轻微误差,但也是根据电压估算所需寄存器值的好方法。
上电与初始化
当MAX17330首次连接电池时,默认寄存器值设置强制IC进入关断状态。要唤醒器件,请按PKWK按钮。这将使临时保护MOSFET短路,从而唤醒两个MAX17330EVKIT。
接下来,树莓派需要通过I2C与所有三个器件通信。小心地初始化I2C硬件,避免器件地址冲突。默认情况下,两个MAX17330EVKIT使用相同I2C地址。第一步是更改两个电量计之一的地址。
MAX17330兼有易失性和非易失性寄存器,非易失性寄存器以"n"前缀标识。这也导致产生一对节点地址:6Ch(易失性寄存器)和16h(NV寄存器)。
改变MAX17330器件节点地址的方法有两种:
使用I2CSid字段设置nPackCfg NV寄存器。此更改可以利用配置向导设置。参见表3。
I2CCmd 寄存器支持动态更改I2C总线。参见表2-2~2-4。
表2-2. MAX17330寄存器
表2-3. nPackCfg (1B5h)寄存器格式
表2-4. I2CCmd (12Bh)寄存器格式
为了便于使用,我们采用第二种方法来改变地址,这样可以使用同一INI文件来初始化两个器件。生成两个器件的通用设置可以简化器件配置,并消除有关手动输入地址的用户错误。
由于两个MAX17330器件共用同一I2C总线,因此该程序要求将一个器件的ALRT信号设置为低电平,并将另一个设置为高电平。
表2-5. I2C ALRT设置
表2-4中的数据来自MAX17330数据手册,显示了I2CCmd寄存器如何根据ALERT GPIO引脚值动态更改器件地址。在这种情况下,可使用GoToSID和INcSID字段更改I2C地址:
► Set ALRT_A logic low
► Set ALRT_B logic high
► Write I2CCmd = 0 × 0001
→ MAX17330_A address remains at 6Ch/16h
→ MAX17330_B address set to ECh/96h
每个器件都分配有唯一的地址后,整个系统便可以由单个微控制器控制。
下面是微控制器完成I2C配置的脚本。这将是系统初始化的一部分。
► Load .INI file
► Assert ALRT_A and ALRT_B to keep the path between SYSP and BATTP open
► Read VBATT_A and VBATT_B
► VMAX = max (VBATT_A, VBATT_B)
► Set VOUT = VMAX + 50 mV
► Release ALRT_A and ALRT_B
► Set nProtCfg.OvrdEn = 0 to use ALRT as Output
参见表2-6。
表2-6. nProtCfg (1D7h)寄存器格式
非易失性空间中的某些寄存器需要重启固件才能使更改生效。因此,需要执行以下步骤:
► 置位Config2.POR_CMD以重启固件
参见表2-7。
表2-7. Config2 (OABh)寄存器格式
接下来,我们需要启用充电器的中断:
► 设置(Config.Aen和Config.Caen)= 1
参见表2-8。
表2-8. Config (O0Bh)寄存器格式
现在器件已初始化。
记录数据和中断
我们需要能够读取寄存器以记录数据,并检查ALERT GPIO线上是否已生成中断。我们可以使用如下脚本:
► 设置500 ms定时器
► VMIN = min (VBATT_A, VBATT_B)
► Vsys_min = nVEmpty[15:7]
► CrossCharge = False
► If (VMIN
评估最小电池电压是否超过系统的最小工作电压
► If FProtStat.IsDis = 0
检测到充电信号
► Clear Status.AllowChgB
向所有电池表明充电器存在
► If (VBATT > VMIN + 400 mV and !Cross Charge)
确定要阻止哪个电池以避免交叉充电
Config2.BlockDis = 1
else
Config2.BlockDis = 0
如果低电量电池远低于高电量电池,则允许放电
参见表2-9~2-11。
表2-9. FProtStat (0DAh)寄存器格式
表2-10. Status (000h)寄存器格式
表2-11. Config2 (0ABh)寄存器格式
当MAX17330置位ALRT信号时,主机将执行以下操作:
Read Status register data
If Status.CA is set
Read ChgStat register
If ChgStat.Dropout = 1 → increase VOUT
If (ChgStat.CP or ChgStat.CT) = 1 → decrease VOUT
Clear Status.CA
参见表2-12~2-13。
表2-12. 状态寄存器(000h)格式
表2-13. ChgStat (0A3h)寄存器格式
图2-6显示了从Excel文件的记录数据提取的并联充电曲线。请注意该曲线随步进充电曲线的变化情况。
图2-6. 并联充电曲线
另外,一旦器件从恒流(CC)阶段转为恒压(CV)阶段,降压转换器生成的电压可以降低如下:
► If VBATT = ChargingVoltage
以上就是管理1S2P充电配置所需的所有步骤。MAX17330-usercode.zip 中包含了配置降压转换器(MAX20743)以及充电器和电量计(MAX17330)的Python代码。其中还包含了用于捕获重要充电参数和评估步进充电曲线的Excel数据日志。通过管理MAX17330产生的警报信号,微控制器可保持MAX17330的线性充电器接近压差,从而更大限度地降低功耗并支持高充电电流。使用MAX17330的电池包可存储已安装电池的参数,以便主机微控制器实现高效快速充电。这使得OEM可以用更简单、更便宜的降压转换器取代标准充电器IC器件,而不影响性能或可靠性。
设备充电时间是最重要的用户体验考量因素之一。MAX17330降压转换器采用小型IC封装,可以有效管理非常高的电流,从而缩短充电时间。通过采用两个MAX17330等的方式可支持以高电流并联充电,让开发人员能够以安全可靠的方式为多个电池充电,从而大幅节省充电时间。
编辑:黄飞
Read ChgStat Register
If ChgStat.CV = 1 → decrease VOUT until VPCK = ChargingVoltage + 25 mV
评论
查看更多