1. 项目概述与核心价值
在汽车电子和工业控制这类对可靠性要求极高的领域,一块电路板能否稳定启动、正常运行,甚至优雅地“死去”和“重生”,很大程度上取决于其电源管理单元(PMIC)的设计。这不仅仅是提供几个电压那么简单,而是一套精密的“指挥系统”,确保处理器、内存、外设等“演员”按照严格的剧本(电源时序)登场和退场。我经手过不少项目,早期因为电源时序问题导致的系统无法启动、随机复位或者芯片损坏的案例不在少数,后来才深刻理解,PMIC的配置,尤其是其内置的OTP(一次性可编程)设置,是系统稳定性的基石。
今天要深入拆解的,是德州仪器(TI)面向汽车应用的两款明星PMIC:TPS65919-Q1和TPS65917-Q1。它们常被用来驱动TI的DRA71x、DRA79x和TDA2E-17系列处理器。你手头拿到的芯片,其出厂行为——比如默认输出电压、上电顺序、复位响应方式——都已经被固化在OTP里了。理解这些OTP配置,就像拿到了芯片的“出厂说明书”和“行为准则”,是进行任何定制化电源管理、调试复杂启动问题,乃至设计热复位(Warm Reset)等高级功能的前提。本文将聚焦于其静态平台设置和序列平台设置这两大核心OTP配置区,结合实际的电源时序图,为你还原一个可操作、可理解的PMIC配置全景图。
2. 静态平台设置深度解析
静态平台设置,顾名思义,定义了PMIC上电后的默认“静态”状态。这包括了所有电源轨的默认电压、GPIO的初始功能、中断的使能状态等。这些设置是PMIC从“无电”状态唤醒后,执行任何动态序列(如上电序列)之前的起点。理解它们,是理解后续所有动态行为的基础。
2.1 系统电压监控与状态机
PMIC内部有一个精密的状态机,其运转完全依赖于几个关键的电压比较器。这就像给系统安装了“血压计”和“心跳监测仪”。
- POR(上电复位)阈值:这是PMIC的生命线。当VCCA引脚(模拟电源)电压低于此阈值时,PMIC处于“NO SUPPLY”状态,完全“沉睡”。只有当VCCA电压超过POR阈值,PMIC才会进入“BACKUP”状态,此时RTC等最低功耗电路开始工作。这个阈值通常由芯片工艺决定,不可编程,但我们必须确保电源设计能快速、干净地越过它。
- VSYS_LO(系统电压低)阈值:这是一个可编程的OTP选项(默认为2.75V)。当VCCA电压从BACKUP状态继续上升,超过VSYS_LO后,PMIC才正式进入“OFF”状态,此时核心逻辑电路上电,可以准备响应ON请求(如按下PWRON键)。反之,若系统运行时VCCA跌落到VSYS_LO以下,PMIC会强制退回到BACKUP状态,这是一种硬件保护机制。这里有个关键点:VSYS_LO的设定必须高于你系统中所有电源轨(特别是LDO)能够稳定输出的最低输入电压,否则可能在输入电压跌落时,输出已经紊乱,但PMIC还未进入保护状态。
- VSYS_MON(系统电压监控)与VSYS_HI:这个比较器监控VCC_SENSE引脚(通常连接主电源轨)。在启动阶段,OTP中设定的VSYS_HI值(默认为3.1V)会作为比较器阈值,只有当VCC_SENSE电压超过此值,PMIC才允许从OFF状态启动进入ACTIVE状态。启动完成后,软件可以通过寄存器重新配置VSYS_MON的阈值,用于运行时监控。注意:根据OTP中
PMU_CONFIG[HIGH_VCC_SENSE]位的设置,VCC_SENSE引脚能承受的电压范围不同。在提供的配置中,此位为0,意味着VCC_SENSE和VCCA通常短接,适用于较低电压的输入场景。
实操心得:在设计电源树时,务必确认前端电源(如DCDC预稳压器)的输出电压爬升速度和纹波。确保在PMIC的VCCA引脚上,电压能快速、平滑地超过POR和VSYS_LO,避免在阈值附近震荡,导致PMIC状态机反复跳变,引发不可预知的行为。
2.2 电源轨默认电压配置
OTP中定义了每个SMPS和LDO的默认输出电压。这是芯片出厂时自带的“个性”,对于TPS6591x-Q1系列,不同型号(通过SW_REVISION寄存器0x4C, 0x4D, 0x4E, 0x4F区分)对应不同的默认电压,主要是为了适配DDR3L(1.35V)和DDR3(1.5V)内存,以及不同的处理器电流需求。
表:关键电源轨默认电压对比 (基于输入文档)
| 电源轨 | 0x4C (O919A14C) DDR3L, VDD<3A | 0x4E (O919A14E) DDR3, VDD<3A | 0x4D (O917A14D) DDR3L, VDD>3A | 0x4F (O917A14F) DDR3, VDD>3A | 说明 |
|---|---|---|---|---|---|
| SMPS1 | 1.15V (AVS) | 1.15V (AVS) | 1.15V (AVS) | 1.15V (AVS) | 通常用于处理器核心电压(CVDD),支持AVS动态调压。 |
| SMPS2 | 1.35V | 1.5V | 1.35V | 1.5V | 关键区别:用于DDR内存电压(VDD)。1.35V对应DDR3L,1.5V对应DDR3。 |
| SMPS3 | 1.06V (AVS) | 1.06V (AVS) | 1.06V (AVS) | 1.06V (AVS) | 通常用于处理器另一核心域或IO电压。 |
| SMPS4 | 1.8V | 1.8V | 1.8V | 1.8V | 为PMIC自身VIO域及部分外设提供1.8V。 |
| SMPS5 | N/A | N/A | 1.35V | 1.5V | 仅TPS65917-Q1具备,用于分担PHY等域供电。 |
| LDO1 | 1.8V / Bypass | 1.8V / Bypass | 1.8V / Bypass | 1.8V / Bypass | 电压由BOOT引脚状态决定。BOOT=0时输出1.8V;BOOT=1时处于旁路模式,输出等于输入。 |
| LDO2 | 1.8V | 1.8V | 1.8V | 1.8V | 用于PHY等模拟域供电。 |
| LDO4 | 3.3V | 3.3V | 3.3V | 3.3V | 通常用于USB等3.3V外设。 |
关键点解析:
- AVS(自适应电压调节):SMPS1和SMPS3标注了AVS,意味着这些轨道的电压可以通过I2C接口,由处理器根据运行频率和温度动态调节,以实现能效优化。OTP设置的是其初始默认值。
- BOOT引脚与LDO1:这是一个灵活的配置。当
BOOT=0,LDO1输出1.8V;当BOOT=1,LDO1处于旁路模式,其输出直接等于输入电压(LDO12_IN)。这里有一个重要的硬件设计约束:当LDO1处于旁路模式时,输入电压LDO12_IN绝对不能超过3.6V,否则可能损坏芯片。同时,LDO1和LDO2共享LDO12_IN输入,因此必须由同一个电源供电。 - SMPS12双相配置:在TPS65917-Q1的配置(0x4D, 0x4F)中,
SMPS1_SMPS12_EN位被设置为1,这意味着SMPS1和SMPS2被配置为双相(Dual-Phase)模式。这相当于两个电源并联交错工作,能有效降低输出纹波电流,提高电流输出能力(总电流可达7A),非常适合为高性能处理器核心供电。
2.3 GPIO、中断与杂项配置
这部分配置定义了PMIC与外部世界(主要是主处理器)的交互方式。
- GPIO功能复用:每个GPIO引脚在OTP中都被预定义为特定功能。例如,GPIO_5被配置为
POWERHOLD,GPIO_4为REGEN2,GPIO_1为NRESWARM(热复位),GPIO_0为REGEN1。特别要注意GPIO_0:它是一个开漏(Open-Drain)输出,因此必须外部上拉。TI明确建议不要将其上拉到VCCA或LDOVRTC_OUT这类常电(Always-On)电源,因为在OTP加载完成前,GPIO_0默认为输入模式,常电上拉会导致一个毛刺。正确的做法是上拉到一个受控的电源轨,如SMPS3(1.8V)或LDO4(3.3V)的输出。 - 中断默认使能:OTP中预设了哪些事件会触发中断(INT引脚拉低)。例如,
HOTDIE(过热预警)、SHORT(短路)、WDT(看门狗超时)等关键事件默认是使能中断的,而VBUS检测、GPADC_EOC_SW(GPADC软件转换完成)等则默认被禁用。这为系统提供了关键故障的即时通知机制。 - 复位类型配置(SWOFF_HWRST):这是理解PMIC复位行为的关键。PMIC内部寄存器分为三个域:POR(上电复位)、HWRST(硬件复位)、SWORST(开关复位)。当发生OFF请求(如看门狗超时、RESET_IN引脚触发)时,OTP配置决定了这是触发一次HWRST还是SWORST。
- HWRST:复位HWRST和SWORST域的所有寄存器,但POR域寄存器保持不变。这相当于一次“深度”复位,许多配置会被重置为OTP值或默认值。
- SWORST:仅复位SWORST域的寄存器,HWRST域寄存器保持不变。这相当于一次“轻度”复位,保留更多上下文。 例如,在默认配置中,看门狗超时(
WTD)和RESET_IN引脚触发被配置为产生HWRST,而PWRDOWN引脚事件则产生SWORST。这意味着通过按键关机(PWRDOWN)和通过处理器复位引脚关机(RESET_IN),PMIC内部的清理程度是不同的。
- 关机与冷复位配置(Shutdown_ColdReset):这个配置决定了OFF请求的最终结果。是让系统彻底关机(Shutdown),还是关机后立即自动重启(Cold Reset)?
- Shutdown:PMIC执行关机序列(ACT2OFF或SLP2OFF)后,进入OFF状态并保持。
- Cold Reset:PMIC执行关机序列后,如果没有任何ON请求的阻塞条件(如电压不足),会立即自动执行上电序列(OFF2ACT),重新回到ACTIVE状态。 默认配置中,看门狗超时和软件复位(
SW_RST寄存器位)被设置为触发冷复位,这非常合理:系统遇到软件死锁,看门狗复位后,我们希望它能自动重启恢复。而按键关机(PWRDOWN)和热关断(TSHUT)则设置为彻底关机,这是安全且符合直觉的。
3. 电源序列平台设置精讲
如果说静态设置是PMIC的“初始属性”,那么电源序列就是它的“连招技能”。PMIC通过内置的嵌入式电源控制器(EPC),自动执行一系列预编程的寄存器操作,来控制各个电源轨和使能信号的开启/关闭顺序与延时。这是保证处理器及其周边电路安全上电、下电的核心。
3.1 OFF2ACT序列:系统上电的精确舞蹈
当PMIC处于OFF状态,收到一个ON请求(如PWRON引脚拉高,或POWERHOLD有效)时,就会触发OFF2ACT序列。文档中给出了四个具体型号的时序图,我们以O919A14CTRGZRQ1 (SW_REV 0x4C)的时序图为例进行拆解。
序列步骤解析:
- 触发与第一步:ON请求到来。立即(或经过一个极短的内部门延迟后),
SMPS4和LDO5被使能。SMPS4输出1.8V(为VIO域供电),LDO5也输出1.8V。为什么是它们俩最先启动?因为它们是PMIC自身逻辑和部分基础外设(如I2C上拉)所需要的,是后续动作的“基石”。 - 550µs延时:这是一个固定的时间间隔。确保SMPS4和LDO5完全建立稳定。
- 第二步:
SMPS2和REGEN2(GPIO_4) 被使能。SMPS2输出DDR内存电压(1.35V或1.5V)。REGEN2通常用来使能外部器件,比如DDR VTT稳压器(如TPS51200)。这里的设计哲学是:先给内存供电,并打开其终端稳压器。 - 又一个550µs延时:等待内存电源稳定。
- 第三步:
SMPS1和SMPS3被使能。它们输出处理器的核心电压(如1.15V AVS, 1.06V AVS)。此时,处理器的主电源开始建立。 - 再一个550µs延时:等待核心电压稳定。
- 第四步:
LDO2和RESET_OUT被使能。LDO2输出1.8V给处理器的PHY等模拟模块。最关键的是RESET_OUT:这个信号在之前一直为低(或高阻),此刻被释放(变为高电平),意味着PMIC通知处理器:“你的所有主要电源都已就绪,现在可以开始启动你的Bootloader了”。这是处理器复位解除的时刻。 - 550µs延时:给予复位释放后的一个稳定期。
- 第五步:
VIO和LDO4被使能。VIO是PMIC的IO电源域,由SMPS4供电,此处可能指相关逻辑稳定。LDO4输出3.3V,为USB等外设供电。 - 550µs延时。
- 第六步:
REGEN1(GPIO_0) 被使能。这个信号通常用来控制给处理器的某些IO域或外围电路的电源开关。注意:GPIO_0是开漏输出,需要外部上拉。 - 最终步:
LDO1被使能。根据BOOT引脚状态,输出1.8V或处于旁路模式。整个OFF2ACT序列完成,系统进入ACTIVE状态。
整个序列的精髓在于“先内核,后IO;先供电,后释放复位”。确保处理器在收到复位释放信号时,其核心和内存电源已经是稳定、可靠的。550µs的步进延时是OTP固化的,为电源轨的软启动和稳定留出了充足时间。
3.2 ACT2OFF序列:系统关机的优雅谢幕
当系统在ACTIVE状态收到OFF请求(如长按PWRON键、PWRDOWN引脚有效)时,执行ACT2OFF序列。其顺序大体上是OFF2ACT的逆过程,但并非完全对称。
以O919A14CTRGZRQ1的关机序列为例:
- 触发:OFF请求到来。
- 第一步:立即撤销
RESET_OUT(拉低)。这相当于告诉处理器:“准备断电了”,处理器应进入安全关机流程。 - 第二步:关闭
REGEN1(GPIO_0)。切断给部分外围电路的电源。 - 第三步:关闭
SMPS3和SMPS1。先关闭处理器核心电源。此时处理器应已完全停止工作。 - 第四步:关闭
LDO2和SMPS2。关闭内存相关电源。 - 第五步:关闭
SMPS4和LDO5。最后关闭PMIC自身的逻辑和基础电源。
关机序列的核心思想是“先通知,再断核心;先停运,再断能源”。通过先拉低RESET_OUT,给处理器一个预警窗口,使其有机会保存关键状态或完成最后的操作。然后按照与上电大致相反的顺序断电,避免因为电源轨关闭顺序不当导致电流倒灌。
3.3 Warm Reset序列:系统重启的快速通道
热复位(Warm Reset)是系统调试和恢复中极其有用的功能。它由NRESWARM(GPIO_1) 引脚拉低触发。与冷复位(Cold Reset,即先关机再上电)不同,热复位的目标是让系统快速恢复到已知的初始状态,而不必完全关闭所有电源。
热复位的核心行为:
- 触发:
NRESWARM引脚被拉低。 - 序列执行:PMIC会重新执行一次OFF2ACT序列。无论当前处于ACTIVE还是SLEEP状态。
- 电源轨行为:
- 对于包含在OFF2ACT序列中的电源轨(即那些需要参与上电的轨),它们会根据对应控制寄存器(
SMPSx_CTRL或LDOx_CTRL)中的WR_S位决定行为:- 如果
WR_S = 1:该电源轨的电压值会从OTP中重新加载。 - 如果
WR_S = 0:该电源轨保持之前的电压值。
- 如果
- 对于不包含在OFF2ACT序列中的电源轨(比如由软件后期单独开启的某个LDO),热复位对其没有影响,它保持原有状态。
- 对于包含在OFF2ACT序列中的电源轨(即那些需要参与上电的轨),它们会根据对应控制寄存器(
- RESET_OUT行为:这取决于
BOOT引脚的配置。- 如果
BOOT=1:在热复位序列期间,RESET_OUT会被断言为低电平(即产生一个复位脉冲)。 - 如果
BOOT=0:RESET_OUT不会被拉低。 - 重要关联:如果使用
BOOT=1,则PMIC必须通过POWERHOLD(GPIO_5)引脚来使能。如果PMIC是通过PWRON引脚使能并依靠DEV_ON寄存器位保持开启,则必须使用BOOT=0。如果在BOOT=1时POWERHOLD被拉低,PMIC会在热复位序列中关机。
- 如果
时序图解读:文档中的热复位时序图用实黑线表示热复位发生时已经开启的电源轨(保持开启),用红色虚线表示热复位前已关闭的电源轨(将按序列重新开启)。例如,在O919A14CTRGZRQ1的热复位图中,SMPS4和LDO5是持续开启的,而SMPS2等则可能有一个重新开启的延时过程。RESET_OUT在BOOT=1时会有一个低脉冲。
避坑指南:热复位功能非常强大,但配置不当极易导致问题。最常见的坑是
BOOT、POWERHOLD和PWRON的配置组合错误。务必根据你的硬件使能电路,严格按照数据手册和用户指南的建议来选择BOOT的值。如果系统需要热复位功能,通常建议采用POWERHOLD使能方案并设置BOOT=1,以确保复位期间PMIC不掉电且能给处理器发出复位信号。
4. 硬件连接设计与选型指南
理解了OTP配置和时序,最终要落实到硬件设计上。用户指南中给出了针对不同处理器和内存配置的推荐连接图,这里提炼出关键设计要点。
4.1 器件选型:TPS65919-Q1 vs. TPS65917-Q1
选择哪款PMIC,主要取决于两个因素:
- DDR内存类型:DDR3L(1.35V)还是DDR3(1.5V)?这决定了SMPS2(和SMPS5,如果存在)的默认输出电压。
- 处理器VDD总电流需求:这是所有核心电压轨(MPU, GPU, CORE)的电流总和。
- TPS65919-Q1:适用于VDD总电流< 3A的场景。它包含4个SMPS和4个LDO。
- TPS65917-Q1:适用于VDD总电流> 3A或PHY总电流> 300mA的场景。它包含5个SMPS和5个LDO,其中SMPS1和SMPS2可配置为双相模式(SMPS12)提供更大电流,并且多出一个LDO3来分担PHY供电压力。
具体型号对应表:
O919A14CTRGZRQ1(SW_REV 0x4C): DDR3L, VDD < 3AO919A14ETRGZRQ1(SW_REV 0x4E): DDR3, VDD < 3AO917A14DTRGZRQ1(SW_REV 0x4D): DDR3L, VDD > 3AO917A14FTRGZRQ1(SW_REV 0x4F): DDR3, VDD > 3A
4.2 关键外围电路设计
- VIO_IN电源选择:VIO_IN为PMIC的VIO域(包括GPIO_2, GPIO_4, RESET_OUT, INT, I2C引脚)提供电平基准。它可以选择由SMPS4(输出1.8V)供电,或者由外部负载开关(如TPS22965)提供的3.3V供电。选择依据是:你的处理器或与这些引脚连接的其他器件的IO电压是1.8V还是3.3V?必须匹配。
- 复位与使能电路:这是系统控制逻辑的关键。
- POWERHOLD方案:将GPIO_5配置为POWERHOLD功能。处理器的一个GPIO控制此引脚。给高电平,PMIC启动;拉低,PMIC关机。PWRON引脚可悬空。此方案适合由处理器软件完全控制电源开关。
- PWRON方案:使用物理按键连接PWRON引脚到地。按下按键,PMIC启动。此时,PMIC需要通过软件设置
DEV_ON寄存器位来保持上电状态。此方案适合有独立开关机的产品。 - 混合方案(支持热复位):如果需要热复位功能,文档推荐了一种巧妙的设计:将GPIO_5 (POWERHOLD) 与 GPIO_2 连接,并通过一个上拉电阻拉到VIO。这样,上电后软件可以配置GPIO_2为输出高电平,从而锁存POWERHOLD。当需要关机时,软件将GPIO_2拉低即可。这保证了热复位期间POWERHOLD始终保持有效。
- PHY电源分配(仅TPS65917-Q1):当PHY总电流超过300mA时,需要使用LDO2和LDO3共同供电。文档给出了推荐的分组:LDO2负责VDDA_USB1, VDDA_USB2, VDDA_CSI;LDO3负责VDDA_USB3, VDDA_HDMI, VDDA_PCIE。这有助于平衡负载和散热。
5. 实战配置、调试与问题排查
理论最终要服务于实践。拿到一块基于TPS6591x-Q1的板子,如何验证配置、如何调试电源时序问题?
5.1 OTP配置的读取与验证
PMIC上电后,其OTP内容会加载到相应的寄存器中。最直接的验证方式是通过I2C接口读取这些寄存器,与文档中的OTP表进行比对。
- 连接I2C调试器:将PMIC的I2C接口(通常为I2C1)连接到你的调试主机(如通过USB转I2C适配器)。
- 确认I2C地址:根据OTP中
ID_I2C1的配置(默认为0x58, 0x59, 0x5A, 0x5B之一),尝试扫描I2C总线。 - 读取关键寄存器:
SW_REVISION寄存器:确认芯片的OTP版本(0x4C, 0x4D, 0x4E, 0x4F),这决定了你该参考哪一组默认值。SMPSx_VOLTAGE寄存器:读取SMPS1/2/3/4/5的电压设置寄存器,看是否与OTP表一致。LDOx_VOLTAGE寄存器:读取LDO1/2/3/4/5的电压设置。GPIO_x_CTRL等寄存器:确认GPIO功能配置。INTx_MASK寄存器:确认中断默认使能状态。
实操技巧:可以使用
i2c-tools(Linux)或任意支持I2C的脚本/软件进行读取。例如,使用i2cdetect扫描,然后用i2cget读取特定寄存器。务必参考芯片数据手册中的寄存器映射表。
5.2 电源时序的测量与调试
当时序出现问题时(如上电失败、复位异常),示波器是多通道电源时序分析不可或缺的工具。
- 探头准备:至少需要4-6个通道的示波器。准备多个探头,并务必注意接地环路,尽量使用短接地弹簧而非长接地夹,以减少噪声。
- 触发设置:将触发源设置为ON请求信号,如PWRON或POWERHOLD引脚的上跳沿。
- 测量点:
- ON请求信号(通道1)。
- 关键电源轨:SMPS4 (1.8V), SMPS2 (DDR电压), SMPS1 (核心电压)(通道2,3,4)。
- 关键使能信号:RESET_OUT, REGEN1, REGEN2(通道5,6,...)。
- 分析要点:
- 顺序:检查各电源轨和使能信号的上升沿顺序,是否与文档中的OFF2ACT序列图一致?
- 延时:测量相邻两个电源轨开启之间的时间间隔,是否接近550µs?偏差是否在合理范围内(考虑电源软启动时间)?
- 稳定性:观察每个电源轨上升过程中是否有过冲、下冲或振荡?稳定后的纹波是否在数据手册规定的范围内?
- RESET_OUT:这是最重要的信号之一。确认它是在所有核心电源(SMPS1, SMPS2, SMPS3)稳定之后才释放(变高)的。如果它提前变高,处理器可能在电源不稳时启动,导致不可预知的行为。
5.3 常见问题排查速查表
| 现象 | 可能原因 | 排查步骤 |
|---|---|---|
| PMIC完全无输出 | 1. VCCA电压未超过POR阈值。 2. ON请求(PWRON/POWERHOLD)无效。 3. VSYS_MON(VCC_SENSE)电压未超过VSYS_HI阈值。 | 1. 测量VCCA引脚电压。 2. 检查PWRON/POWERHOLD引脚电平,确认上拉/下拉电阻配置正确。 3. 测量VCC_SENSE引脚电压,确认其与VCCA连接或分压正确。 |
| 部分电源轨无输出 | 1. 该电源轨在OTP中被禁用。 2. 外部负载短路。 3. 电源轨的使能条件不满足(如SMPS12双相配置错误)。 | 1. 通过I2C读取对应SMPS/LDO的控制寄存器,确认ENABLE位状态。 2. 断开该路电源的负载,测量PMIC引脚输出是否恢复。 3. 检查SMPS1和SMPS2的配置,确认是否按双相模式正确连接。 |
| 上电过程中复位 | 1. 某电源轨在上电过程中跌落,触发VSYS_LO或其它保护。 2. 看门狗在启动早期意外超时。 | 1. 用示波器同时捕获所有主要电源轨和VCCA,观察是否有轨在启动时被拉低。 2. 检查看门狗配置,在初始化早期先禁用或延长其超时时间。 |
| 热复位导致系统关机 | 1.BOOT=1但未使用POWERHOLD使能,或POWERHOLD在热复位期间被拉低。2. 热复位序列中,某个本应保持开启的电源轨被错误关闭。 | 1.重点检查:确认BOOT引脚硬件连接,确认POWERHOLD引脚在热复位期间始终保持高电平。2. 检查电源轨控制寄存器的 WR_S位,对于希望热复位时保持电压的轨,应设为0。 |
| I2C通信失败 | 1. VIO_IN电压与主控IO电平不匹配。 2. I2C上拉电阻缺失或阻值不当。 3. I2C地址错误。 | 1. 测量VIO_IN电压和主控I2C引脚电压,确保一致(同为1.8V或3.3V)。 2. 检查SCL和SDA线上的上拉电阻(通常4.7kΩ-10kΩ)。 3. 使用 i2cdetect扫描,确认PMIC的I2C从地址。 |
| GPIO_0(REGEN1)控制异常 | GPIO_0外部未接上拉电阻,或上拉到了错误的电源。 | 确认GPIO_0外部有上拉电阻(如10kΩ),并且上拉到了一个在序列中较早开启的电源(如SMPS3的1.8V或LDO4的3.3V),绝不能上拉到VCCA或LDOVRTC_OUT。 |
5.4 软件配置注意事项
虽然OTP定义了默认行为,但大部分配置在运行时可以通过I2C修改。这提供了灵活性,但也引入了风险。
- 修改电压:可以通过
SMPSx_VOLTAGE和LDOx_VOLTAGE寄存器动态调整输出电压。但请注意:不能在线(电源轨开启时)将SMPS的输出电压从一个范围(如0.7-1.65V)切换到另一个范围(1-3.3V),反之亦然。必须先关闭该调节器。 - 控制电源轨:使用
SMPSx_CTRL和LDOx_CTRL寄存器可以单独使能/禁用每个电源轨,或将其切换到节能模式。 - 中断处理:上电后,应尽快根据系统需求,通过
INTx_MASK寄存器配置中断使能。例如,你可能需要使能热插拔检测(VBUS)中断,或禁用某些不用的中断源以减少误触发。 - 看门狗配置:如果系统使用了PMIC的看门狗,务必理解其超时行为(触发冷复位还是关机)。在系统启动初期,软件可能无法及时“喂狗”,需要考虑先禁用或设置一个很长的超时时间,待系统稳定后再配置为正常运行值。
在我调试过的一个车载娱乐系统项目中,就曾遇到热复位后系统偶尔宕机的问题。最终排查发现,是硬件设计将BOOT引脚通过电阻下拉到了地(BOOT=0),但软件却试图在热复位后通过RESET_OUT的下降沿来复位处理器。由于BOOT=0时热复位不会拉低RESET_OUT,导致处理器没有收到复位信号,状态混乱。解决方案是修改硬件将BOOT改为上拉(BOOT=1),并确保POWERHOLD电路在热复位期间持续有效。这个坑让我深刻体会到,PMIC的OTP配置、硬件连接和软件期望三者必须严丝合缝,任何一点不匹配都可能导致难以排查的隐性故障。