ARTICLE DETAIL

资讯详情

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

eFuse+MCU:构建可监控、可自愈的工业电源保护方案

eFuse+MCU:构建可监控、可自愈的工业电源保护方案 去年给客户做一块24V供电的工业边缘网关时对方提的第一条要求不是算力多强、接口多全而是“任何一路外设短路都不能把整块板子的电源拖死”。当时板子上有RS485、CAN、千兆网口、好几路传感器供电任何一个现场接错线都可能直接把后端DCDC打挂。用传统保险丝换起来麻烦恢复慢也没有任何状态反馈。后来我把TI的TPS259483AYWPR电子保险丝和Microchip的PIC18LF47K42放到一起做了一个可监控、可配置、可上报故障的电源保护方案实测下来稳定性和可维护性都好了不止一个档次。这套组合适合谁如果你是做工业控制器、边缘网关、传感器节点、电机驱动底板这类嵌入式硬件又刚好对“过流保护”的设计还停留在自恢复保险丝阶段那这篇文章应该能帮你把电源路径的防护等级往上抬一档。下面我会把选型理由、接线方式、参数计算、固件策略和踩过的坑一次性讲清楚。1. 为什么电源路径保护不能只靠一颗保险丝1.1 现场故障不是“烧断就完事”而是要能自愈和上报工业设备最常出现的电源故障其实是两类一类是负载短路另一类是热插拔瞬间的浪涌电流。传统玻璃管保险丝对短路有效但熔断以后必须人工更换放在墙角机柜里的设备基本等于停机一晚上。自恢复保险丝倒是能自动恢复但它的动作电流精度很差而且高温下很容易误动作恢复后残留阻抗还会导致后面的DCDC输入电压偏低。更要命的是这两种方案都没有“状态输出”。系统只知道电源没了但不知道是过流、过压还是温度太高导致的。我调试那台网关时就因为一个传感器模块内部电容充电太猛让5V自恢复保险丝断断续续保护了好几次最后才定位到是某个MPU模块的上电时序问题。如果当时有一颗能给出故障引脚信号的保护器件排查时间能省一半。1.2 电子保险丝和普通保险丝的本质区别电子保险丝eFuse不是“换个更快的保险丝”它的核心是内部集成了一颗功率MOSFET通过控制栅极电压来限制电流。好处是动作阈值可以通过外部电阻设定、响应速度可以做到微秒级、而且在电流限制模式下不会被烧掉故障消失后可以重新开启。这就让“保护”从被动熔断变成了主动管理。我把普通保险丝方案的典型表现和eFuse方案做了一张对比表方便你直观理解对比项传统玻璃管保险丝自恢复保险丝TPS259483AYWPR电子保险丝过流动作精度较差受温度影响明显误差大还受环境温度干扰阈值由外部电阻决定一致性高故障后可恢复性需人工更换自动恢复但残留阻抗大可控恢复可锁存可重试状态输出无无有故障指示引脚可接MCU浪涌电流控制无无可编程压摆率限制启动浪涌反向电流保护无无支持反向电流阻断做完这张表我当时就决定把客户那条“不要拖死整块板子”的需求交给eFuse去做然后让MCU负责记录和上报。2. TPS259483AYWPR替你干了四件大事2.1 限流不是简单切断而是先“钳住”再处理TPS259483AYWPR最核心的工作是限流。它的ILIM引脚通过一颗外部电阻设定电流阈值。当负载电流超过设定值它不会像保险丝那样直接断开而是先把电流钳制在限制值附近让电压缓慢跌落。这种“恒流限流”的特性非常关键对于电机堵转、继电器线圈冲击这类短暂过流场景设备不会直接掉电重启系统还能继续维持一小段时间等故障消退了再恢复正常输出。我在设计时把限流值设在额定电流的1.3倍左右。比如某路负载正常稳态功耗是2A那ILIM就设在2.6A上下。太低了正常波动都会触发保护太高了短路时风险又太大。这里要注意ILIM电阻本身也有精度误差设计时要留出5%到10%的裕量我一开始就吃过这个亏后面第6节会细讲。2.2 软启动和过压钳位是“热插拔”的保护伞另一个容易忽略的功能是输出压摆率控制。通过连接在特定引脚上的电容可以设定输出电压从0升到目标值的时间。这个功能对容性负载特别友好。比如某路输出后面直接接着一个220µF的大电容上电瞬间如果没有压摆率控制充电电流可能冲到好几安培直接把前级电源拉垮。但有了软启动电流会被限制在一个平滑上升的曲线内热插拔任何一个板卡都不会让母线电压出现明显跌落。TPS259483还提供了输入过压钳位能力。当输入电压出现异常尖峰时内部钳位电路会限制输出端的电压幅度避免后级负载被烧掉。这对24V工业总线这种经常有感性负载反电动势干扰的场合很有用。2.3 反向电流阻断防止“倒灌”嵌入式系统里还有个隐患当你的主电源因为某种原因掉电时输出端的大电容可能会通过MOSFET体二极管反向灌回输入端造成后端DCDC反向供电让系统进入一个不稳定的半死状态。TPS259483内置了反向电流阻断一旦检测到输出端电压高于输入端就会主动切断通路。这个功能在地面电源冗余设计里非常有用两块电源模块并联时哪边也不至于被另一边“倒灌”。2.4 故障输出引脚让系统“知道”发生了什么这颗器件提供了故障指示输出当发生过流、过压或过热保护动作时会把故障引脚拉低。这简直是为MCU监控量身定做的。我把这个引脚直接接在PIC18LF47K42的GPIO上固件只要检测这个引脚的电平变化就能立即知道电源路径发生异常而不需要靠ADC去反复采样电压。很多人觉得电源保护是纯硬件的事跟软件没什么关系。但实际做下来如果没有状态引脚你只能靠“输出掉了”这种间接现象去猜排查效率非常低。有了FLT引脚整套系统的故障可观测性一下子就不一样了。3. PIC18LF47K42在系统里到底扮演什么角色3.1 为什么要用MCU来“管理”一颗电源保护芯片有人可能会问eFuse不是自己就能保护吗为什么还要外挂一颗PIC18LF47K42因为“保护”和“管理”是两码事。eFuse负责在微秒级响应但它不会记录历史故障、不会把故障消息上报给上位机、也不会在不同负载之间做合理的上电时序控制。而PIC18LF47K42这颗芯片正好适合干这些脏活累活。PIC18LF47K42是Microchip的8位低功耗MCU工作电压可以低到1.8V支持独立的多电压I/O域而且片内带了带计算功能的ADC、比较器、DAC、可配置逻辑等等一堆外设。这意味着它不需要外部运放和逻辑门光靠内部外设就能做信号调理和故障判断外围元件可以做得非常精简。3.2 具体接线哪些信号要连到MCU我给出我当时用的接线方案供参考。以下省略了具体引脚号但逻辑是通用的信号方向TPS259483AYWPR侧PIC18LF47K42侧说明使能控制ENGPIO输出MCU控制什么时候开启输出故障状态FLTGPIO输入低电平有效故障时拉低电流反馈IMON/模拟反馈ADC通道按比例读出当前负载电流输出状态PGGPIO输入输出正常时的状态指示通信I2C/SPI同一总线把状态信息上报给上层控制器其中最关键的是使能和故障状态这两个信号。我在固件里做了一个很简单的逻辑开机后先让各路电源处于关闭状态然后逐一使能每路使能后等一段时间确认PG引脚到位后再使能下一路。这样做的好处是避免了所有模块同时上电带来的冲击电流叠加。如果某一路使能后FLT立刻拉低那就说明这路负载可能已经短路固件直接跳过这一路不影响其他电路启动。3.3 多电压I/O域带来的接线自由度PIC18LF47K42其实有一个我特别在意的特性多电压I/O。它允许一部分引脚工作在1.8V域另一部分引脚工作在上位机接口的3.3V域。在我这块板子里MCU本身用3.3V供电但I2C总线是挂在另一个5V域上的直接用MVIO功能把对应端口设置为5V兼容省掉了电平转换芯片。这种细节在工业底板设计时能省下不少面积也能少掉一个故障点。4. 固件侧真正要写好的三块内容4.1 ADC采样不是简单读一个电压就完事读取电流反馈时我最担心的是噪声。工业现场有电机、继电器、开关电源电磁环境相当恶劣。如果固件直接把ADC原始值拿来当判断依据出现误报是迟早的事。我的做法是让PIC18LF47K42的ADC工作在高分辨率模式然后连续采集多轮取平均。比如每2ms读一次连读8次取平均再和阈值比较。这个时间窗口对毫秒级的电源故障足够快又能滤掉大部分高频噪声。另外还要做“滞回比较”进入过流状态判定设为95%的阈值退出设为80%。不然电流恰好卡在阈值附近时状态会在“正常”和“过流”之间来回跳。4.2 故障上报本地LED不够要能发到上位机我在这块板子上留了一路I2C接口用来和上层工业主控通信。每次eFuse发生保护动作PIC18LF47K42都会记录一个带有时间戳的故障码比如“通道1过流”“通道2过压”“通道3过温”然后通过I2C放进一个环形缓冲区上层主控随时可以拉取。一开始我没做去抖结果继电器触点弹跳的时候FLT引脚会被拉低几百微秒然后恢复。如果固件立刻上报就会产生一批“幽灵故障”。后来我加了一个10ms的去抖窗口FLT引脚必须持续拉低超过10ms才被认为是一次有效故障。过了这个坎误报率基本清零。4.3 上电时序与恢复策略锁存还是自动重试恢复策略是最考验产品定义的地方。对于可热插拔的外设接口我倾向让固件自动重试三次第一次失败后等待200ms重试第二次失败等待1s重试第三次还失败就直接锁存并上报要求人工介入。因为外设热插拔时可能出现瞬时短路重试几次往往能恢复。但如果连续三次都过流那大概率是硬件已经损坏继续重试只会反复冲击电源这时候锁存反而更安全。对于不能断电的核心负载比如主控板本身我一开始就不让它走自动重试逻辑任何一次过流都直接锁存并向维护人员发出明确告警。简单说就是外围接口可以“宽容”核心电源必须“严格”。5. 给一套12V/5A负载定完整参数从算式到实测5.1 电流限值怎么选算上裕量才算数我拿一套真实的12V工业负载来举例子。这个负载包含了一个ARM主控板、两个传感器供电模块和一路RS485收发稳态电流加起来大约3.8A短时峰值偶尔到4.2A。按我的习惯ILIM先按峰值电流的1.2倍取也就是4.2 × 1.2 5.04A取整为5A。接下来还要考虑器件本身的限流精度和ILIM电阻的温度漂移。如果电阻用温漂50ppm的精密电阻那限流值可以考虑在5A到5.5A之间找一个平衡点。我这里最后定在5.3A左右这样既不会在4.2A峰值时误触发又能在短路时把能量控制在安全范围内。5.2 软启动电容的选择先用公式算再上示波器看软启动时间主要由外部电容容量决定。我按输出电压上升时间粗略估算需要的充电电流大概是I_charg
返回列表