TPS65810 PMIC深度解析:集成电源管理与充电控制的嵌入式设计实践

发布时间:2026/7/27 22:05:54
TPS65810 PMIC深度解析:集成电源管理与充电控制的嵌入式设计实践 1. 项目概述一颗芯片搞定系统供电与充电在嵌入式系统尤其是便携式设备的设计中电源管理部分往往是最让人头疼的环节之一。你需要一个充电管理电路给电池充电需要多个LDO给不同的模拟和数字模块供电还需要高效率的DC-DC降压转换器来驱动主处理器和核心逻辑。把这些功能模块用分立器件搭起来不仅占用宝贵的PCB面积复杂的布局布线和时序控制更是对工程师的严峻考验。TI的TPS65810系列电源管理芯片PMIC就是为解决这类问题而生的。它把线性充电器、多达9路的LDO、两路高效率同步降压转换器Buck、甚至一个10位ADC都集成在了一个QFN封装里。我第一次在项目里用这颗芯片时感觉就像找到了一个“电源瑞士军刀”——系统所需的大部分电源轨和充电管理都能通过配置这一颗芯片来实现极大地简化了硬件设计和BOM管理。它的核心价值在于“集成”与“可控”。通过I2C接口你可以动态配置几乎所有关键参数充电电流、充电电压、各路LDO的输出电压和开关、Buck转换器的工作模式PWM/PFM和输出电压甚至还能用内置ADC监控电池电压和温度。这种灵活性对于需要多电压域、且对功耗敏感的应用比如基于Linux的便携式工控设备、手持数据采集终端来说是至关重要的。接下来我将结合手册内容和实际调试经验为你拆解TPS65810的几个核心模块充电与功率路径管理、LDO线性稳压器、以及支持PWM/PFM自动切换的同步降压转换器。我会重点讲清楚每个模块的工作原理、配置要点以及那些数据手册上不会写但实际调试中一定会遇到的“坑”。2. 核心模块一充电与功率路径管理2.1 系统供电逻辑与外部元件选型TPS65810的供电输入有三个来源AC适配器AC引脚、USB端口USB引脚和电池BAT引脚。芯片内部有一个智能的“功率路径管理”逻辑其核心目标是优先使用外部电源为系统供电并为电池充电无外部电源时则无缝切换至电池供电且切换过程系统电压OUT引脚保持稳定。从手册的框图和典型应用电路可以看出要实现这个功能外围必须连接几个关键元件输入电容C1 10μF靠近AC和USB引脚用于滤除输入电源的噪声和提供瞬时电流。建议使用低ESR的陶瓷电容。系统输出电容C2 10μF连接在OUT引脚。这是整个系统的“能量水池”其稳定性直接影响系统电压的纹波。同样推荐低ESR的陶瓷电容。充电电流设置电阻R_SET 1kΩ连接在ISET1引脚和地之间。这个电阻决定了恒流充电阶段的电流大小。计算公式为I_CHG K / R_SET其中K是一个由芯片内部决定的常数典型值在数据手册中给出。例如要实现1A的充电电流就需要根据公式计算并选取对应的电阻值。这里有个细节电阻精度建议为1%温度系数要好否则充电电流会漂移。DPPM动态电源路径管理分压电阻R_DPPM 37.4kΩ连接在DPPM引脚。这个电阻与内部电路共同设定了一个电压阈值如示例中的4.3V。当适配器电压因负载过大而下降时一旦系统总线OUT电压低于此阈值芯片会降低充电电流优先保障系统供电。这是防止插着充电器却因为系统负载过大导致设备重启的关键机制。电池温度检测网络R_NTC 50kΩ NTC R_TMR 49.9kΩ通过TS引脚连接电池包内的NTC热敏电阻。这个网络用于监测电池温度在温度过高如65°C或过低如5°C时暂停充电确保安全。实际应用时必须根据你选用的具体NTC型号的B值来精确计算这两个电阻的阻值以确保温度保护点准确。2.2 充电流程与I2C寄存器配置充电过程分为几个阶段完全由芯片内部控制但关键参数可通过I2C配置涓流预充Trickle Charge当电池电压低于一个安全阈值通常约3.0V时芯片以小电流例如快充电流的10%对电池进行预充唤醒深度放电的电池。恒流快充Constant Current - Fast Charge电池电压上升到安全范围后进入恒流充电阶段电流大小为通过R_SET电阻设定的值。此时充电电流最大电池电量快速上升。恒压充电Constant Voltage当电池电压接近设定的充电终止电压如4.2V或4.36V通过I2C可调时转为恒压充电。电流开始逐渐减小。充电终止Charge Termination当充电电流减小到快充电流的某个百分比如10%可通过I2C设置时芯片判定电池已充满停止充电。消流/维护充电Maintenance充电停止后电池会因自放电而电压缓慢下降。当电压低于再充电阈值通常比终止电压低100-150mV时芯片会重新开启一个小的充电周期将电池补满。所有这些阶段都由内部状态机管理但你可以通过I2C寄存器进行精细控制。关键寄存器包括充电电流缩放Charge Current Scaling即使硬件电阻设定了最大电流你仍然可以通过I2C将电流按比例25% 50% 75% 100%缩放。这在系统发热严重或输入电流受限时非常有用。充电安全定时器Safety Timer为了防止电池故障导致无限期充电芯片内置了硬件计时器如示例中的5小时。如果充电时间超过定时器设定充电将被强制终止。这是一个重要的安全特性务必根据你的电池容量和充电电流合理设置。充电使能/挂起Charge Suspend可以通过I2C命令随时暂停或恢复充电过程。实操心得调试充电功能时最容易出问题的地方是电池温度检测电路。如果TS引脚上的分压值超出了芯片内部比较器的窗口范围芯片会误判为温度故障而一直处于充电挂起状态。务必用万用表实测TS引脚电压确保在常温下它处于手册规定的正常范围内通常对应一个特定的电压区间。另一个坑是DPPM阈值如果设置得过低系统稍有大负载就会触发DPPM导致充电电流被限制充电速度极慢设置得过高则可能起不到保护作用。需要根据你的适配器输出能力和系统最大功耗来权衡。3. 核心模块二九路LDO线性稳压器详解3.1 LDO的分类与连接TPS65810集成了9路LDO看似复杂但可以按功能和可配置性分为三类理解后就清晰了固定输出LDOLDO0固定输出3.3V最大150mA。通常用于给始终需要供电的低功耗外设或IO电平转换。LDO_PM固定输出3.3V最大20mA。它的使能是内部硬件连接的只要检测到AC或USB电源插入就会自动开启。非常适合用来给USB枚举电路或电源状态指示灯供电。RTC_OUT固定输出1.5V最大8mA。顾名思义专为实时时钟RTC电路设计在系统深度睡眠时也能保持供电确保时钟不停。SIM固定输出1.8V或2.5V通过I2C选择最大8mA。用于SIM卡供电。可选电压LDOLDO1 LDO2输出电流最大150mA。输出电压可通过I2C在8个固定值中选择1.25V 1.5V 1.8V 2.5V 2.85V 3.0V 3.2V 3.3V。这类LDO适合给那些需要特定电压但电流需求不大的数字芯片或传感器供电比如1.8V的I2C电平、2.5V的SDRAM等。可编程电压LDOLDO3 LDO4 LDO5输出电流最大100mA。这是最灵活的部分输出电压可通过I2C在1.224V至4.46V范围内以25mV为步进进行128级精细编程。它们适合给模拟电路如运放、ADC参考源供电因为你可以精确调出所需的电压值。连接上需要注意LDO1和LDO2共享一个输入引脚VIN_LDO12LDO3、LDO4、LDO5共享另一个输入引脚VIN_LDO35。这两个引脚必须外接到系统的OUT电源总线上。当然你也可以选择将它们接到SM1或SM2降压转换器的输出上这样可以实现更高效的二级降压但必须仔细规划上电时序确保后级LDO的输入电压在其输出稳定前就位。3.2 关键特性与配置技巧使能控制与放电开关除了LDO_PM所有LDO都可以通过I2C单独开启或关闭。更棒的是LDO1、LDO2、LDO3-5在关闭时可以通过I2C启用内部的输出放电开关将输出电容快速放电到地。这个功能对于需要快速下电复位的模块如某些处理器核心至关重要可以避免因为残留电荷导致逻辑状态异常。输出电容选择手册给出了每路LDO推荐的输出电容值如图中C3-C15。强烈建议使用手册推荐的X5R或X7R材质的陶瓷电容并且尽量靠近芯片引脚摆放。陶瓷电容的低ESR特性是保证LDO环路稳定的关键。如果使用电解电容等大ESR电容很可能引起振荡。电源轨监控Power-Good芯片内部有比较器持续监控LDO的输出电压。当输出电压低于设定值的90%时会触发状态标志位并可以配置产生中断通知主机。这为系统实现高级的电源故障检测和恢复提供了可能。注意事项在通过I2C动态切换LDO1/LDO2的输出电压时要注意负载的瞬态响应。例如从3.3V切换到1.8V如果负载电路中有大的解耦电容电压下降会有一个过程。如果后级电路对上下电时序有严格要求最好先关闭LDO等待其放电完成或主动控制放电再开启并设置为新电压。对于可编程的LDO3-5虽然步进很小但在改变电压时芯片内部是有一个缓变的DAC在调整通常不会产生电压毛刺但敏感模拟电路仍需关注。4. 核心模块三高效率同步降压转换器SM1 SM24.1 工作原理与模式自动切换SM1和SM2是两个完全独立的同步降压Buck转换器集成了上管P-MOS和下管N-MOS外围仅需一个电感和两个电容输入输出各一极大地简化了设计。其核心优势在于支持PWM脉冲宽度调制和PFM脉冲频率调制两种工作模式并能根据负载情况自动切换。PWM模式重载/中载固定1.5MHz开关频率。在此模式下控制器通过调节每个周期内上管导通的时间占空比来稳定输出电压。优点是噪声频谱固定易于滤波输出纹波小。缺点是轻载时开关损耗占比大效率低。PFM模式轻载当平均负载电流低于阈值I_PFM(ENTER)时芯片自动切换到PFM模式。在此模式下转换器进入“突发Burst”工作状态只有当输出电压跌落到设定值以下时才启动一串开关脉冲将电压提升到设定值以上然后休眠等待电压再次跌落。PFM模式大幅降低了轻载时的开关次数和静态电流从而显著提升了轻载效率。代价是开关频率不固定输出电压纹波会比PWM模式大。自动切换的阈值电流I_PFM(ENTER)和I_PFM(LEAVE)与输入电压VIN有关计算公式在手册中给出I V(VIN) / 29Ω或39Ω。这意味着切换点不是固定的会随输入电压变化。理解这一点对评估系统在不同输入电压如电池供电时电压会下降下的效率表现很重要。4.2 高级功能与寄存器配置输出电压与斜率控制两路Buck的输出电压都可通过I2C在宽范围内编程SM1: 0.6-1.8V SM2: 1.0-3.4V。更实用的是输出电压摆率Slew Rate控制。当通过I2C改变输出电压时你可以选择电压是“一步到位”还是以一个可控的斜率SM1: 0.24-15.36 mV/μs爬升。这对于给处理器核心电压Vcore上电至关重要可以控制浪涌电流避免对输入电源造成冲击。相位控制Phase Control当SM1和SM2都工作在PWM模式且共用输入电源OUT时你可以通过I2C设置SM2相对于SM1的PWM时钟相位差0° 90° 180° 270°。这样做的目的是让两路Buck的开关动作错开平滑输入电容上的电流应力从而减小输入电压的纹波允许使用更小容值的输入电容。这是多相电源设计中的一个经典技巧。待机模式Standby Mode可以通过I2C或GPIO引脚将Buck转换器切入待机模式。在此模式下转换器强制进入低功耗的PFM模式并且可以输出一个与正常工作模式不同的、更低的电压。这为处理器的深度睡眠状态Core Voltage Retention提供了完美支持既能保持内存数据又能将功耗降到极低。100%占空比与跌落Dropout操作当输入电压非常接近输出电压时Buck转换器会进入100%占空比模式即上管持续导通。此时输出电压Vout ≈ Vin - Iout * (Rds_on L_DCR)。这意味着即使在电池电压较低时Buck仍能持续输出所需电压延长了电池可用时间。手册中的公式11给出了进入此模式的条件。4.3 外围元件选择与布局要点电感选择手册推荐3.3μH。选择电感时需关注其饱和电流额定值必须大于Buck转换器的最大输出电流加上纹波电流。通常选择饱和电流有30%-50%裕量的电感。DCR直流电阻越小效率越高。输入/输出电容推荐使用10μF的陶瓷电容。陶瓷电容的低ESL等效串联电感和低ESR特性对于处理1.5MHz的高频开关噪声至关重要。输出电容的容量和ESR直接影响输出电压纹波。布局时输入电容C19/C21必须尽可能靠近芯片的VIN_SMx和PGNDx引脚回路面积最小化这是抑制开关噪声辐射和传导的关键。PFM纹波控制寄存器中有PFM_RPL控制位。设置为低LO可以降低PFM比较器的静态电流提升轻载效率但会导致输出电压纹波增大。设置为高HI则相反纹波小效率略低。需要根据后端负载对噪声的敏感度来权衡。踩坑实录调试SM1/SM2时最常见的两个问题一是振荡二是轻载效率不达标。振荡通常是因为输出电容的ESR过低导致环路相位裕度不足。虽然陶瓷电容是首选但有时并连一个几十毫欧ESR的钽电容或聚合物电容反而能稳定环路。轻载效率不达标首先检查是否成功进入了PFM模式。可以用示波器观察SW节点波形PWM模式是连续的固定频率方波PFM模式是间歇性的脉冲串。如果轻载时还是PWM检查I2C配置是否禁用了自动PFM模式。另外电感的选择也影响效率在轻载时电感的铁损Core Loss会成为主要损耗源选择适合高频、低铁损的电感型号很重要。5. 内置10位ADC与系统监控5.1 ADC通道与功能概览TPS65810内置的10位逐次逼近型SARADC绝不仅仅是个摆设它是一个强大的系统监控工具。它提供了8个输入通道CH1 CH2 (ANLG1 ANLG2)通用模拟输入引脚可测量外部电压。特别的是ANLG1引脚在检测到输入电源时会自动启用内部上拉电流源非常适合用来连接电池识别电阻。CH3 (ISET1)测量与充电电流成正比的电压用于监控实时充电电流。CH4 (TS)测量电池温度检测网络的分压用于直接读取温度相关的ADC值。CH5 (内部)测量芯片内部结温斜率典型值为-6.5mV/°C。CH6 (RTC_OUT)CH7 (OUT)CH8 (BAT)分别监控RTC LDO输出、系统总线电压和电池电压。5.2 灵活的工作模式与配置策略这个ADC的亮点在于其灵活的可编程性支持单次转换、多次转换、连续转换Repeat模式以及外部触发。算术逻辑单元ALUADC内置了ALU可以在一次转换周期可配置1-256次采样后直接给出最大值、最小值、平均值或最后一次采样值。你不需要在主机MCU上进行软件滤波和计算节省了CPU资源和软件开销。外部触发与同步可以将GPIO3配置为ADC的外部触发源。这对于需要与外部事件如传感器数据就绪同步采样的应用非常有用。你还可以设置触发延迟tDLY和采样间隔tWAIT。保持Holdoff模式在进行多次采样时可以启用Holdoff模式。在此模式下只有外部触发信号在采样时刻有效时才会进行一次采样。这确保了每一次采样都与外部事件严格同步避免了异步采样带来的误差。上下限报警与连续监控Repeat模式可以为每个通道设置ADC值的上下限DHILIMDLOLIM。在Repeat模式下ADC会持续进行转换循环一旦采样值超出设定范围立即产生中断。这相当于一个硬件实现的电源电压监控报警器可以用来监测电池是否欠压、系统电压是否异常等而无需MCU频繁轮询。配置流程示例以监控电池电压为例使用内部触发求16次采样的平均值通过I2C配置ADC_SET寄存器选择通道CH8BAT设置读取模式为16次采样ALU模式为平均。配置ADC_DELAY和ADC_WAIT寄存器设定采样间隔时间。可选配置DHILIM和DLOLIM寄存器设定电池电压的报警阈值如3.3V-4.2V。将ADC_EN位由0写为1启动一次转换周期。等待ADC中断或轮询状态位标志转换完成。读取ADC_READING_HI/LO寄存器得到的就是16次采样的平均电压对应的ADC值再根据公式Vbat ADC_Code / 1023 * 4.7V换算成实际电压。经验分享使用内部温度传感器通道CH5时读出的ADC值需要根据手册提供的公式Tj (V_adc - 1.85V) / (-0.0065 V/°C) 25°C来换算结温。这个温度可以用来评估芯片本身的温升。另外ADC的参考电压可以选择内部~2.535V或外部。如果使用外部参考精度取决于你提供的参考源但必须注意所有通道的满量程范围除CH7CH8是4.7V外都基于这个参考电压。为了提高测量电池电压CH8的精度可以考虑使用一个外部2.5V或3.0V的精密基准源连接到ADC_REF引脚。6. I2C通信与系统集成要点6.1 寄存器访问与电源时序TPS65810的所有可配置功能都通过标准的I2C接口支持400kHz访问。芯片作为从设备有固定的7位从机地址。读写寄存器就是标准的I2C协议。需要特别注意电源时序虽然芯片内部有上电复位电路但在复杂的系统中必须考虑各电源轨的上电/下电顺序。例如可能需要先让I/O电源如3.3V的LDO稳定再给核心电源如SM1输出的1.2V上电。TPS65810的LDO和Buck都可以通过I2C独立控制开关这为软件实现复杂的时序提供了可能。你可以在MCU启动后再通过I2C依次开启各个电源轨。更高级的用法是利用芯片的GPIO引脚。部分GPIO可以配置为“控制引脚”直接映射到某些功能例如将某个GPIO配置为SM2的待机模式控制引脚这样无需I2C命令一个GPIO电平就能控制SM2进入或退出待机模式响应更快。6.2 常见问题排查速查表在实际项目中调试TPS65810可能会遇到以下典型问题这里提供一个快速排查思路现象可能原因排查步骤系统无任何输出1. 主电源AC/USB未正确接入或电压不足。2. 电池完全耗尽且未连接充电器。3. 芯片使能引脚如有未拉高。4. 芯片损坏。1. 测量AC/USB引脚电压是否在有效范围如4.5V-5.5V。2. 测量BAT引脚电压若低于欠压锁定阈值需外接电源激活。3. 检查芯片的EN或PWRON引脚电平。4. 检查I2C是否能正常通信读取芯片ID寄存器。某路LDO/Buck无输出1. 该路电源未通过I2C使能。2. 输出短路或过载触发保护。3. 对应的输入引脚VIN_LDOxx/VIN_SMx未连接或没电。4. 外部电感/电容损坏或焊接不良。1. 通过I2C读取对应控制寄存器的ON/OFF位。2. 断开负载测量输出端对地电阻检查是否短路。3. 测量输入引脚电压。4. 检查电感和电容的焊接特别是Buck电路的功率回路。充电异常不充电/充不满1. TS温度检测引脚电压异常导致充电暂停。2. DPPM阈值设置不当输入电流被限制。3. 充电安全定时器超时。4. ISET1电阻值不准确或损坏。5. 电池本身老化或损坏。1.首要步骤测量TS引脚电压确认其在正常温度窗口内通常0.5V-2.5V。2. 测量AC/USB输入电压在带载时是否被拉低至DPPM阈值以下。3. 通过I2C检查充电状态寄存器查看是否因定时器或温度保护暂停。4. 测量R_SET电阻阻值。5. 更换已知良好的电池测试。Buck电路输出纹波过大1. 输出电容ESR过高或容值不足。2. 电感饱和或选型不当。3. 布局不佳功率回路面积过大。4. 处于PFM模式轻载纹波本就较大。1. 用示波器观察纹波波形和频率判断是开关噪声高频还是PFM Burst噪声低频包络。2. 检查输出电容是否为推荐的低ESR陶瓷电容并确保布局靠近芯片。3. 检查电感额定电流是否足够在最大负载电流下是否饱和电感量骤降。4. 尝试调整PFM_RPL位在效率和纹波间权衡。I2C通信失败1. 上拉电阻缺失或阻值不当。2. SDA/SCL线路被其他器件拉死。3. 电源未稳定就进行通信。4. 从机地址错误。1. 确认I2C总线上有正确的上拉电阻通常4.7kΩ-10kΩ。2. 用示波器观察SDA/SCL波形看是否有毛刺或电平无法拉高。3. 确保芯片核心供电通常来自内部或LDO稳定后再初始化I2C。4. 核对芯片数据手册中的I2C从机地址。ADC读数不准1. 参考电压选择错误或不准。2. 输入信号超出量程。3. 采样模式或ALU模式配置错误。4. 模拟输入引脚有噪声干扰。1. 确认使用的是内部参考还是外部参考并测量参考电压实际值。2. 确保被测电压在所选通道的量程内如CH1/CH2是0-2.535V。3. 检查ADC_READ位确认读取的是平均值、最大值还是最后一次值。4. 在模拟输入引脚增加一个小电容如100pF滤波。6.3 设计检查清单与最终建议在完成基于TPS65810的PCB设计后建议对照以下清单进行检查电源输入AC/USB输入引脚处的10μF陶瓷电容是否尽可能靠近芯片引脚输入走线是否足够宽以承载最大电流如2.5A功率回路针对SM1/SM2VIN_SMx - 输入电容 - 芯片的VIN_SMx引脚 - 芯片内部开关 - 芯片的PGNDx引脚 - 输入电容地 - 电感 - 输出电容 - 芯片的VO(SMx)引脚。这个环路面积是否做到了最小化使用地平面作为回流路径。模拟敏感部分ADC的参考引脚ADC_REF是否连接了推荐的4.7μF电容并远离噪声源电池温度检测网络TS引脚的走线是否远离开关节点等噪声源热管理TPS65810在满负荷工作时会产生热量。芯片底部的散热焊盘Thermal Pad是否设计了充足的过孔连接到PCB内部的地平面或电源平面进行散热PCB布局是否允许空气流通未使用功能不使用的LDO或Buck的输出引脚建议按照手册说明处理通常悬空即可但最好确认。不用的模拟输入引脚如ANLG2建议接地或接一个固定电平避免浮空引入噪声。最后拿到第一版PCB和芯片后不要急于把所有功能都调通。建议按以下顺序调试首先确保I2C通信正常然后上电检查OUT总线电压是否正常接着逐一使能并测试每一路LDO和Buck先空载后加轻载最后再调试充电功能和ADC。分步进行遇到问题时隔离的范围小更容易定位。TPS65810是一颗功能强大的芯片吃透它需要时间和耐心但一旦掌握它将成为你便携式设备电源设计的利器。