特点
•1系列锂离子电池燃油表应用
•驻留在系统主板上
–使用嵌入式或可拆卸的电池组
•使用PACK+、PACK-、和T电池
•端子
微控制器外设提供:
–精确的蓄电池燃油表
–系统内部温度传感器温度报告
–电池电量低中断警告
–电池插入指示器
–96字节的非易失性记事本闪存
•基于专利的蓄电池燃油表阻抗轨道™ 技术
–模拟电池放电曲线空预测的准确时间
–自动调整电池老化,电池自放电,以及温度/速率低效率
–低值感测电阻器(10 mΩ或者以下)
•I2C™ 连接到系统的接口微控制器端口
•12针2.5毫米×4毫米子封装
应用
•智能手机
•PDA系统
•数码相机和摄像机
•手持终端
•MP3或多媒体播放器
说明
德州仪器bq27500系统侧锂离子电池燃料表是一个微控制器外围设备,为单电池锂离子电池组提供燃料计量。该设备不需要系统微控制器固件开发。bq27500位于系统主板上,管理嵌入式电池(不可移动)或可移动电池组。
bq27500使用专利阻抗轨道™燃油计量算法,并提供信息如剩余电池容量(毫安时),充电状态(%)、运行至空(分钟)、电池电压(mV)和温度(℃)。
使用bq27500测量蓄电池燃油表只需要组件+(P+)、组件-(P-)和热敏电阻(T)连接到可移动电池组或嵌入式电池。
一般说明
bq27500精确预测了单个锂基可充电电池的电池容量和其他运行特性。它可以被系统处理器询问以提供小区信息,例如充电状态(SOC)、清空时间(TTE)和充满时间(TTF)。
通过一系列称为标准命令的命令访问信息。其他扩展命令集提供了更多功能。由通用格式命令()指示的这两组命令用于读取和写入bq27500控制和状态寄存器及其数据闪存位置中包含的信息。命令使用bq27500 I2C串行通信引擎从系统发送到仪表,并可在应用程序开发、组件制造或终端设备操作期间执行。
单元信息存储在非易失性闪存的bq27500中。在应用程序开发期间,可以访问其中许多数据闪存位置。在终端设备运行期间,不能直接访问它们。访问这些位置可以通过使用bq27500配套评估软件、通过单个命令或通过一系列数据闪存访问命令来实现。要访问所需的数据闪存位置,必须知道正确的数据闪存子类和偏移量。
bq27500提供96字节的用户可编程数据闪存,分为三个32字节块:制造商信息块A、制造商信息块B和制造商信息块C。该数据空间通过数据闪存接口访问。
bq27500高精度燃油计量预测的关键是德州仪器的专有阻抗轨迹™ 算法。此算法使用电池测量、特性和属性来创建充电状态预测,在各种操作条件下和电池的整个使用寿命内,该预测可实现小于1%的误差。
bq27500通过监测位于系统车速传感器和蓄电池组端子之间的一个小值串联感应电阻器(5 mΩ至20 mΩ,典型值)上的电压来测量充电/放电活动。当电池连接到bq27500时,根据电池电流、电池开路电压(OCV)和负载条件下的电池电压计算电池阻抗。
bq27500外部温度传感采用高精度负温度系数(NTC)热敏电阻(R25=10.0K±1%,B25/85=3435K±1%)进行优化(如Semitec NTC 103AT)。bq27500也可以配置为使用其内部温度传感器。使用外部晶体管时,还需要在BT/TOUT和TS引脚之间安装一个18.2k的上拉电阻器。bq27500使用温度监测电池组环境,用于燃料计量和电池保护功能。
为了最小化功耗,bq27500有不同的电源模式:正常、睡眠+、睡眠、休眠和BAT插入检查。bq27500根据特定事件的发生在这些模式之间自动传递,尽管系统处理器可以直接启动其中的一些模式。更多详情见第5.7节,电源模式。
数据命令
标准数据命令
bq27500使用一系列2字节的标准命令来支持系统读取和写入电池信息。每个标准命令都有一个相关的命令代码对,如表4-1所示。由于每个命令由两个字节的数据组成,因此必须执行两个连续的I2C传输,以启动命令功能,并读取或写入相应的两个字节的数据。第7节I2C接口中描述了用于传输数据的其他选项,如假脱机。在正常操作中可以访问标准命令。
数据闪存接口
访问数据闪存
bq27500数据闪存是一种非易失性存储器,包含bq27500初始化、默认、单元状态、校准、配置和用户信息。根据bq27500的工作模式和访问的数据,可以通过几种不同的方式访问数据闪存。
通常由系统读取的数据闪存位置可通过特定指令方便地访问,如第4.1节“数据命令”所述。当bq27500处于非密封或密封模式时,这些命令可用。
然而,大多数数据闪存位置只能通过使用bq27500评估软件或通过数据闪存块传输以非密封模式访问。在开发和制造过程中,必须优化和/或固定这些位置。它们成为黄金图像文件的一部分,然后可以写入多个电池组。一旦确定,这些值通常在终端设备运行期间保持不变。
要单独访问数据闪存位置,必须将包含所需数据闪存位置的块传输到命令寄存器位置,在该位置,可以将信息读取到系统或直接更改。这是通过发送带有数据0x00的设置命令BlockDataControl()(0x61)来完成的。可以直接从BlockData()(0x40…0x5f)读取多达32字节的数据,对其进行外部修改,然后重写到BlockData()命令空间。或者,如果特定位置的对应偏移量用于索引BlockData()命令空间,则可以读取、更改和重写这些位置。最后,一旦整个块的正确校验和被写入block data checksum()(0x60),命令空间中的数据被传输到数据闪存。
有时,数据闪存类大于32字节块大小。在这种情况下,DataFlashBlock()命令用于指定所需信息所在的32字节块。然后由0x40+偏移模32给出正确的命令地址。例如,要访问燃料计量类中的终止电压,将发出DataFlashClass()80(0x50)来设置该类。因为偏移量是48,所以它必须位于第二个32字节块中。因此,发出DataFlashBlock()来设置块偏移量,用于索引BlockData()内存区域的偏移量为0x40+48,模32=0x40+16=0x40+0x10=0x50。
读写子类数据是最长32字节的块操作。如果在写入过程中,数据长度超过最大块大小,则忽略该数据。
写入存储器的所有数据都不受bq27500的限制—燃油表不会拒绝这些值。写入错误的值可能会由于固件程序对无效数据的解释而导致硬件故障。写入的数据是永久性的,因此通电复位确实可以解决故障。
制造商信息块
bq27500包含96字节的用户可编程数据闪存:制造商信息块A、制造商信息块B、制造商信息块C。访问这些内存位置的方法略有不同,具体取决于设备是处于未密封模式还是密封模式。
当处于非密封模式且当和0x00已写入BlockDataControl()时,访问制造商信息块与访问一般数据闪存位置相同。首先,使用DataFlashClass()命令设置子类,然后使用DataFlashBlock()命令设置子类中第一个数据闪存地址的偏移量。BlockData()命令代码包含引用的数据闪存数据。在写入数据闪存时,BlockDataChecksum()预期会收到一个校验和。只有在接收并验证校验和时,数据才真正写入数据闪存。
例如,制造商信息块B的数据闪存位置被定义为具有子类58和偏移量32到63(32字节块)。在bq27500评估软件中查看数据闪存信息时,类=系统数据的规范不需要针对制造商信息块B,而是用于分组目的。
当处于密封模式或当0x01 BlockDataControl()不包含0x00时,数据闪存不再以非密封模式中使用的方式可用。使用DataFlashBlock()命令选择指定的制造商信息块,而不是发出子类信息。使用此命令发出0x01、0x02或0x03将导致相应的信息块(分别为a、B或C)被传输到命令空间0x40…0x5f,以便系统编辑或读取。将校验和信息成功写入block data checksum()后,修改后的块将返回到数据闪存。注:制造商信息块A在密封模式下为只读。
封/启封数据闪存
bq27500实现了一个密钥访问方案,用于在密封、非密封和完全访问模式之间进行转换。每个转换都要求通过Control()控制命令向bq27500发送一组唯一的两个键。密钥必须连续发送,并且它们之间没有其他数据被写入Control()寄存器。注意,为了避免冲突,键必须与表4-2子命令的CNTL DATA列中显示的代码不同。控件()当处于密封模式时,控制状态[SS]位被设置,但当bq27500正确接收解封密钥时,[SS]位被清除。当完全访问密钥被正确接收时,控制状态[FAS]位被清除。
每个级别的两组密钥长度均为2字节,并存储在数据闪存中。解封密钥(存储在解封密钥0和解封密钥1处)和完全访问密钥(存储在完全访问密钥0和完全访问密钥1处)只能在完全访问模式下更新。键的顺序是键1后跟键0。通过Control()命令输入的字节顺序与从部件读取的字节顺序相反。例如,如果解封键的键1和键0返回0x1234和0x5678,则控件()应提供0x3412和0x7856来解封部件。
功能描述
燃油计量
bq27500测量电池电压、温度和电流,以确定电池的荷电状态。bq27500通过感应SRP和SRN管脚之间的小电阻(5 mΩ至20 mΩ类型)上的电压并与电池串联来监测充放电活动。通过对通过电池的电荷进行积分,电池的SOC在电池充电或放电期间进行调整。
通过比较加载前和加载后的充电状态和通过的充电量,可以得出电池的总容量。当施加负载时,通过比较从当前SOC的预定义函数获得的OCV与负载下的测量电压来测量单元的阻抗。OCV和电荷积分的测量确定了电荷的化学状态和化学容量(Qmax)。初始Qmax值取自单元制造商的数据表乘以并行单元的数量。它也用于设计容量的值。bq27500在正常使用电池期间获取并更新电池阻抗曲线。它使用此配置文件以及SOC和Qmax值来确定FullChargeCapacity()和StateOfCharge(),特别是当前的负载和温度。FullChargeCapacity()是指在当前负载和温度下,从充满电的蓄电池获得的容量,直到电压()达到术语电压为止。NominalAvailableCapacity()和FullAvailableCapacity()分别是RemainingCapacity()和FullChargeCapacity()的未补偿(低于C/20)版本。
bq27500有两个flags()函数访问的标志,当电池的SOC降至临界水平时发出警告。当RemainingCapacity()低于SOC1 Set threshold中指定的第一个容量阈值时,将设置[SOC1](充电状态初始)标志。当RemainingCapacity()上升到SOC1 Clear阈值以上时,标志将被清除。bq27500的BAT U LOW引脚自动反映[SOC1]标志的状态。所有单位都是毫安时。
当剩余容量()低于第二个容量阈值SOCF Set threshold时,设置[SOCF](充电状态最终)标志,作为最终放电警告。设置SOCF Set Threshold=0以停用该功能。类似地,当RemainingCapacity()上升到SOCF Clear阈值以上并且已经设置了[SOCF]标志时,[SOCF]标志被清除。所有单位都是毫安时。
阻抗轨道™ 变量
bq27500有几个数据闪现变量,允许用户自定义阻抗轨迹™ 优化性能的算法。这些变量取决于应用程序的功率特性以及单元本身。
加载模式
加载模式用于选择阻抗轨迹的恒流或恒功率模型™ 加载选择中使用的算法(请参见加载选择)。当负载模式为0时,使用恒流模型(默认)。当1时,采用恒功率模型。控制状态的[LDMD]位反映加载模式的状态。
负荷选择
加载选择定义用于计算阻抗轨道中负载补偿容量的功率或电流模型的类型™ 算法。
储量上限
储量上限mAh确定达到0 RemainingCapacity()后,达到终止电压之前,实际剩余容量的大小。对该储量采用空载补偿率。
储量上限mWh
储量上限mWh确定达到0 AvailableEnergy()后,达到终止电压前实际剩余容量的大小。该备用容量采用空载补偿率。
Dsg电流阈值
该寄存器被bq27500中的许多函数用作阈值,以确定实际放电电流是流入还是流出电池。这个寄存器的默认值在表4-7中,这对于大多数应用程序来说应该足够了。该阈值应设置得足够低,以低于任何正常应用负载电流,但足够高,以防止噪声或漂移影响测量。
Chg电流阈值
该寄存器被bq27500中的许多函数用作阈值,以确定实际电荷电流是流入还是流出电池。这个寄存器的默认值在表4-7中,这对于大多数应用程序来说应该足够了。该阈值应设置得足够低,以低于任何正常充电电流,但足够高,以防止噪声或漂移影响测量。
退出电流、DSG放松时间、CHG放松时间和退出放松时间
退出电流用作阻抗轨迹的一部分™ 用于确定bq27500何时从充电方向或放电方向的电流流动模式进入松弛模式的算法。退出电流值在表4-7中设置为默认值,应高于系统的备用电流。
进入松弛模式必须满足以下条件之一:
•|平均电流()|<|退出电流|用于Dsg放松时间•|平均电流()|<退出电流|用于Chg放松时间
在放松模式下大约5分钟后,bq27500试图获取准确的OCV读数。bq27500执行Qmax更新需要dV/dt<4μV/s的附加要求。这些更新用于阻抗跟踪™ 算法。当试图进入松弛模式时,关键是在OCV读数到时放松电池电压,并且电流不高于C/20。
放弃放松时间指定在退出松弛模式之前,平均电流()保持在QuitCurrent阈值以上所需的最短时间。
Qmax 0和Qmax 1
一般称为Qmax,这些动态变量包含活性电池剖面各自的最大化学容量,并通过比较加载前后的荷电状态和通过的荷电量来确定。它们还对应于极低放电率下的容量,例如C/20速率。为了获得高精度,该值在运行期间由bq27500定期更新。根据电池容量信息,化学容量的初始值应在每个默认电池配置文件的Qmax n字段中输入。阻抗轨迹™ 算法会更新这些值,并将它们维护为关联的实际单元格配置文件。
更新状态0和更新状态1
更新状态n寄存器的位0(0x01)表示bq27500已经学习了新的Qmax参数并且是准确的。剩余的位是保留的。位0是由bq27500设置的状态标志。不应修改位0,除非在为特定电池类型(SLUA334)准备优化的默认闪光常数的应用说明中解释了创建黄金图像文件时。位0根据bq27500的需要进行更新。
上一次平均值
bq27500记录每个放电循环开始到结束的平均电流。它将上一次放电循环的平均电流存储在此寄存器中。不应修改此寄存器。仅在需要时由bq27500更新。
平均P上次运行
bq27500记录从每个放电循环开始到结束的平均功率。它将上一次放电循环的平均功率存储在此寄存器中。为了获得正确的平均功率读数,bq27500连续乘以瞬时电流乘以电压()得到功率。然后,它记录这些数据以获得平均功率。不应修改此寄存器。仅在需要时由bq27500更新。
三角电压
bq27500存储短负载峰值和正常负载期间的最大电压差,因此阻抗轨迹™ 该算法可以计算脉冲负载的剩余容量。不建议更改此值。
默认Ra和Ra表
这些表包含编码数据,并且除了默认的Ra表之外,在设备操作期间会自动更新。除了从预先学习的包(创建黄金图像文件的过程的一部分)读取/写入值之外,不应进行任何用户更改。
使用BI/TOUT引脚检测电池在通电或休眠活动期间,或在bq27500必须确定电池是否已连接的任何其他活动中,燃油表应用电池存在测试。首先,BI/TOUT pin进入high-Z状态。在没有电池的情况下,弱的1.8 MΩ上拉电阻器保持引脚高。当电池插入(或已经插入)系统设备时,BI/TOUT引脚被拉低。此状态由燃油表检测,当燃油表通电时,燃油表每秒轮询此管脚。当bq27500读取到接近2.5 V的热敏电阻电压时,假设蓄电池处于断开状态。
温度测量
bq27500通过其TS输入测量蓄电池温度,以便向燃油表的燃油计量算法和充电器控制部分提供蓄电池温度状态信息。或者,它也可以通过其片上温度传感器测量内部温度,但前提是操作配置寄存器的[TEMPS]位被清除。
无论使用哪个传感器进行测量,系统处理器都可以通过调用temperature()函数来请求当前电池温度。
bq27500外部温度传感采用高精度负温度系数(NTC)热敏电阻(R25=10.0K±1%,B25/85=3435K±1%)进行优化(如Semitec NTC 103AT)。bq27500也可以配置为使用其内部温度传感器。使用外部晶体管时,还需要在BT/TOUT和TS引脚之间安装一个18.2k的上拉电阻器。将该热敏电阻连接到bq27500的附加电路信息如第8节“参考示意图”所示。
超温指示
超温:充电
如果在充电过程中,温度()在OT Chg时间段内达到OT Chg阈值,并且平均电流()>Chg电流阈值,则设置标志()的[OTC]位。当温度()降至OT Chg回收时,标志()的[OTC]被重置。
如果OT Chg时间=0,则该功能完全禁用。
超温:放电
如果在放电过程中,温度()在OT Dsg时间段内达到OT Dsg的阈值,且平均电流()≤,则设置标志()的[OTD]位。当温度()降至OT Dsg恢复时,标志()的[OTD]位被重置。–Dsg电流阈值如果OT Dsg时间=0,则功能完全禁用。
充电和充电终止指示
检测电荷终止
为了使bq27500正常工作,电池充电电压必须由用户指定。此变量的默认值为充电电压=4200 mV。
当(1)在连续两个时间段的电流锥度窗口期间,平均电流()小于锥度电流,(2)在相同时间段内,容量的累积变化>0.25毫安时/电流锥度窗口,以及(3)电压()>充电电压-锥度电压时,bq27500检测充电终止。发生这种情况时,标志()的[CHG]位被清除。此外,如果设置了操作配置的[RMFCC]位,则RemainingCapacity()设置为FullChargeCapacity()。
电荷抑制
当PFC=1时,bq27500可指示电池温度何时已降至或升高到预定阈值以下(分别为充电抑制温度低和充电抑制温度高)。在这个模式下,BAT U GD线变高以指示该状态,然后返回到其低状态,一旦电池温度返回到范围[充电抑制温度低+温度高+温度高]。
当PFC=0或2时,系统必须查询bq27500才能确定电池温度。当时,bq27500采集温度。这在使用电池时节省了电池能量,因为在充电模式期间避免了周期性的温度更新。
电源模式
bq27500有不同的电源模式:正常、睡眠、休眠和蝙蝠插入检查。在正常模式下,bq27500完全通电,可以执行任何允许的任务。在休眠模式下,燃油表处于降低功率状态,定期进行测量和计算。在休眠模式下,燃油表处于最低功率状态,但可以通过通信活动或某些I/O活动唤醒。最后,BAT INSERT CHECK模式是一个通电但低功耗的暂停状态,当系统中没有插入电池时,bq27500就位于该状态。
这些模式之间的关系如图5-1所示。
BAT-INSERT-CHECK模式
此模式是一种暂停的CPU状态,当存在适配器或其他电源为bq27500(和系统)供电时,但未检测到电池。当检测到电池插入时初始化活动的开始,包括:OCV测量、断言BAT_GD pin和选择适当的电池配置文件。初始化时间小于2秒。
当bq27500在此模式下暂停时,可以处理系统处理器发出的某些命令。仪表唤醒以处理命令,然后返回到等待电池插入的暂停状态。
正常模式
不在任何其他电源模式时,燃油表处于正常模式。在这种模式下,平均电流(),测量电压()和温度(),并更新接口数据集。还作出了改变国家的决定。此模式通过激活其他电源模式退出。
因为在正常模式下仪表消耗的功率最大,所以阻抗轨迹™ 算法将燃油表保持在该模式的时间最小化。
睡眠+模式
与SLEEP模式相比,SLEEP+模式具有工作中的高频振荡器。可以消除通信延迟。如果启用了此功能(操作配置[SNOOZE]=1),并且平均电流()低于可编程水平的睡眠电流,则会自动输入SLEEP+。
在SLEEP+模式下,bq27500定期进行数据测量并更新其数据集。然而,它的大部分时间都是在空闲状态下度过的。如果任何进入条件被破坏,特别是当(1)与仪表的任何通信活动,或(2)平均电流()高于睡眠电流,或(3)检测到超过IWAKE通过RSENSE的电流时,bq27500退出SLEEP+。
睡眠模式
如果功能启用(操作配置[睡眠]=1),且平均电流()低于可编程水平的睡眠电流,则自动进入睡眠模式。一旦进入休眠模式被确认,但在进入之前,bq27500执行库仑计数器自动校准,以最小化偏移。
在睡眠模式下,bq27500定期进行数据测量并更新其数据集。然而,它的大部分时间都是在空闲状态下度过的。
如果任何进入条件被破坏,bq27500退出睡眠,特别是当(1)平均电流()高于睡眠电流,或(2)检测到通过RSENSE的电流超过IWAKE时。
如果在有充电器的情况下从系统中取出电池(并为仪表供电),阻抗轨迹™ 不需要更新。因此,燃油表进入检查电池插入的状态,并且不继续执行阻抗轨迹™ 算法。
在休眠模式下,燃油表可通过保持SCL线路低电平,暂停长达4毫秒的串行通信。此延迟是正确处理主机通信所必需的,因为燃油表处理器大多在睡眠模式下暂停。
休眠模式
当系统设备需要进入低功耗状态时,应使用休眠模式,并要求仪表功耗最小。当系统设备设置为自己的休眠、关机或关闭模式时,此模式是理想的。
由于电池电压低或负载电流低,燃油表可能进入休眠状态。
•由于电池电压而休眠。当电池电压降到休眠电压以下且已进行有效的OCV测量时,燃油表进入休眠模式控制寄存器的[休眠]位不会影响燃油表进入休眠模式。
•由于负载电流而休眠。如果负载电流下降到一定水平,燃油表也应进入低功率模式。当燃油表由于负载电流进入休眠模式时,必须设置控制状态寄存器的[休眠]位。仪表等待进入休眠模式,直到它采取了一个有效的OCV测量和大小的平均细胞电流已经下降到低于休眠电流。仪表保持休眠模式,直到系统向仪表发出直接I2C命令或出现POR。I2C通信不指向仪表,不会唤醒仪表。
在休眠模式下,BAT U GD被否定(没有电池充电/放电)。这可以防止充电器应用程序在读取OCV读数之前意外地为电池充电。bq27500进入休眠模式后,系统有责任唤醒它。唤醒后,仪表可以继续初始化电池信息(OCV、配置文件选择等)
功率控制
复位功能
当bq27500检测到软件复位(控制位的[复位]已启动)时,它增加相应的计数器。通过使用RESET_DATA子命令发出command Control()函数可以访问此信息。
唤醒比较器
唤醒比较器用于在bq27500处于睡眠或休眠模式时指示单元电流的变化。操作配置使用位[RSNS1–RSNS0]设置感测电阻器选择。操作配置还使用[IWAKE]位为给定的感测电阻器选择两个可能的电压阈值范围之一。当在充电或放电方向达到阈值时,产生内部中断。将[RSNS1]和[RSNS0]都设置为0将禁用此功能。
闪存更新
只有在电压()大于或等于闪存更新时,才能更新数据闪存。正常电压闪光编程电流可导致LDO压降增加。应选择闪光更新正常电压值,以便在闪光写入操作期间,bq27500 VCC电压不会低于其最小值2.4 V。
自动校准
bq27500提供自动校准功能,可在工作条件变化时测量SRP和SRN之间的电压偏移误差。它从正常感测电阻电压VSR中减去由此产生的偏移误差,以获得最大的测量精度。
库仑计数器的自动校准从进入休眠模式开始,除非温度()小于等于5°C或温度()大于45°C。
当(1)平均电流(小于等于100毫安)和(2){上次偏移校准后的电压变化大于256毫伏}或{上次偏移校准后的温度变化大于8°C且大于60秒}时,燃油表也执行单个偏移。
当无法进行这些测量时,在偏移校准期间,容量和电流测量以最后测量的速率继续进行。如果在偏移校准期间电池电压下降超过32 mV,则负载电流可能显著增加;因此,偏移校准中止。
应用程序特定信息
电池配置文件的储存和选择
通用剖面图
当从实施bq27500的主机设备上卸下电池组时,燃油表会保留一些电池信息,以防电池重新插入。这样,阻抗轨迹™ 该算法具有恢复电池状态信息的手段,从而保持良好的荷电状态(SOC)估计。
有两个默认电池配置文件可用于存储电池信息。它们用于提供阻抗轨迹™ 带有两种可能的电池类型的默认信息的算法,预计将与终端设备一起使用。这些默认配置文件可用于支持不同化学、相同化学但不同容量的电池,或相同化学但不同型号的电池。默认配置文件由终端设备制造商编程。但是,只能选择一个默认配置文件,并且在终端设备操作期间不能更改此选择。
除了默认配置文件外,bq27500还维护两个配置文件PACK0和PACK1。这些表保存动态电池数据,并跟踪最多两个最近使用的电池的状态。在大多数情况下,bq27500可以管理两个可移动电池组的信息。
包装插入后的活动
第一次接触网电压和阻抗测量在通电时,BAT_GD pin处于非活动状态,因此主机无法从电池获取电源(这取决于实际的实现)。在此状态下,蓄电池处于开路状态。接下来,bq27500通过BAT引脚测量其第一个开路电压(OCV)。从OCV(SOC)表中,可以看到找到插入电池的SOC。然后激活BAT_GD引脚,并根据测量的电压和负载电流计算插入电池的阻抗:Z(SOC)=[OCV(SOC)–V]/I。将该阻抗与相同SOC(字母n表示0或1)的动态剖面图Packn和默认剖面图Defn的阻抗进行比较。
读取应用状态
应用程序状态数据闪存位置包含单元配置文件状态信息,可以使用Application Status()扩展命令(0x6a)读取。此功能/位置的位配置如表6-1所示。
应用特定流程和控制
简单电池
bq27500只支持一种类型的电池配置文件。此配置文件同时存储在Def0和Def1配置文件中。在第一次仪表启动时,Defn和Packn外形相同。然后阻抗轨迹™ 算法开始燃油计量,随着电池的使用,定期更新Packn。
当从bq27500中移除现有电池组并插入不同(或相同)的电池组时,电池检测后测量电池阻抗(见第6.1.2.1节,第一次接触电压和阻抗测量)。bq27500选择最接近测量阻抗的剖面,开始和Packn的资料。也就是说,如果测量的阻抗与Pack0匹配,则使用Pack0剖面。如果测量的阻抗与Pack1匹配,则使用Pack1剖面。如果测量的阻抗与Pack0或Pack1中存储的阻抗不匹配,则认为电池组是新的(以前使用过的电池组都没有)。Def0/Def1配置文件被复制到Pack0或Pack1配置文件中,覆盖使用的最旧Packn配置文件。
通信
I2C接口
27500支持标准的I2C读取、增量读取、快速读取、单字节写入和增量写入功能。7位设备地址(ADDR)是十六进制地址中最重要的7位,固定为1010101。因此,对于写入或读取,8位设备地址将分别为0xAA或0xAB。
“快速读取”返回地址指针指示的地址处的数据。地址指针是I2C通信引擎内部的寄存器,每当bq27500或I2C主机确认数据时,地址指针就会增加。“快速写入”功能的方式相同,是向连续的命令位置发送多个字节的便捷方式(例如需要两个字节数据的两个字节的命令)不支持以下命令序列:
尝试写入只读地址(主机发送数据后的NACK):
尝试读取0x6B以上的地址(NACK命令):
如果I2C总线保持低t(BUSERR),I2C引擎将释放SDA和SCL。如果bq27500控制着这些线,释放它们将释放主机来驱动这些线。如果外部条件使任一线路保持低电压,I2C发动机将进入低功率休眠模式。
I2C超时
如果I2C总线保持低电平约2秒,I2C引擎将释放SDA和SCL。如果bq27500控制着这些线,释放它们就可以让主机驱动这些线。如果外部条件使任一线路保持低电压,I2C发动机将进入低功率休眠模式。
参考示意图
示意图
包装材料信息