本技术参考手册 (TRM) 讨论了 BQ76952 器件的模块和外设,以及如何使用它们构建完整的电池包监控器和保护解决方案。有关硬件器件功能和电气规格的详细信息,请参阅 BQ76952 适用于锂离子、锂聚合物和磷酸铁锂电池包的 3 节至 16 节串联高精度电池监控器和保护器数据表 (SLUSE13)。
如果文本块中涉及命令、子命令和数据存储器值,则使用以下表示法:
Other TMs
德州仪器 (TI) 的 BQ76952 是一款高度集成的高精度电池监控器和保护器,适用于 3 节至 16 节串联锂离子、锂聚合物和磷酸铁锂电池组。该器件包含一个高精度监控系统和一个高度可配置的保护子系统,并支持自主式或主机控制型电池平衡。它集成了高侧电荷泵 NFET 驱动器、供外部系统使用的双路可编程 LDO 以及一个支持 400kHz I2C、SPI 和 HDQ 单线标准的主机通信外设。器件特性包含:
BQ76952 产品是一款高度集成的精密电池监控器和保护器,适用于 3 节至 16 节串联锂离子、锂聚合物和磷酸铁锂电池包。高精度电压、电流和温度测量为基于主机的算法和控制提供数据。功能丰富且高度可配置的保护子系统提供了广泛的保护措施,这些保护可以由该器件完全自主地触发和恢复,也可以在主机处理器的完全控制下进行。具有高侧保护 NFET 驱动器的集成电荷泵允许主机与该器件进行通信,即使在 FET 关断时也可以通过保留与电池包的接地连接来实现该通信。包含两个可编程 LDO 供外部系统使用,每个都可独立编程为 1.8V、2.5V、3.0V、3.3V 和 5.0V 的电压,并且每个都能提供高达 45mA 的电流。
BQ76952 器件包含一次性可编程 (OTP) 存储器,供客户在其自己的生产线上设置器件操作。支持多种通信接口,包括 400kHz I2C、SPI 和 HDQ 单线标准。可通过器件上的多个多功能引脚获得多个数字控制和状态数据,包括对主机处理器的中断以及对每个高侧保护 NFET 的主机覆盖的独立控制。提供三个专用引脚用于使用外部热敏电阻进行温度测量,可以对多功能引脚进行编程以用于额外的热敏电阻,除内部裸片温度测量之外,最多支持 9 个热敏电阻。图 3-1 显示了 BQ76952 方框图。
BQ76952 器件支持直接命令和子命令。使用 7 位命令地址访问直接命令,该地址从主机通过器件串行通信接口发送,并触发操作,或提供待写入器件的数据值,或指示器件向主机报告数据。子命令是使用 7 位命令地址空间间接访问的附加命令,并提供了块数据传输功能。启动一条子命令时,首先将 16 位子命令地址写入 7 位命令地址 0x3E(低位字节)和 0x3F(高位字节)。该器件最初假设可能需要读回数据,并将现有数据自动填充到 32 字节的传输缓冲区(使用 7 位命令地址 0x40–0x5F)中,并将该数据的校验和写入地址 0x60。如果主机打算向器件写入数据,主机会将新数据覆盖到传输缓冲区,将数据的校验和写入地址 0x60,并将数据长度写入地址 0x61。一旦写入地址 0x61 ,该器件会检查写入 0x60 的校验和与写入 0x40-0x5F 的数据,如果正确,则继续将数据从传输缓冲区传输到器件的存储器中。校验和是子命令字节(0x3E 和 0x3F)8 位和加上传输缓冲区中使用的字节数,然后将结果按位反转。只有在写入数据长度之后才能进行验证,以便该器件知道传输缓冲区中包含多少字节。校验和和数据长度必须作为一个字一起写入才能有效。数据长度包含 0x3E 和 0x3F 中的两个字节,0x60 和 0x61 中的两个字节,以及传输缓冲区的长度。因此,如果使用整个 32 字节的传输缓冲区,则数据长度将为 0x24。
一些子命令仅用于启动操作,而不涉及发送或接收数据。在这些情况下,主机可以简单地将子命令写入 0x3E 和 0x3F,不需要写入长度和校验和或任何其他数据。
命令和子命令 中描述了该器件支持的命令。单字节命令是直接命令,而两字节命令是子命令。数据格式 中描述了数据格式。
从子命令中读取数据的最有效方法(最大程度地减小总线流量)如下所示:
一种更简单、但总线流量效率较低的方法是:
注意:0x61 提供缓冲区数据的长度加 4(即缓冲区数据的长度加 0x3E 和 0x3F 的长度加 0x60 和 0x61 的长度)。
校验和是通过 0x3E、0x3F 以及缓冲区数据计算得出的,它不包括 0x60 和 0x61 中的校验和或长度。
如果同时读取校验和和长度,那么在某些情况下会触发自动递增,在这种情况下,缓冲区将填充另一个块的数据。因此,一般来说,除非已读取缓冲区或希望实现自动递增,否则不应同时读取校验和和长度。
表示为 RSVD_0 的命令或子命令位只能写为“0”,而表示为 RSVD_1 的位只能写为“1”。
BQ76952 器件包含寄存器,这些寄存器存储在 RAM 中,并被集成在一次性可编程 (OTP) 存储器中。初始上电时,该器件将 OTP 设置加载到寄存器中,供器件固件在运行期间使用。如果发送了 0x0012 RESET() 子命令,该器件还可以按需执行复位。推荐的程序是客户在生产线上将设置写入 OTP,在这种情况下,只要该器件上电,就会使用这些设置。或者,主机处理器可以在上电后初始化寄存器,而不使用 OTP 存储器,但在该器件每次上电后都需要重新初始化寄存器。当该器件处于 NORMAL、SLEEP 或 DEEPSLEEP 模式时,寄存器值会被保留。如果该器件进入 SHUTDOWN 模式,则所有寄存器存储器被清除,再次上电后该器件将恢复默认参数。
BQ76952 器件中的 OTP 存储器最初为全零。每个位都可以保留为“0”或写入“1”,但无法从“1”写回“0”。OTP 存储器包括数据存储器配置设置的两个完整映像。上电时,该器件会将第一个 OTP 映像中的每个设置与第二个 OTP 映像中的相应设置以及相应设置的默认值进行异或运算,并将结果值存储到 RAM 寄存器中以供运行期间使用。这允许使用第一个映像将任何设置更改为默认值以外的值,然后使用第二个映像更改回至默认值。OTP 存储器还包含一个 16 位签名,该签名通过大多数设置计算得出并存储在 OTP 中。当该器件上电时,它将读取 OTP 设置并检查签名是否与存储的签名匹配,以防止读取中的位错误或存储器损坏。如果检测到签名错误,该器件将引导至默认配置(就像清除 OTP 一样)。
该器件支持多达 8 个不同的签名值,因此可以对 OTP 进行多达 8 个部分的更改,并相应地更新签名。OTP 签名不包括制造数据(可使用 0x0070 MANU_DATA() 子命令获取),也不包括任何被写入 OTP 的 PF 状态数据(可使用 0x0053 SAVED_PF_STATUS() 子命令进行读取)。
通常在该器件组装到 PCB 之后,但在电芯连接到电路板之前写入 OTP 内存设置。根据规范,对 OTP 存储器设置进行编程要求在 BAT 引脚上施加电压并且温度处于允许的范围之内。首先使用串行通信接口将所有的配置设置加载到寄存器中(请参阅Chapter10)。可以发送 0x00A0 OTP_WR_CHECK() 子命令来启动自检,以确定是否可以完成 OTP 写入。发送此子命令时,该器件必须处于 FULLACCESS 和 CONFIG_UPDATE 模式。表 4-1 显示了该器件返回的 0x00A0 OTP_WR_CHECK() 信息。
字节 0 | ||
---|---|---|
位 | 名称 | 说明 |
7 | ProgrammingOK | 如果设置了该位,则满足编程条件,并且不会设置该字节中其余的任何位。 |
6 | 保留 | |
5 | 已锁定 | 该器件未处于 FULLACCESS 和 CONFIG_UPDATE 模式,或已设置 OTP 锁定位以防止进一步修改。 |
4 | No_SIG | 无法写入签名(表明已过多次地写入该签名)。 |
3 | No_DATA | 无法对数据进行编程(表明已过多次地对数据进行编程;没有剩余异或位)。 |
2 | HighTemp | 测得的内部温度高于允许的 OTP 编程温度范围。 |
1 | LowVoltage | 测得的电池组电压低于允许的 OTP 编程电压。 |
0 | HighVoltage | 测得的电池组电压高于允许的 OTP 编程电压。 |
字节 1、2 | ||
如果设置了字节 0 位 3,那么字节 1 和字节 2 将包含第一个无法编程的数据值地址的 LSB 和 MSB。 |
如果自检成功,则可以通过发送 0x00A1 OTP_WRITE() 子命令来启动实际的 OTP 写入。该子命令提供与上述 0x00A0 OTP_WR_CHECK() 子命令相同的反馈,如果编程成功完成,则设置字节 0 位 7。OTP 编程时间取决于必须编程的字节数,器件每编程一个字节大约需要 200μs。
如果设置了 Settings:Manufacturing:Mfg Status Init[OTPW_EN] ,则提供了特殊的例外情况,允许在正常运行期间将制造数据和 PF 状态数据编程到 OTP 中。
无符号整数以小端字节序的顺序存储为 1 字节、2 字节或 4 字节值,无需更改。
0 |
U1 MSB |
0 | 1 |
U2 LSB | U2 MSB |
0 | 1 | 2 | 3 |
U4 L LSB | U4 L MSB | U4 H LSB | U4 H MSB |
整数值采用二进制补码格式以小端字节序的顺序存储为 1 字节、2 字节或 4 字节值。
0 |
I1 MSB |
0 | 1 |
I2 LSB | I2 MSB |
0 | 1 | 2 | 3 |
I4 L LSB | I4 L MSB | I4 H LSB | I4 H MSB |
使用 IEEE754 单精度 4 字节格式以小端字节序的顺序存储浮点值。
0 | 1 | 2 | 3 |
Fract [0–7] | Fract [8–15] | Exp[0] + Fract[16–22] | 符号 + Exp[1–7] |
其中:
Exp:以 127 的偏移偏置存储的 8 位指数。 00 和 FF 这两个值具有独特的含义。
Fract:23 位小数。如果指数大于 0,则尾数为 1.fract。如果指数为 0,则尾数为 0.fract。
浮点值取决于指数的独特情况:
位寄存器定义以无符号整数格式存储。