1. 项目概述与核心价值
在移动设备设计领域,电源管理单元(PMU)的性能直接决定了用户体验的“底线”与“上限”。这个底线是设备能否稳定开机、可靠运行,而上限则是充电速度、续航时长以及能否化身“充电宝”为其他设备应急供电。过去,我们常常需要将充电管理、升降压转换和路径管理等功能分散在多个芯片上,这不仅增加了布板面积和BOM成本,更带来了复杂的时序控制和可靠性挑战。今天要深入拆解的德州仪器BQ25890H,就是一款旨在解决这些痛点的“全能型选手”。它是一颗高度集成的I2C可控、5A开关模式电池充电管理芯片,不仅集成了高效的降压充电器,还内置了支持USB On-the-Go (OTG) 的升压转换器,其核心的MaxCharge技术能智能兼容各类高压快充适配器。简单来说,它把给设备快速充电(Buck)和让设备给外界供电(Boost)这两件事,优雅地整合在了一颗4mm x 4mm的小芯片里。
这颗芯片的价值,对于嵌入式硬件工程师和电源系统架构师而言是实实在在的。首先,它通过高达93%的充电效率(2A时)和91%(3A时),将更多的能量送入电池而非转化为热量,这对于追求轻薄化、内部空间紧凑的设备来说,意味着更简单的散热设计和更长的持续快充时间。其次,其窄VDC(NVDC)电源路径架构,保证了即使电池完全没电或缺失,系统也能从适配器直接取电瞬时启动,这极大地提升了产品的可靠性和用户体验。最后,通过I2C接口,我们可以实时监控输入/输出/电池电压、电流和温度,并动态调整充电参数,为实现软件定义的智能充电策略提供了硬件基础。接下来,我将结合数据手册和实际应用经验,为你拆解它的设计思路、关键配置以及那些手册上不会明说的实操细节。
2. 芯片架构与核心功能模块解析
要驾驭一颗功能复杂的电源管理芯片,不能只停留在引脚定义和寄存器列表,必须理解其内部的“交通规则”——即各功能模块如何协同工作。BQ25890H的架构可以看作一个智能的能源调度中心。
2.1 开关模式降压充电器:高效能量的核心
这是芯片的“主引擎”。它采用同步降压(Buck)架构,集成了高侧开关管(HSFET)、低侧开关管(LSFET)和自举二极管。其开关频率为1.5MHz,高频开关允许使用更小体积的电感和电容,有利于小型化。充电过程分为三个阶段:预充电、恒流(CC)和恒压(CV)。当电池电压低于V(LOWV)阈值(典型2.8V)时,芯片以较小的预充电电流(可编程,64-1024mA)对深度放电的电池进行安全恢复。电压升至V(LOWV)以上后,进入恒流快充阶段,电流最高可达5A(通过I2C设置)。当电池电压接近设定的浮充电压(VREG, 3.840V-4.608V可调,16mV/步进)时,转入恒压阶段,电流逐渐减小。当电流低于终止电流(ITERM,可编程)时,充电周期自动终止。
关键点:芯片的恒压精度高达±0.5%,恒流精度在典型条件下为±5%。这意味着在批量生产中,电池的充电终点电压一致性会非常好,对延长电池循环寿命至关重要。
2.2 电源路径管理与NVDC架构
这是体现其“智能”的关键。传统的充电管理是“充电器-电池-系统”串联路径,电池是系统供电的唯一来源。而BQ25890H采用了NVDC(Narrow VDC)路径管理。简单类比,它像一个“智能水坝+水库”系统。
- 系统(SYS)是水坝后的河道,需要维持一个稳定的最低水位(最小系统电压
VSYS(MIN),默认3.5V)。 - 电池(BAT)是水库。
- 输入源(VBUS)是上游来水。
其工作逻辑是:优先使用输入源的水直接供应河道(系统),多余的水存入水库(给电池充电)。当来水不足(输入功率有限)时,会自动从水库抽水补充河道,确保河道不干涸(系统不掉电)。当水库已满或无需充电时,水坝闸门(BATFET)可以近乎关闭,仅维持极小的泄漏电流(运输模式下典型值仅12μA)。这种架构实现了Instant-On功能:即使电池为零或移除,只要接入电源,系统也能立即获得电力。
2.3 USB OTG升压模式:角色反转
当设备需要作为主机为其他USB设备(如耳机、外设)供电时,需要启动OTG模式。此时,芯片内部的开关拓扑从降压(Buck)反转为升压(Boost),将电池电压(最低可至2.5V)提升至可调的5V(范围4.55V-5.55V)输出到VBUS引脚,最大输出电流可达2.4A。升压转换器同样支持500kHz或1.5MHz的可选开关频率,并可在轻载时进入PFM模式以提高效率。
实操注意:启用OTG模式需要同时满足两个条件:通过I2C将
OTG_CONFIG寄存器位置1,并且将OTG引脚拉高。这种“软硬结合”的使能方式增加了安全性,防止误操作。
2.4 MaxCharge技术与输入源智能识别
这是实现“快充”且“安全”的核心。芯片通过D+和D-引脚,自动执行一套复杂的检测协议:
- 数据接触检测(DCD):检查USB端口是否连接了设备。
- BC1.2检测:区分标准下行端口(SDP, 500mA)、充电下行端口(CDP, 1.5A)和专用充电端口(DCP, 无数据, >1.5A)。
- 非标准适配器及高压适配器检测:通过检测D+/D-上的分压或特定电压,识别支持各类快充协议(如QC2.0/3.0)的高压适配器。这就是MaxCharge技术的一部分,它能自动将输入电压限制(VINDPM)适配到检测到的高压值(最高14V),从而最大化输入功率。
输入电流优化器(ICO)是另一个亮点。它会周期性地试探性增加输入电流,同时监测输入电压是否被拉低。通过找到在不导致适配器过载(电压跌落)前提下的最大输入电流点,ICO能动态挖掘适配器的最大输出能力,尤其适用于那些标称参数模糊的非标适配器。
3. 关键外围电路设计与选型要点
数据手册给出了典型应用原理图,但要把芯片用稳,每一个外围元件的选型和布局都藏着学问。
3.1 功率回路元件:电感与电容
功率电感(L1):这是影响效率和温升的关键。对于1.5MHz的开关频率,推荐使用屏蔽式功率电感以减小EMI。
- 电感值计算:通常建议在0.47μH到1μH之间。可以使用公式估算:
L = (VIN - VBAT) * D / (ΔIL * fSW),其中D为占空比,ΔIL为纹波电流(通常取最大充电电流的20%-40%)。例如,VIN=9V, VBAT=3.7V, ICHG=3A, fSW=1.5MHz, 取ΔIL=1.2A(40%), 则D=VBAT/VIN≈0.41, 计算得L≈1.2μH。实践中,1μH是一个常用且稳妥的选择。 - 饱和电流:电感的饱和电流必须大于峰值电流。峰值电流
Ipeak = ICHG + ΔIL/2。上例中,Ipeak = 3A + 0.6A = 3.6A。选择饱和电流至少4.5A以上的电感。 - 直流电阻(DCR):尽可能选择DCR小的电感(如几毫欧级别),以减小导通损耗。
输入/输出电容(C1, C2, C3):
- VBUS电容(C1):必须使用低ESR的陶瓷电容,容值至少1μF,并尽可能靠近芯片VBUS和PGND引脚放置。它用于滤除输入线上的高频噪声,并为瞬间大电流提供缓冲。
- PMID电容(C2):数据手册建议将除C1外的其余输入电容放在PMID到PGND之间。总输入电容推荐值在10μF到22μF之间。使用多个X5R或X7R介质的陶瓷电容并联,以降低ESR和ESL。
- BAT电容(C3):建议使用至少10μF的陶瓷电容,靠近BAT引脚。它用于稳定电池端的电压,吸收充电电流纹波。
- SYS电容(C4):建议使用至少20μF的陶瓷电容,靠近SYS引脚。它为系统负载提供瞬态电流,保持电压稳定。
3.2 检测与配置网络
电流限制电阻(RILIM):连接在ILIM引脚和GND之间,用于设置硬件默认的最大输入电流限制。公式为IINMAX = KILIM / RILIM, 其中KILIM典型值为350 A*Ω。例如,要设置2A的限流, RILIM = 350 / 2 = 175Ω, 就近选择标准值174Ω或180Ω。注意,当通过I2C使能输入电流限制(EN_ILIM=1)时,实际限流值取硬件(ILIM引脚)和软件(IINLIM寄存器)中的较小值。这是一个重要的安全冗余设计。
温度检测网络(TS):连接一个负温度系数(NTC)热敏电阻(如103AT-2)和分压电阻到REGN和GND。芯片内部通过比较TS引脚电压与REGN的百分比来判定温度窗口(如JEITA标准)。分压电阻的选取需要根据热敏电阻的B值和你的温度保护点来计算。例如,要实现0°C(T1)和45°C(T3)的窗口,需要计算在对应温度下热敏电阻的阻值,然后设计分压网络,使得TS电压在0°C时约为REGN的73.25%,在45°C时约为44.75%。
自举电容(CBOOT):连接在BTST和SW引脚之间的0.047μF电容至关重要,它为内部高侧MOSFET的驱动器供电。必须使用高质量、低ESR的陶瓷电容,并紧贴芯片放置。
3.3 PCB布局的黄金法则
开关电源的布局决定了性能上限和EMI水平。
- 功率回路最小化:VBUS输入电容(C1)、芯片的PGND、SW节点、电感、BAT/SYS输出电容构成的功率环路面积必须尽可能小。使用宽而短的走线,最好在顶层用大面积铜皮连接。
- 单点接地(星型接地):将功率地(PGND)和模拟/信号地(AGND)在芯片下方的PowerPAD附近通过一个单点连接。PowerPAD必须充分焊接,并通过多个过孔连接到内部接地层,这是主要的散热路径。
- 敏感信号远离噪声源:I2C线路(SCL, SDA)、TS、ILIM等模拟/数字信号线应远离SW节点、电感和VBUS等高频大电流路径。必要时可采用包地或走在内层进行隔离。
- 去耦电容就近放置:所有为芯片引脚服务的去耦电容(如REGN的4.7μF电容、DSEL的47nF电容)必须尽可能靠近对应引脚,回流路径要短。
4. I2C寄存器配置与软件策略详解
BQ25890H的灵活性很大程度上通过I2C寄存器实现。主机MCU通过读写这些寄存器来监控状态、配置参数、控制功能。这里重点解析几个关键寄存器组。
4.1 充电参数配置寄存器(REG04-REG06)
这是充电行为的“大脑”。
- REG04(充电电流控制):设置快充恒流值(
ICHG)。范围0-5056mA,步进64mA。例如,要设置3A充电,计算:3000mA / 64mA/步进 ≈ 46.875, 取整47。47的二进制为0010 1111, 所以写入REG04[6:0] = 0101111b(0x2F)。注意:实际电流精度受温度和电流大小影响,大电流时精度更高(±5%)。 - REG05(预充与终止电流):
IPRECHG(预充电电流)和ITERM(终止电流)共享此寄存器。通常设置IPRECHG为ICHG的10%-20%,ITERM为ICHG的5%-10%。例如,对于3A快充,可设预充为300mA(≈5%), 终止为150mA(≈2.5%)。 - REG06(充电电压控制):设置电池恒压充电电压(
VREG)。范围3.840V-4.608V,步进16mV。对于标准4.35V的高压电芯,计算:(4.350V - 3.840V) / 0.016V ≈ 31.875, 取整32。32的二进制为100000, 所以写入REG06[7:2] = 100000b(0x40)。BATLOWV位用于设置预充转快充的阈值电压(2.8V或3.0V)。
4.2 输入与系统配置寄存器(REG00-REG03)
这部分管理“能源进口”和“系统供电”。
- REG00(输入电流限制):设置软件输入电流限制(
IINLIM),范围100-3250mA,步进50mA。务必注意:如果EN_ILIM位使能,最终输入限流取IINLIM和ILIM引脚硬件设置的最小值。这是一个安全特性。 - REG01/02(输入电压限制与杂项):
VINDPM(输入电压限制)用于在适配器电压波动时,防止输入电压过低导致系统不稳定。SYS_MIN(REG03)设置NVDC架构中的最低系统电压,默认3.5V,可根据系统核心电压需求调整。
4.3 状态与故障读取寄存器(REG0B-REG0E)
实时监控离不开这些寄存器。
- REG0B(NTC状态):读取TS引脚对应的温度状态(冷、酷、暖、热),用于实现JEITA温度曲线充电(低温/高温降电流降电压)。
- REG0C(充电状态):获取当前处于哪种充电状态(待机、充电中、充电完成、故障等)。
VBUS_STAT和CHRG_STAT位域提供了清晰的状态机信息。 - REG0E(ADC数据):使能ADC后,可以读取转换后的VBUS、SYS、BAT电压,BAT电流和TS电压百分比。这是实现智能功率分配和健康监测的基础。例如,通过监测VBUS电压和输入电流,可以判断适配器带载能力;通过监测BAT电流和电压,可以精确计算输入功率和电池电量。
4.4 软件控制流程示例
一个健硕的上电初始化流程大致如下:
- 硬件初始化:配置MCU的I2C引脚, 确保OTG、CE、QON等控制引脚处于已知状态(如默认禁用OTG, 使能充电)。
- 器件复位与验证:向
REG14写入0x01执行软件复位。延时后,尝试读取器件地址(0x6A)的REG14(默认值0x02),验证通信是否正常。 - 配置充电参数:根据电池规格(容量、化学类型、最大充电电压/电流)设置
REG06(电压)、REG04(快充电流)、REG05(预充/终止电流)。 - 配置输入与系统:根据预期适配器能力设置
REG00(输入限流)和REG01/02(输入限压)。设置REG03的系统最低电压。 - 配置保护与监控:设置
REG07/08的热调节阈值、使能ADC(REG02)、配置NTC分压(REG09)。 - 使能充电:确保CE引脚为低电平,并设置
REG03的CHG_CONFIG=1。 - 主循环监控:定期(如每秒)读取
REG0C状态寄存器,检查充电状态和故障标志。根据需要读取REG0E的ADC数据,进行系统功率管理或UI显示。
5. 高级功能应用:USB OTG与运输模式
5.1 USB OTG功能的实现细节
当需要设备对外供电时,需按序操作:
- 硬件准备:确保VBUS引脚外部没有电压源(即未连接充电器)。将OTG引脚拉高。
- 软件配置:
- 设置
REG0A的BOOSTV位域,选择输出电压(例如,5.0V对应特定值)。 - 设置
REG0A的BOOST_LIM位域,选择输出电流限制(例如,1.2A或2.4A)。 - 将
REG03的OTG_CONFIG位置1。
- 设置
- 使能与监控:完成上述配置后,芯片会自动进入升压模式。此时应监控
REG0C中的VBUS_STAT,确认状态变为“OTG模式”。同时,可以通过ADC监测VBUS输出电压是否稳定在设定值。 - 退出OTG:将OTG引脚拉低,或通过I2C清除
OTG_CONFIG位,即可退出升压模式。
重要提示:在OTG模式下,芯片会持续监测电池电压。如果电池电压低于
V(OTG_BAT)阈值(可配置为~2.8V或~2.6V),芯片会自动关闭升压输出以防止电池过放。这是硬件保护,不可绕过。
5.2 运输模式与系统复位
运输模式用于在设备仓储和运输期间,将电池与系统完全断开,将电池漏电流降至最低(典型12μA)。
- 进入运输模式:通过I2C设置
REG09的BATFET_DIS=1,即可关闭内部的BATFET,断开电池与系统的连接。 - 退出运输模式:有三种方法:1)接入有效电源(VBUS);2)通过I2C清除
BATFET_DIS位;3)将QON引脚拉低并保持约1秒(tSHIPMODE)。方法3是硬件应急唤醒手段,即使主MCU完全失电也能操作。
QON引脚的系统复位功能:在无VBUS(仅电池供电)的情况下,将QON引脚拉低并保持约15秒(tQON_RST),芯片会控制BATFET先关闭约0.3秒再重新开启,从而实现一次完整的系统电源循环复位。这对于调试死机的设备非常有用。
6. 常见问题排查与调试心得
在实际调试中,你大概率会遇到以下问题,以下是我的排查思路:
问题1:上电后无反应,I2C通信失败。
- 检查电源:首先测量VBUS、REGN(应有~6V或~4.8V输出)、BAT、SYS引脚电压是否正常。REGN LDO是芯片内部模拟电路的电源,它的正常是芯片工作的前提。
- 检查I2C上拉:SCL、SDA、INT、STAT引脚都需要外部上拉电阻(通常10kΩ)到逻辑电源(1.8V或3.3V)。确保上拉电源已就绪。
- 检查地址:器件I2C地址为7位地址
0x6A(写地址0xD4,读地址0xD5)。确认主机的寻址和时序正确。 - 检查PowerPAD焊接:虚焊是导致芯片不工作或发热异常的常见原因。用热风枪或烙铁仔细补焊芯片底部散热焊盘。
问题2:插入适配器后,充电电流远低于设定值。
- 确认输入源能力:读取
REG0C的VBUS_STAT,确认芯片识别出的适配器类型是否正确(SDP/CDP/DCP/非标)。如果被识别为SDP(500mA),自然无法进行大电流充电。检查D+/D-线路是否连接正确,或尝试更换一个已知的快充适配器。 - 检查输入限流:确认
REG00的IINLIM设置值足够大,并且EN_ILIM位状态与ILIM引脚硬件电阻设置无冲突。使用ADC读取VBUS电压,如果一带载电压就大幅下跌,可能是适配器输出能力不足或线缆阻抗太大。 - 检查热调节:读取
REG0C的THERM_STAT位。如果芯片结温过高(>120°C),会触发热调节降低充电电流。改善散热条件(检查布局、增加散热孔、使用更厚铜箔)。 - 检查电池电压和状态:如果电池电压已接近设定的
VREG,则会进入恒压阶段,电流自然减小,这是正常现象。
问题3:OTG模式无法启动或输出带载能力差。
- 确认使能条件:必须是
OTG_CONFIG=1且OTG引脚为高电平,两者缺一不可。 - 检查电池电压:确保电池电压高于进入OTG模式的最低阈值(
V(OTG_BAT_EN), 典型3.0V)。电压过低会被硬件禁止。 - 检查输出限流:
REG0A的BOOST_LIM设置了输出电流限制。如果设置过低,带载时可能提前进入限流。 - 监测VBUS电压:在带载时通过ADC读取VBUS电压。如果电压被拉低,可能是电池电量不足、电感饱和或输出电容ESR过大。确保使用饱和电流足够的电力和低ESR的陶瓷电容。
问题4:系统在电池供电时异常重启。
- 检查SYS_MIN设置:
REG03的SYS_MIN设置了系统电压的最低值。如果设置过高(如3.8V),而电池放电至3.7V时,NVDC路径无法再维持SYS电压,会导致系统掉电。通常设置为比系统核心电压(如3.3V)高200-300mV即可,如3.5V。 - 检查电池放电MOSFET(BATFET):其导通电阻仅11mΩ,但在大电流(如6A持续)放电时,其上的压降(I*Rds(on))会消耗一部分电压。确保在最重系统负载下,电池电压减去这个压降仍高于
SYS_MIN。
问题5:ADC读数不准确或跳动大。
- 确保ADC已使能且稳定:在
REG02中使能ADC(CONV_START=1),并等待足够的转换时间(每次转换约200μs)。连续读取时,建议单次触发(CONV_START置1后自动清零)而非连续模式,以减少干扰。 - 注意ADC量程:VBUS ADC量程为15.3V,分辨率100mV;BAT/SYS ADC量程为4.848V,分辨率20mV。计算实际电压时需注意:
电压 = ADC读数 * 分辨率。例如,BAT ADC读数为200,则电压约为200 * 20mV = 4.000V。 - 硬件滤波:在TS、ILIM等模拟引脚,确保按照数据手册建议连接了滤波电容,并远离数字噪声源。
最后,强烈建议在开发初期,利用芯片的INT中断引脚。通过配置REG0A中的相应中断使能位,可以让芯片在状态变化(如充电完成、温度报警、输入源接入/移除)时主动通知MCU,而不是让MCU不断轮询,这能大大降低系统功耗并提高响应速度。电源管理设计,三分靠芯片,七分靠布局和调试,耐心和细致的测量是成功的关键。