
1. 项目缘起与整体设计思路1.1 为什么电源管理值得单独拿出来做很多做嵌入式项目的朋友尤其是从开发板阶段过渡到自己画板子的阶段最容易犯的一个错误就是把电源部分当成“附属品”。画原理图的时候随手放一个LDO或者找一个现成的电源模块焊上去觉得只要电压对了、电流够了板子能跑起来就行。但实际项目做多了就会发现电源管理做得好不好直接决定了整个系统的稳定性、功耗表现和长期可靠性。我这次要聊的是一个基于PCA9422和STM32F745ZG的完整电源管理方案。PCA9422 是 NXP 推出的一颗高度集成的电源管理芯片专门面向低功耗应用场景内部集成了多个 buck 转换器、LDO、电池充电管理以及 I2C 可编程接口。STM32F745ZG 则是 ST 家的高性能 Cortex-M7 系列 MCU主频可以跑到 216MHz带 FPU 和大量外设在很多工业控制、便携设备和数据采集场景中都能见到它的身影。把这两颗芯片组合在一起核心目标就是用一颗 PMIC 搞定整个系统的供电轨管理同时通过 I2C 让 MCU 能够动态调节各路输出电压、监控电池状态、控制充放电流程。这套方案解决的核心问题是——当你需要锂电池供电、又需要多路不同电压的电源轨、还希望系统能根据工作状态动态调整功耗的时候分立式电源方案会变得非常臃肿且难以管理。这篇文章适合谁看如果你正在做以下类型的事情那这篇内容应该对你有直接帮助第一你正在选型一个锂电池供电的嵌入式系统主控是 STM32 高性能系列第二你之前用过分立电源方案但觉得 BOM 太长、调试太麻烦想看看 PMIC 方案到底怎么落地第三你已经选了 PCA9422 或者类似 PMIC但对 I2C 配置流程、上电时序、电池管理策略这些细节还不太有把握。不管你是刚入行的新手还是做过几个项目想升级方案的老手我都会尽量把每个环节讲透。1.2 方案选型的几个关键考量在正式进入细节之前我想先说说为什么选 PCA9422 而不是其他方案。市面上做电源管理的芯片不少TI 的 TPS 系列、ADI 的 ADP 系列、还有各种国产 PMIC 都有各自的应用场景。PCA9422 吸引我的点主要有这么几个第一集成度高但不过度集成。它内部有 buck1、buck2、buck3 三路降压加上好几路 LDO对于 STM32F745 这种需要核心电压、IO 电压、外设电压的系统来说刚刚好。不像有些 PMIC 集成了几十路输出引脚多到画板子都费劲也不像简单的 LDO 方案那样需要外挂一堆器件。第二I2C 可编程能力强。每一路输出的电压都可以通过 I2C 动态调节步进精度也够用。这意味着系统可以在不同工作模式下切换电压——比如高性能模式跑 216MHz 的时候核心电压给足低功耗待机的时候降下来省电。这种动态调节能力是分立方案很难做到的。第三内置电池充电管理。支持锂电池充电曲线控制包括预充、恒流、恒压三个阶段还有温度监控接口。对于便携设备来说省掉一颗专门的充电 ICPCB 面积和 BOM 成本都能降下来。第四与 STM32 生态配合成熟。ST 的 HAL 库对 I2C 支持很完善PCA9422 的寄存器映射也比较清晰写驱动不算太复杂。而且 STM32F745 本身有多个 I2C 接口可以专门分配一个给 PMIC 用不会和其他外设抢总线。当然这个方案也不是没有代价。PCA9422 的封装比较小QFN 类型的芯片手工焊接难度不小建议直接上贴片机或者找有经验的人帮忙。另外它的 datasheet 虽然写得还算详细但有些上电时序的细节需要结合 STM32F745 的复位要求一起看不能只看一颗芯片的文档。1.3 系统整体架构长什么样先给大家一个全局视角。整个电源管理系统的架构可以分成三个层次输入层包括 USB 供电输入和锂电池输入。PCA9422 支持两种输入源的自动切换和优先级管理当 USB 插入时优先用 USB 供电并给电池充电USB 拔掉后自动切到电池供电。转换层PCA9422 内部完成电压转换。三路 buck 分别负责buck1 给 STM32F745 的核心电压典型 1.2V~1.3Vbuck2 给 IO 和外设供电典型 3.3Vbuck3 给其他外设比如传感器、显示屏等电压根据具体外设定。LDO 则负责一些对噪声敏感的模拟电路供电。控制层STM32F745ZG 通过 I2C 总线与 PCA9422 通信读取状态寄存器、配置输出电压、监控电池电量、控制充电参数。同时 MCU 的 GPIO 可以连接到 PCA9422 的中断引脚当出现异常状态比如过温、过流、电池低电量时及时响应。这个架构的好处是层次清晰每一层的职责明确。调试的时候也可以分层排查先确认输入层是否正常再看转换层输出对不对最后检查控制层的 I2C 通信是否通畅。2. 核心细节解析与实操要点2.1 PCA9422 的关键寄存器与配置逻辑PCA9422 的寄存器映射是理解整个方案的基础。它的寄存器大致可以分成几类设备 ID 和版本寄存器、电源配置寄存器、充电管理寄存器、状态和中断寄存器、以及一些杂项控制寄存器。设备 ID 寄存器通常是上电后第一个要读的。通过读取这个寄存器可以确认 I2C 通信是否正常以及芯片的具体型号和版本。这个步骤看起来简单但实际调试中非常关键——我曾经遇到过因为 I2C 地址搞错导致一直读不到数据的情况排查了半天才发现是地址配置的问题。电源配置寄存器是核心中的核心。每一路 buck 和 LDO 都有对应的电压设置寄存器通常是一个字节其中低几位用来设置输出电压档位。以 buck1 为例假设它的输出电压范围是 0.6V 到 1.4V步进 12.5mV那么设置 1.2V 对应的寄存器值就是 (1.2 - 0.6) / 0.0125 48也就是 0x30。这个计算过程在实际写驱动的时候要反复用到建议封装成一个宏或者函数。充电管理寄存器控制充电电流、充电电压上限、预充阈值等参数。这里有个经验充电电流不要一上来就设到最大要根据电池规格和 PCB 散热能力来定。我一般会先设一个保守值比如 500mA然后根据实际温升再调整。状态和中断寄存器用来读取当前的工作状态比如是否在充电、电池电压是否低于阈值、是否有过温事件等。中断功能可以配置成让 PCA9422 在特定事件发生时拉低一个引脚触发 STM32 的外部中断这样 MCU 就不用一直轮询 I2C能省不少功耗。注意PCA9422 的寄存器写入通常需要遵循一定的时序有些寄存器在写入后需要等待一段时间才能生效。具体等待时间参考 datasheet 的电气特性表不要凭感觉延时。2.2 STM32F745ZG 的 I2C 外设配置要点STM32F745ZG 有多个 I2C 接口我一般会选 I2C1 或者 I2C2 来连接 PMIC因为这两个接口的引脚布局比较灵活而且时钟配置也方便。配置 I2C 的时候有几个参数需要特别注意时钟频率PCA9422 支持标准模式100kHz和快速模式400kHz。我建议用 400kHz这样读写寄存器的速度更快对系统实时性影响更小。但要注意如果 I2C 总线上还挂了其他慢速设备可能需要折中一下。上拉电阻I2C 总线的 SDA 和 SCL 都需要上拉电阻。阻值的选择和总线电容有关一般 4.7kΩ 是比较通用的值。如果总线走线比较长或者挂了多个设备可能需要减小到 2.2kΩ 甚至更低。我实测下来在 400kHz 下用 4.7kΩ 上拉短距离走线是完全没问题的。DMA 支持如果系统对 CPU 占用比较敏感可以开启 I2C 的 DMA 传输。不过对于 PMIC 这种寄存器数量不多的设备普通中断模式其实也够用DMA 反而增加了配置复杂度。错误处理I2C 通信中可能会遇到 NACK、总线忙、仲裁丢失等错误。HAL 库提供了相应的错误回调函数建议在回调里做重试或者错误记录不要直接忽略。在软件层面我通常会封装一层 PMIC 驱动把底层的 I2C 读写和寄存器操作分开。这样上层应用只需要调用类似PMIC_SetBuck1Voltage(1200)这样的函数不需要关心 I2C 的具体细节。2.3 上电时序与复位配合这是整个方案中最容易出问题的地方。STM32F745ZG 对上电时序有明确要求核心电压VCORE和 IO 电压VDD的上升顺序和时间间隔都有规定。如果电源轨的建立顺序不对可能会导致 MCU 无法正常复位甚至出现锁死或者异常发热的情况。PCA9422 支持通过寄存器配置各路输出的上电顺序和延时。我的做法是先让 buck23.3V IO建立再让 buck1核心电压建立两者之间留 1~2ms 的延时。这个顺序和 STM32F745 的 datasheet 推荐是一致的。具体配置的时候PCA9422 有一个“power-up sequence”相关的寄存器组可以设置每一路的使能顺序和延时时间。延时时间的单位通常是毫秒级具体档位看 datasheet。我一般会设成 2ms 左右留一点余量。另外STM32F745 的 NRST 引脚需要接一个合适的复位电路。虽然 PCA9422 本身有复位输出功能但我建议还是保留一个独立的复位按键和 RC 电路方便调试的时候手动复位。实操心得第一次调试上电时序的时候强烈建议用示波器同时抓取 buck1 和 buck2 的输出电压波形确认上升顺序和延时是否符合预期。光看代码配置是不够的实际波形才能说明问题。2.4 电池充电管理的关键参数PCA9422 的充电管理功能支持锂电池的完整充电曲线。几个关键参数需要根据电池规格来设置预充电流和预充阈值当电池电压低于某个阈值通常是 3.0V 左右时进入预充模式用小电流充电以保护电池。预充电流一般设为恒流充电电流的 10%~20%。恒流充电电流这是充电过程中最主要的阶段。电流大小取决于电池容量和充电倍率。比如一块 2000mAh 的电池如果按 0.5C 充电恒流电流就是 1000mA。但实际设置的时候要考虑 PCB 散热和 USB 供电能力不要超过输入源的最大输出。恒压充电电压锂电池的满充电压通常是 4.2V也有 4.35V 和 4.4V 的高压电池。这个参数必须和电池规格严格一致设高了会损坏电池设低了充不满。充电终止电流当充电电流降到某个阈值以下时认为充电完成停止充电。一般设为恒流电流的 5%~10%。温度监控PCA9422 支持外接 NTC 热敏电阻来监控电池温度。充电过程中如果温度超出安全范围会自动暂停充电。这个功能对于安全性要求高的应用非常重要建议不要省略。3. 实操过程与核心环节实现3.1 硬件设计与 PCB 布局要点硬件设计阶段有几个地方需要特别注意。首先是 PCA9422 的外围元件选型。它的 buck 转换器需要外接电感和电容电感的值和电容的 ESR 都会影响转换效率和输出纹波。Datasheet 里会给出推荐值但实际选型的时候还要考虑封装尺寸和成本。我一般会选屏蔽式功率电感感值在 1μH~2.2μH 之间饱和电流要留足余量。输出电容用陶瓷电容容值根据 datasheet 推荐来通常是 10μF~22μF。输入电容也不能省至少放一个 10μF 的陶瓷电容靠近芯片的 VIN 引脚。PCB 布局方面功率路径要尽量短而粗。buck 的输入电容、电感和输出电容构成的环路面积要最小化这样可以减少电磁干扰和电压尖峰。反馈引脚的分压电阻要靠近芯片放置走线要远离电感和开关节点。I2C 走线也要注意SDA 和 SCL 尽量平行走线长度不要差太多。如果总线上有多个设备可以采用菊花链或者星型拓扑但星型拓扑在高速下可能会有反射问题400kHz 以下一般问题不大。注意PCA9422 的裸露焊盘exposed pad必须可靠接地并且要打足够多的过孔到地平面这对散热和电气性能都很重要。我见过因为焊盘接地不良导致芯片过热保护反复触发的情况。3.2 软件驱动框架搭建软件部分我一般分成三层来写底层 I2C 读写层、中间寄存器抽象层、上层应用接口层。底层 I2C 读写层直接调用 HAL 库的函数封装成PMIC_ReadReg和PMIC_WriteReg两个函数。这两个函数要处理 I2C 的超时、重试和错误返回。中间寄存器抽象层把 PCA9422 的每个功能寄存器都定义成宏或者枚举比如#define PCA9422_REG_BUCK1_OUT 0x10 #define PCA9422_REG_BUCK2_OUT 0x11 #define PCA9422_REG_BUCK3_OUT 0x12 #define PCA9422_REG_CHG_CTRL 0x20 #define PCA9422_REG_STATUS 0x30然后针对每个功能写专门的配置函数比如设置 buck 电压、读取充电状态、配置中断等。上层应用接口层就是给业务代码用的比如System_PowerInit()、System_EnterLowPower()、System_GetBatteryLevel()这些函数。这样分层的好处是如果以后换了一颗类似的 PMIC只需要改中间层和底层上层业务代码基本不用动。3.3 上电初始化流程与代码实现上电初始化的流程我一般按这个顺序来第一步I2C 总线初始化。配置 GPIO 为复用功能使能 I2C 时钟设置时钟频率为 400kHz配置好上拉电阻如果是外部上拉这一步在硬件上已经完成。第二步读取设备 ID。向 PCA9422 的设备 ID 寄存器发起读操作确认返回值符合预期。如果读不到或者值不对说明 I2C 通信有问题需要检查地址、上拉、走线等。第三步配置上电时序。设置 buck2 先使能延时 2ms再使能 buck1。这一步要在其他配置之前做因为 MCU 需要先有稳定的电源才能正常工作。第四步配置各路输出电压。根据系统需求设置 buck1、buck2、buck3 和 LDO 的输出电压。设置完成后可以读回寄存器确认写入成功。第五步配置充电参数。设置预充电流、恒流电流、恒压电压、终止电流等。如果不需要充电功能可以关闭充电模块以降低功耗。第六步配置中断。使能需要的中断源比如电池低电量、过温、充电完成等。配置中断引脚为推挽输出或者开漏输出根据 STM32 的外部中断配置来定。第七步清除状态标志。读取一次状态寄存器清除可能存在的上电残留标志位。整个初始化流程大概需要几十毫秒具体取决于 I2C 的读写速度和延时设置。初始化完成后系统就进入了正常工作状态。3.4 动态电压调节与低功耗模式实现STM32F745ZG 支持多种低功耗模式包括 Sleep、Stop 和 Standby。配合 PCA9422 的动态电压调节可以进一步降低系统功耗。比如在 Sleep 模式下MCU 主频可以降到 24MHz 甚至更低这时候核心电压可以从 1.2V 降到 1.0V 左右节省的功耗相当可观。具体操作是在进入低功耗模式之前通过 I2C 把 buck1 的电压调低退出低功耗模式时先把电压调回正常值再提高主频。这里有个顺序问题降频之前先降压升压之后再升频。如果顺序反了可能会出现 MCU 在低压下跑高频导致死机的情况。Stop 模式下MCU 的大部分时钟都停了这时候可以把 buck2 和 buck3 也关掉或者降到最低电压只保留必要的唤醒电路供电。PCA9422 本身在低功耗状态下的静态电流也很低具体数值看 datasheet 的电气特性表。实操心得动态电压调节的时候每次调整后最好加一点延时等电压稳定后再继续操作。我一般会延时 100μs 左右虽然 datasheet 说响应时间更快但留点余量更稳妥。3.5 电池电量监测与充电状态机电池电量监测有两种方式一种是读取 PCA9422 内部的电池电压 ADC 值然后通过查表或者公式换算成电量百分比另一种是使用库仑计芯片精度更高但成本也更高。对于大多数应用来说PCA9422 内部的 ADC 已经够用了。充电状态机我一般会实现成几个状态空闲、预充、恒流、恒压、完成、异常。状态之间的转换条件根据电池电压和充电电流来判断。比如空闲 → 预充检测到电池电压低于预充阈值预充 → 恒流电池电压升到预充阈值以上恒流 → 恒压电池电压达到恒压设定值恒压 → 完成充电电流降到终止电流以下任意状态 → 异常检测到过温、过流或者超时这个状态机可以放在主循环里轮询也可以放在定时器中断里定期执行。我一般会放在一个 100ms 的定时任务里既不会太频繁占用 CPU也能及时响应状态变化。4. 常见问题与排查技巧实录4.1 I2C 通信失败排查I2C 通信失败是最常见的问题表现是读不到设备 ID 或者读写寄存器返回错误。排查思路可以按这个顺序来先查硬件用万用表量 SDA 和 SCL 的对地电压正常应该是上拉电压比如 3.3V。如果电压不对检查上拉电阻是否焊接、阻值是否正确、走线是否短路。再查地址PCA9422 的 I2C 地址可能是固定的也可能通过引脚配置。确认地址配置和代码里写的一致。我遇到过因为地址左移一位和右移一位搞混导致通信失败的情况。查时序用示波器或者逻辑分析仪抓 I2C 波形看起始条件、地址字节、ACK 位是否正常。如果 ACK 位一直是高电平说明从机没有应答可能是地址不对或者芯片没有正常上电。查电源确认 PCA9422 的 VIN 和 VDD 引脚电压正常使能引脚如果有拉到了有效电平。下面这个表格总结了几种常见的 I2C 故障现象和对应的排查方向故障现象可能原因排查方法完全无应答芯片未上电、地址错误量电源引脚电压、确认地址偶尔 NACK总线干扰、上拉不足检查走线、减小上拉电阻读数据全为 0xFF寄存器地址错误核对 datasheet 寄存器映射写数据不生效寄存器写保护、时序问题检查是否有解锁步骤、加延时总线一直忙从机拉低 SCL检查从机状态、重新上电4.2 上电时序异常导致 MCU 不启动这个问题我踩过坑。现象是板子焊好之后上电后 MCU 没有任何反应调试器也连不上。用示波器看电源轨发现 buck1 和 buck2 几乎同时建立没有按照预期的顺序。原因是 PCA9422 的上电时序寄存器没有配置默认状态下所有输出同时使能。解决办法是在初始化代码里正确配置时序寄存器或者在硬件上通过使能引脚来控制顺序。还有一种情况是延时不够。STM32F745 要求核心电压稳定后至少等待一段时间再释放复位。如果 PCA9422 的延时设得太短MCU 可能在电压还没稳的时候就尝试启动导致失败。我一般会把延时设成 datasheet 推荐值的 1.5~2 倍留足余量。4.3 充电电流不达标或充电异常充电电流不达标通常有几个原因输入源限流、充电寄存器配置错误、电池电压过低进入预充模式、温度保护触发。先确认输入源的供电能力。如果 USB 口只能提供 500mA而充电电流设了 1000mA那实际电流肯定达不到。这时候要么换供电能力更强的输入源要么降低充电电流。再检查充电寄存器配置。PCA9422 的充电电流设置通常是一个寄存器值对应一个电流档位要确认写入的值和预期电流一致。有些寄存器还有写保护需要先解锁才能写入。如果电池电压很低比如低于 3.0V芯片会自动进入预充模式这时候充电电流很小是正常的。等电压升上来之后会自动切换到恒流模式。温度保护触发的话状态寄存器里会有相应的标志位。检查 NTC 热敏电阻的阻值是否正常以及温度阈值设置是否合理。4.4 低功耗模式下功耗偏高低功耗模式下功耗偏高可能是以下几个地方漏电GPIO 状态未使用的 GPIO 如果配置成浮空输入可能会因为引脚电平不确定导致漏电。建议把未使用的 GPIO 配置成模拟输入或者输出低电平。外设时钟忘记关闭某些外设的时钟导致外设继续耗电。进入低功耗模式之前把不用的外设时钟都关掉。PCA9422 的 LDO如果某些 LDO 在低功耗模式下不需要供电可以通过 I2C 关掉。但要注意关掉之前确认没有电路依赖这路电源。上拉电阻I2C 的上拉电阻在低功耗模式下会持续消耗电流。如果系统对功耗要求非常严格可以考虑用 GPIO 控制上拉电阻的供电在低功耗模式下断开上拉。我实测下来STM32F745 在 Stop 模式下配合 PCA9422 的优化配置整体静态电流可以做到几百微安级别。如果做到毫安级别那肯定有地方漏电需要逐项排查。4.5 常见问题速查表问题类型典型表现快速排查步骤预防措施I2C 不通读不到 ID量电压、查地址、抓波形预留测试点、加外部上拉上电不启动MCU 无反应抓电源时序、查复位引脚配置时序寄存器、加延时充电异常电流不对、不充电查输入源、查寄存器、查温度保守设置参数、加状态监控功耗偏高静态电流大查 GPIO、查时钟、查 LDO低功耗前统一配置 GPIO电压不稳输出纹波大查电感电容、查布局按 datasheet 推荐选型布局过温保护充电中断查散热、查充电电流留散热过孔、降额使用5. 调试工具与实测经验分享5.1 必备调试工具清单做这套方案有几样工具是必不可少的数字示波器至少双通道带宽 100MHz 以上。用来抓上电时序、I2C 波形、电源纹波。如果有四通道更好可以同时看多路电源轨。逻辑分析仪专门用来分析 I2C 协议。虽然示波器也能看 I2C但逻辑分析仪能直接解码出地址、数据和 ACK 位排查效率高很多。电子负载用来模拟不同负载条件测试电源在不同电流下的表现。如果没有电子负载也可以用功率电阻代替但灵活性差一些。万用表基础工具用来量电压、通断、电阻。建议用带自动量程的效率更高。热成像仪或者点温计用来检查芯片和电感的温升。充电和满载工作的时候温度是重要的健康指标。5.2 实测数据与经验值我在几个项目中积累了一些实测数据分享出来供参考效率方面PCA9422 的 buck 转换器在中等负载100mA~500mA下效率通常在 85%~90% 之间。轻载效率会下降如果系统大部分时间处于轻载状态可以考虑让 buck 进入 PFM 模式如果支持的话来提高轻载效率。纹波方面在 400kHz 开关频率下输出纹波通常在 10mV~20mV 峰峰值。如果对纹波要求更高可以增加输出电容或者提高开关频率。温升方面充电电流 500mA 的时候PCA9422 的表面温升大概在 15~20 摄氏度环境温度 25 度。如果温升超过 40 度要么降低充电电流要么改善散热。静态电流正常工作状态下PCA9422 自身的静态电流在几十微安级别。加上 STM32F745 在 Stop 模式下的功耗整体可以控制在 200μA 以内。5.3 几个容易忽略的细节第一I2C 总线的电容负载。每增加一个设备或者延长一段走线总线电容就会增加。电容太大会导致波形上升沿变缓高速通信时容易出错。如果发现波形上升沿明显变圆可以考虑减小上拉电阻。第二电感的饱和电流。选电感的时候不要只看感值饱和电流一定要留足余量。如果负载电流接近电感的饱和电流感值会急剧下降导致纹波变大甚至芯片工作异常。我一般会选饱和电流是最大负载电流 1.5 倍以上的电感。第三电池连接器的接触电阻。电池连接器如果接触不良在大电流充电或者放电的时候会产生压降导致芯片误判电池电压。建议选用质量好的连接器并且定期检查接触情况。第四固件升级时的电源保障。如果系统支持固件升级升级过程中一定要保证电源稳定。建议在升级前检查电池电量低于一定阈值时禁止升级或者要求插入 USB 供电。第五PCA9422 的散热焊盘。前面提过但值得再强调一次。散热焊盘不仅要接地还要打足够多的过孔。我一般会打 9 个过孔3x3 排列过孔直径 0.3mm间距 1mm 左右。6. 方案扩展与个人体会6.1 这个方案还能怎么扩展这套电源管理方案的基础框架搭好之后可以往几个方向扩展增加电量计功能如果对电量精度要求高可以在电池和 PCA9422 之间串一颗库仑计芯片通过 I2C 读取精确的电荷量。不过这会增加成本和 PCB 面积需要权衡。增加无线充电接收如果应用场景需要无线充电可以在输入端加一个无线充电接收模块输出接到 PCA9422 的 VIN 引脚。PCA9422 本身不区分输入源类型只要电压在范围内就能正常工作。多电池管理如果需要支持双电池或者电池热插拔可以考虑用多颗 PCA9422 或者外部分立器件做电源路径管理。不过这会显著增加复杂度建议先评估是否真的需要。与 RTOS 结合如果系统跑 FreeRTOS 或者其他 RTOS可以把电源管理做成一个独立的任务通过消息队列接收其他任务发来的电源模式切换请求。这样电源管理和其他业务逻辑解耦代码更好维护。6.2 个人在实际操作中的体会做电源管理这些年我最大的体会是电源部分值得花时间打磨而且越早介入越好。很多项目在硬件设计阶段对电源不够重视等到调试的时候才发现各种问题这时候改硬件的成本就很高了。另外文档和实测要结合起来看。Datasheet 给的是典型值实际电路因为布局、元件公差、负载特性的不同表现会有差异。我习惯在关键节点都留测试点方便随时测量。还有一点不要害怕用 PMIC。很多人觉得 PMIC 配置复杂不如分立方案直观。但实际上一旦把驱动框架搭好PMIC 的灵活性和可管理性是分立方案比不了的。尤其是需要动态调压和电池管理的场景PMIC 的优势非常明显。最后分享一个小技巧在调试初期可以先把 PCA9422 配置成固定的输出电压不动态调节等系统基本功能跑通之后再逐步加入动态调压和低功耗逻辑。这样可以把问题分阶段隔离排查起来容易得多。