ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

eFuse+MCU智能电源路径保护设计与实测

eFuse+MCU智能电源路径保护设计与实测 做嵌入式硬件的人大概率都经历过去现场调设备时板卡冒烟的事故。早些年我在一个工业控制项目里调试电机驱动板客户现场的操作工把24V电源线插反了结果板子上一排电解电容直接顶开主控芯片引脚对地短路整套设备停了一天。从那以后我养成了一个习惯只要涉及外部供电、带电插拔、多设备联动的场景先想清楚电源路径能不能扛住意外再谈功能设计。最近我搭了一套组合方案把 TI 的 TPS259483AYWPR 和 Microchip 的 PIC18F4455 放在一起做电源路径保护。简单说TPS259483AYWPR 负责在硬件层面做限流、过压、短路保护PIC18F4455 负责在系统层面做状态监测、故障记录和恢复控制。这条链路对嵌入式和工业应用都很实用尤其适合那些既要抗住现场恶劣环境、又需要把故障状态告诉上位机的设计。下面聊聊我在选型、电路设计、参数计算和实际测试中的一些具体做法希望能给正在搭类似保护电路的同行一点参考。1. 现场故障场景与保护诉求先弄清楚要防的是什么1.1 工业现场最常见的三种电源“意外”做电源路径保护之前我习惯先列一份真实故障清单。工业设备和嵌入式系统里最常见的不是“设计失误”而是“谁都预料不到的输入异常”。第一种是短路。线缆被金属机箱边缘磨破、连接器内部进异物、板卡焊接时锡珠搭桥任何一条都可能把电源轨直接拉到地。这种故障的特点是电流瞬间飙升如果电源路径上没有任何限流机制PCB 铜箔会在几毫秒内过热甚至把整块板烧穿。第二种是过压和极性异常。现场接线不像实验室那么讲究操作员可能把24V接到12V的子系统上或者把电源正负极接反。更隐蔽的是感性负载在断开瞬间产生的反电动势可能直接叠加到电源轨上让耐压余量不足的器件瞬间击穿。第三种是热插拔浪涌。USB、RJ45、传感器插头这些接口在系统带电时插拔是常态。插头接触瞬间输入电容被强行充电会产生远超稳态的浪涌电流。连接器的金属触点会出现火花和烧蚀时间久了接触电阻变大故障更隐蔽。1.2 传统保护方案的局限做保护电路的手段不少但我一个个试下来每种都有短板。传统的玻璃管保险丝和贴片保险丝响应速度太慢。和负载短路时电流上升的速率相比保险丝的熔断时间往往不够快板卡该烧还是烧。自恢复保险丝PPTC能自动恢复但动作之后的残余电流不一定能把故障点彻底隔离而且恢复周期很长不适合需要快速复位的系统。用分立 MOSFET 搭限流电路是很多资深工程师的做法我也这么干过。用采样电阻感知电流再用运放驱动栅极来限制电流。这个方案的麻烦在于整个环路需要自己调补偿温度漂移和噪声都要处理。运放带宽、MOSFET 栅极电荷、回路分布参数一叠加很容易在某些条件下自激振荡。产品量产以后每一批器件的参数差异都可能让保护阈值飘移。集成电子保险丝eFuse就是为了解决这些问题出现的。它把功率开关、电流采样、限流控制、过压比较、过温保护、故障报告全集成在芯片内部外部只需要设置几个阈值电阻。TPS259483AYWPR 就是这种片子下面具体展开。2. TPS259483AYWPR 干了什么eFuse 的核心机制与关键参数2.1 eFuse 不是“智能开关”是“带大脑的功率通路”我第一次接触 eFuse 也有个误解以为它就是一颗可以远程开断的 MOSFET。实际用下来才发现TPS259483AYWPR 这类器件更接近“带大脑的功率通路”。它的内部结构大致可以理解成四部分功率 FET 承担主电流通路内部采样网络把流过的电流按比例缩小并和设定阈值比较栅极驱动电路负责调节 FET 的导通程度最后是各种保护比较器和状态输出逻辑。控制 MUC 的 EN 信号只是决定“让不让他工作”真正决定“他能扛多少、动作多快”的是外围电阻设定的阈值和芯片内部的控制环路。这里有一个特别重要、也容易被人忽略的点eFuse 在过流时的行为不是“立刻断开”而是“先把电流限制住”。功率 FET 的栅极电压会被闭环控制慢慢拉低让输出电压和输出电流降到一个安全值。如果过流持续存在芯片才会计时然后关断。这和保险丝“熔断即开路”的逻辑完全不同用起来心里要有数。2.2 选型时真正要盯住的几组参数看 datasheet 的时候很多人只盯着两个数最大输入电压和最大持续电流。TPS259483AYWPR 的型号后缀包含了电压和电流等级信息但那只是基础实际设计中我更关注下面这几组参数。一个是导通电阻 RDS(on)。它决定了正常工作时的发热损耗。公式很简单P I² × RDS(on)。如果负载持续电流是2ARDS(on)是100mΩ那这颗芯片自身就要散掉0.4W的功耗。在密闭的工业机箱里0.4W 可能意味着局部温升超过20℃直接影响系统可靠性。选型时必须结合散热条件不是额定电流够就行。另一个是电流限制精度。eFuse 的限流点是靠外部电阻设定的但芯片内部比较器的失调、采样网络的误差会让实际动作点和理论值有偏差。datasheet 上通常会给出一个百分比。比如精度是±10%你设定3A的保护点理论动作范围就是2.7A到3.3A。设计时不能让系统正常工作的最大电流贴着保护点必须留出足够的余量。还有就是过压保护阈值和欠压锁定。工业现场输入电压波动大TPS259483 这类器件一般内置了可调的过压比较器输入电压超过设定值就切断输出。欠压锁定则保证输入电压没有稳定到最低工作值之前输出不会开启。这两个参数直接决定系统在电压跌落或浪涌到来时是“硬挺”还是“从容切断”。2.3 故障上报信号是系统保护的“眼睛”TPS259483AYWPR 会输出一个电源正常Power GoodPG信号这对后端 MCU 来说非常重要。PG 信号逻辑上是开漏输出正常工作时输出高电平需要外部上拉发生故障时被拉低。我习惯把这个信号接到 PIC18F4455 的外部中断引脚上一旦拉低就立刻进中断处理。相比 MCU 轮询采样中断方式的响应是微秒级的能够第一时间触发系统级的联动保护。要注意的是PG 信号在输出刚开启的瞬间会经历一段低电平状态。因为输出电容充电需要时间输出电压没有达到 PG 阈值之前芯片认为“电源还没建立好”。MCU 收到这个下降沿的时候不要直接判定“故障”要先判断 EN 是不是刚刚拉高。这个问题我后面在实测部分会专门展开因为它引出了芯片和 MCU 之间配合的时序问题。3. PIC18F4455 补上最后一公里系统级保护管理的分工逻辑3.1 为什么选这颗 8 位 MCU可能有人会问eFuse 本身已经能保护了为什么还要加一颗 MCU我的理由是电源保护不是“切断”就完了真正复杂的是“切断之后怎么办”。什么时候允许重试重试几次故障有没有必要记录要不要把状态上报给上位机这些逻辑用分立器件搭会非常痛苦而一颗 MCU 可以把所有决策集中处理。PIC18F4455 是 Microchip 8位 MCU 里带全速 USB 2.0 接口的型号。选它的好处有几个方面工作电压范围 2V 到 5.5V可以直接和 3.3V/5V 逻辑电平的外围器件对接自带 10 位 ADC可以采集输入电压、输出电压、甚至芯片温度等模拟量有多个外部中断引脚连接 PG 信号绰绰有余。另外它工作在工业级温度范围-40℃到85℃在控制柜里用很稳。相比用专用的电源管理芯片MCU 方案最大的价值是可编程。今天这套逻辑是“过流锁存三秒后重试”明天客户说“故障必须断电直到人工复位”改几行代码就行不用改硬件。3.2 最小系统与接口设计我实际搭建的接口分配大概是这样的PIC18F4455 的一个普通 GPIO 接 TPS259483AYWPR 的 EN 引脚控制电源路径的开启和关闭。注意电平方向EN 高电平有效也就是说 MCU 默认输出低电平系统开机后再拉高。PG 信号接 MCU 的外部中断引脚同时接一个上拉电阻到 3.3V。PG 开漏输出不接上拉永远读不到高电平。TPS259483AYWPR 的限流电阻 ILIM、过压设定电阻 OVP 都放在芯片附近这些电阻是硬件保护阈值的基础和 MCU 无关。电源输入端留一颗 MCU 可以控制的 MOSFET 或者继电器我这里直接用了 TPS259483 自身作为开关没有加额外串联器件因为 eFuse 本身就承担了可控开关的功能。这里有个容易踩的坑EN 信号相对 MCU 的 IO 来说可能属于“慢速信号”但 TPS259483 内部对 EN 有一个不算太长的响应延迟。MCU 初始化时如果 GPIO 状态是悬浮的EN 可能会被外界噪声拉到高电平导致系统还没启动就提前供电。所以要确保 MCU 上电后先把 EN 对应的引脚配置为数字输出、输出低电平再去初始化其他外设。3.3 MCU 侧保护逻辑的软件框架软件方面我看的保护任务其实是一个有限状态机。系统有四个状态上电初始化、等待输出建立、正常运行、故障处理。下面这段代码是我在 PIC18F4455 上用的框架XC8 编译器逻辑做了简化但结构是一样的typedef enum { ST_IDLE, ST_START, ST_RUN, ST_FAULT } sys_state_t; sys_state_t state ST_IDLE; uint8_t fault_count 0; void interrupt high_priority chk_isr(void) { if (INT0IF) { // PG下降沿中断 INT0IF 0; if (state ST_RUN) { // 运行中出现PG拉低才算故障 state ST_FAULT; LATBbits.LATB0 0; // 关闭EN } } } void main(void) { // 初始化IOEN输出低PG输入 TRISBbits.TRISB0 0; LATBbits.LATB0 0; TRISBbits.TRISB1 1; // INTO配置 INT0IE 1; INTCONbits.GIE 1; while (1) { switch (state) { case ST_IDLE: // 延迟100ms等电源稳定 __delay_ms(100); LATBbits.LATB0 1; // 开启EN state ST_START; break; case ST_START: // 等PG变高若超时进入故障 if (PORTBbits.RB1 1) { state ST_RUN; } __delay_ms(10); break; case ST_FAULT: // 记录、重试或锁定 break; default: break; } } }核心逻辑并不复杂但有几个细节必须处理好。第一PG 信号的边沿可能带有毛刺特别是负载切换瞬间。PG 比较器本身有迟滞一般不太容易抖但如果布线不好、噪声太大MCU 端给一个5~10ms的软件去抖比较稳妥。第二故障处理不能只有“关断”一种策略。TPS259483 内部就有热关断保护关断之后芯片温度降到阈值以下会自动恢复如果 MCU 也同时做了“关断后重试”可能会和芯片内部的重试逻辑打架。我的做法是MCU 检测到故障后先把 EN 拉低等待 1 秒再尝试开启一次如果连续三次都在几毫秒内又检测到 PG 下降沿就彻底锁存必须人工复位。第三MCU 自己的 ADC 可以分担一部分监测。我会把 TPS259483 的输入电压和输出电压通过分压接到 MCU 的 ADC 通道每 100ms 采样一次。一旦发现输入电压的下降斜率异常比如电压在 10ms 内掉了 20%即便 PG 还来不及拉低也可以提前判断输入侧可能出了问题。这种边界情况是纯硬件保护发现不了的。4. 关键参数计算与布局布线把保护阈值“标定”成可用数字4.1 限流、过压和上升时间的设计流程TPS259483AYWPR 的硬件保护阈值不是靠 MCU 配置的而是靠电阻分压和电流设置电阻标定的所以计算必须严谨。限流电阻 ILIM 的标定思路是先确定系统正常工作的最大峰值电流然后乘一个安全系数。安全系数一般取 1.2 到 1.3 倍留出测量误差、线圈冲击电流和温度变化带来的余量。举个例子如果负载稳态电流是 1.5A但电机启动瞬间会冲到 2A那么限流点设定在 2.5A 到 3A 比较合理不能卡在 2A更不能低于 2A。这个限流电阻在 TPS259483 的数据手册里会给出一个计算公式一般形式是把一个集成电路内部常量除以目标电流值来得到阻值。具体数值要看所选型号的说明不同后缀的器件、不同版本的手册这个常量可能不一样。我个人的经验是先用公式算出一个标称值再结合器件内部的比较器失调范围手动算一遍最恶劣的上下限确认系统正常工作的电流始终落在设定范围之内。过压保护设定的思路是一样的。先把系统允许的最高输入电压确定下来比如 5V 系统允许到 5.5V芯片内部有一个基准电压不同型号可能是 1.2V 或 0.6V必须查手册确认通过两个电阻分压把输入电压映射到基准电压附近。当输入电压超过设定阈值时OVP 比较器翻转芯片关断。分压电阻的计算公式是OVP阈值 V基准 × (R上 R下) / R下电阻的精度建议选 1% 或更高温漂也要控制否则阈值会随着环境温度漂移。在工业现场往往有白天黑夜几十度的温差电阻温漂造成的阈值偏移可能比想象中严重。4.2 一个典型场景的具体计算我用一个实际例子把过程串一遍。假设我有一套 5V 供电的嵌入式系统最大稳态电流 1.5A瞬态尖峰到 2A要求输入超过 5.8V 就切断输出。限流部分取 2.5A 作为限流点根据手册公式计算出 R_ILIM 的标称值。同时确认在极限情况下电阻±1%、芯片内部比较器失调±5%实际动作范围大约是 2.35A 到 2.65A仍然高于正常峰值电流 2A安全。过压部分按手册基准电压算出分压电阻比例比如得到一个 10kΩ 和 2.2kΩ 的组合理论阈值是 5.78V。再计算电阻最恶劣情况下的偏差1% 精度对应的阈值偏差可以按比例算确认阈值不会低于 5.6V。这样即使输入真的到 5.6V系统还能正常工作只是保护点比理论值略高一点点。这类计算不难但每次都要把“最恶劣情况”代入手动验算一遍。偷懒的话量产之后才发现部分板子保护点偏低、启动时误动作排查成本会高得多。4.3 布局布线里最容易翻车的三个点第一是输入电容的摆放。TPS259483 的输入引脚一定要有一颗靠近引脚放置的陶瓷电容通常 0.1μF 到 1μF加一颗大电解电容做储能。如果输入电容离得太远线路电感和芯片内部的 FET 开关动作会产生振铃。我在示波器上见过因为输入电容摆放不当VIN 引脚在热插拔瞬间冲出超过输入电压两倍的尖峰直接把后级控制芯片打坏。第二是 PG 信号的上拉电阻电压域。PG 是开漏输出上拉电阻接到哪个电源轨高电平就是哪个电压。如果 MCU 的工作电压是 3.3V而 PG 上拉接到 5V那 MCU 引脚承受的电压就超过了它的绝对最大额定值即使不立即损坏也会影响长期寿命。所以上拉电阻要接到 MCU 同侧的电源轨。第三是功率路径的走线宽度和过孔数量。TPS259483 的持续电流标注得再好PCB 走线不给力也会让压降和温升失控。我的经验是用载流量经验公式快速估算1盎司铜厚下1mm 走线宽大约能安全过 1A 电流温升 10℃以内。2A 的持续电流至少走 2mm 宽的铜箔并且多打过孔把热量导到内层。大电流路径上的过孔不要只打一两个最好打一排减少局部热点。5. 实测复盘短路、热插拔、浪涌场景下的行为记录5.1 短路测试的真实行为我在实验室做了一轮短路测试用电子负载把输出端从空载瞬间切到近似短路。最直观的感受是cot死状态不是瞬间切断也不是无限短路。示波器上看短路发生的一瞬间输出电压先塌下去同时输出电流迅速冲到限流点。TPS259483 内部的限流环路在几十微秒内接管让电流被限制在设定值附近而此时输出电压基本被拉到零。随后芯片内部的定时器开始计时如果过流时间超过触发条件具体时长由芯片规格决定芯片完全关断输出PG 拉低。如果短路在限定时间内解除芯片会继续正常输出系统几乎无感。这个特性特别适合给后级电路一个“缓冲”。有些负载比如大电容、电机、加热丝在某种状态下本来就是近似短路如果保护电路立刻彻底断开系统反而会误报故障。TPS259483 的限流延时关断机制给了这些负载一个自我恢复的机会。5.2 热插拔场景下的输入浪涌控制热插拔测试是让我印象比较深的部分。输入端接一根长线缆在系统带电的情况下直接插入电源。物理上插入瞬间线缆与电源连接器的接触电阻极不稳定会产生火花。输入电容从0V开始充电充电电流理论上只受回路寄生电阻和电容容量限制可以用公式估算I浪涌 ≈ (V输入 - V电容) / R路径。对于低电阻的电源线这个电流可以达到几十安培足够把连接器触点烧蚀。TPS259483 的输入浪涌控制在这种场景下的表现不错。芯片内部会限制输入到输出的浪涌电荷量其实质是控制导通管的栅极电压上升斜率把向电容充电的电流限制在一个较低的值。示波器捕捉到的输入电流峰值相比完全没有保护的情况下降了一个数量级。这也引出一个设计建议热插拔端口处的输入电容不宜选得太大。虽然大电容能改善瞬态响应但它让插入时的充电浪涌更加剧烈。我一般把输入电容控制在 10μF 上下再配合芯片的浪涌限制这样连接器寿命友好很多。5.3 配置过程中最容易踩的几个坑实测过程中我踩过几个坑如果读者要自己搭希望下面这些提醒能帮你省下排查时间。第一限流电阻焊错或者选型不当会导致保护点严重偏移。我遇到过一颗电阻精度 5% 的情况下实际限流点比理论值低了 15%系统一启动就被误锁死。所以这个电阻一定要用 1% 精度并且物料上不要随意替换供应商。第二上升时间设置得过长。TPS259483 的上升时间一般可以通过外部电容调整用来说明输出轨的爬坡速度。如果把上升时间设得太长比如几毫秒还好但如果有后端芯片的 POR上电复位监控输出爬坡太慢可能让后端芯片一直在复位状态。反过来上升时间太短又会让浪涌电流过大。要根据后级负载的特性来调整。第三不要忽略 PG 时序导致的“假故障”。我第一次联调时就遇到这样的情况MCU 刚拉高 ENPG 信号短暂拉低我的中断服务函数把它当成故障立即又把 EN 拉低结果系统永远启动不了。后来在 ST_START 状态里加了判断PG 低电平持续超过 50ms 才算故障问题就解决了。第四也是很多人容易忽略的eFuse 的工作温度范围要看实际结局。TPS259483 内部有热关断如果散热不充分持续大电流下芯片温度升高到关断阈值会产生一个“周期性开断”的奇怪现象。在示波器上看着像是振荡其实是热保护在起作用。遇到这种情况优先检查 PCB 散热焊盘有没有连接到足够大的铜箔而不是怀疑芯片坏了。6. 后续演进与个人体会6.1 从“单路保护”到“多通道电源树”这套方案做完之后我开始琢磨升级方向。一块工业主板上通常有多个电压轨5V 给传感器、3.3V 给主控、12V 给电机驱动。每一路都配一颗 TPS259483 之类的 eFuse再让 PIC18F4455 统一管理就构成了一个小型电源树。MCU 可以按顺序启动各路电源先开 3.3V 给 MCU 自己稳定后再开传感器电源最后才给电机供电。任何一路故障MCU 都能精确定位是哪一路出了问题然后通过 USB 把故障码上报给上位机或者在本机通过状态 LED 显示出来。这个玩法比单路保护有意思得多而且代码量增加不多。重点在于软件状态机要足够清晰每一路电源的启动条件、超时时间、故障处理策略都要分开定义不能求省事把逻辑写成一锅粥。6.2 一点实际操作的体会最后讲一点比较主观的体会。硬件保护设计里我吃过最大的亏是“保护参数卡得太极限”。刚接触 eFuse 的那阵子我总是觉得保护点越接近负载极限越显得“精密”结果生产出来的板子在温度稍高一点的环境里就各种误动作。后来想明白一个道理保护电路存在的意义是隔离故障不是在正常工作的边界上反复横跳。限流点、过压点这些参数都要在满足保护要求的大前提下尽可能远离正常工作区间。TPS259483AYWPR 和 PIC18F4455 的组合让我比较满意的地方是它把“硬件快速保护”和“软件决策保护”这两层能比较干净地分开。硬件层处理毫秒级甚至微秒级的电流、电压异常把板卡从物理毁损中救回来软件层处理秒级的管理逻辑决定故障之后怎么恢复怎么记录。两层各管一摊问题定位起来也清晰很多。如果你也在设计类似的电源路径保护方案建议从一个小功率的负载开始验证先把限流、过压、PG 时序、MCU 中断逻辑跑通再逐步增加输出电流和故障类型。用电子负载做短路测试、用长线缆做热插拔测试测试条件和真实现场越接近后期交付时越心里有底。
返回列表