ARTICLE DETAIL

资讯详情

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

eFuse+MCU协同:工业电源路径保护与故障监测设计

eFuse+MCU协同:工业电源路径保护与故障监测设计 做嵌入式这几年我吃过不少“电源没做好”的苦头。一块看起来很正常的主板接上24V工业开关电源的那一瞬间单片机莫名其妙复位一台现场的CAN节点设备因为旁边有电机起动通信模块连续烧了两片——这些问题十有八九都出在电源路径上。上电浪涌、瞬时过流、输出短路、热插拔打火任何一个都能把板子带走。后来我在项目中引入了TPS259483AYWPR这颗集成式电子保险丝eFuse配合PIC18F96J65这颗自带CAN和USB的单片机做监控协同才把电源路径保护从“一个保险丝”变成了一套看得见、报得出去的管理机制。这篇文章就围绕这套方案聊聊选型思路、关键参数设计和我在实际调试里踩过的坑适合正在做工业控制板、嵌入式设备电源轨的硬件工程师和嵌入式软件工程师一起看。1. 为什么要动电源路径工业现场的供电从来不是“插上就能用”1.1 那些年我见过的电源故障先说几个真实场景。第一个客户把设备装在产线上结果每次旁边的大功率变频器启动控制板就死机。用万用表测5V轨道在启动瞬间掉到了4.2V持续了大约20毫秒。这个时候如果后端模块没有足够的欠压耐受能力就会直接复位。第二个场景更典型现场工人带电插拔一个传感器模块结果接口的电源引脚先接触上瞬间产生火花把模块内部的LDO打穿了。传统玻璃管保险丝反应太慢根本来不及保护。第三个是批量生产时发现的某批板上电瞬间偶发性烧限流电阻后来查到是反接了电源极性防反接二极管没扛住。这些问题的共同点是什么供电不是恒压源电流也不是稳定不变的。嵌东式和工业应用面对的是热插拔、浪涌、短路、反接、大负载阶跃这一整套恶劣工况。传统的保险丝加TVS管方案只能防最粗暴的短路和过压对毫秒级的浪涌和接触打火基本无能为力。所以这几年我在新设计里都愿意给电源路径加一个主动保护的环节也就是电子保险丝。1.2 分立方案 vs 集成eFuse为什么我最终选了TPS25948系列早几年我做的电源路径保护是分立的一颗P沟道MOS管加一个比较器加一个精密采样电阻再加上一堆电阻电容把限流、过压、反接保护全部分开搭。优点是很灵活缺点是调试时间长而且每一个环节的精度都靠电阻精度撑着。温度一变化比较器阈值跟着漂现场出了故障又不好追溯。后来我转向集成式电子保险丝最早用的是TI的TPS25948系列。这一系列器件把功率MOSFET、限流放大器、过压保护、欠压保护、反向电流保护、故障锁定逻辑全部封装在一颗芯片里。对比分立案最直观的收益是面积大概缩小了一半而且保护参数可以通过外部一颗电阻、一颗电容来设定一致性好很多。TPS259483AYWPR就是我们选到的型号输入输出范围和工作电流档位覆盖了我们5V轨道的需求。选型时我也考虑过用热插拔控制器加外部MOSFET的方案但那种方案一般用于大电流板卡比如服务器背板12V下面几十安培的应用。我们这里最多几安培集成eFuse内部FET的导通电阻足够低完全不需要外扩。后续调试也证明集成方案在过流关断速度上比外部MOS方案更有优势因为内部电流检测环路的寄生参数是固定的不用自己调补偿。1.3 PIC18F96J65在系统里到底扮演什么角色可能有人会问保护电源路径不是有eFuse就够了吗为什么还要拉一颗单片机进来这就是这套设计里比较有价值的地方。TPS259483AYWPR本身只管“切断保护”它不会告诉你现场发生了什么、电流多大、过流了多久也不会根据业务逻辑去决定要不要重新上电。而PIC18F96J65是Microchip的8位单片机自带USB和ECAN控制器很适合做工业现场的监控节点。在这套系统里PIC18F96J65负责三件事第一通过GPIO和I2C读取电子保险丝的工作状态与电流电压数据第二根据预设策略控制EN使能引脚决定是否允许电源输出第三把保护事件和运行参数通过CAN总线发送给上位机或者中控系统。这样电源路径保护就从一个“烧了就断”的无脑保险变成了一个“提前感知、实时记录、按策略恢复”的智能电源管理单元。2. TPS259483AYWPR 关键参数与外围设计不是简单串个限流电阻2.1 输入输出范围与最大持续电流TPS259483AYWPR的输入电压范围按数据手册大概在2.7V到18V之间这个范围对我们来说很合适。常见的工业24V经过隔离DC-DC之后会稳定到5V所以eFuse直接放在5V轨道上输入规格富余量充足。如果将来要直接保护12V轨道这颗芯片也能胜任硬件上不需要重新选型。电流档位方面我们项目里把目标限流值设定在2A左右主要是给传感器模块、CAN收发器和通信子板供电。选型时要注意一件事芯片标注的“最大持续电流”往往高于你实际能一直跑的电流因为封装散热和PCB铜皮面积会把实际能力拉低。我遇到过很多新手看着手册标称5A就按5A设计结果60℃环境温度下跑满载直接触发热关断。所以我建议按目标工作电流的1.5倍选限流档位给热裕量留够。2.2 限流值、启动压摆率和定时器的设定限流值由ILIM引脚对地的电阻决定。每家芯片的对应关系不一样TPS25948系列使用的是“阻值越小限流越大”的方向具体阻值和限流电流的对应关系要到数据手册的曲线上查。我设计时习惯把目标限流点放在电阻标称值的中间避免靠近上下限。比如目标2.2A就选一个能让ILIM落在2A到2.5A之间的电阻优先用1%精度贴片电阻。启动压摆率则通过dVdT引脚的对地电容设定。这个电容越大输出端的电压爬升越慢对后级容性负载的冲击就越小。公式不用死记手册会给参考表格我通常的做法是先按负载端的等效电容估算一个最小启动时间再留三倍裕量。比如输出端有470uF电容负载等效也差不多估算需要8毫秒爬升那我就会选一个让启动时间到20毫秒左右的电容值。太快的启动会让输入电源的电压瞬间被拉垮太慢则会让系统长时间处于低电压状态。后级设备有些是不允许的。故障延时由接在定时器引脚上的电容控制它决定了当触发过流之后多久才真正关断。这里有个容易踩的误区我放在后面调试部分细说。2.3 故障信号的读取和自动重试接线与逻辑TPS259483AYWPR有一个故障指示输出通常在触发保护后拉低。这颗输出是开漏结构必须外部接上拉电阻到单片机的IO电压。我们这里是3.3V的PIC18F96J65所以上拉到3.3V而不是拉到5V避免给单片机灌进去超压。EN使能引脚的控制也要仔细设计。很多设计直接把这根引脚接到MCU的GPIO但忽略了上电瞬间MCU的GPIO处于高阻态芯片默认状态可能是“使能”。如果后级负载还没准备好比如DC-DC还没稳定电子保险丝就提前打开了容易造成不可预期的启动电流。我们的做法是加一个由电源轨到EN引脚的RC延时MCU初始化完成后再通过GPIO真正接管控制。这样从一开始就是可控的。2.4 保护特性组合过压、欠压、反向电流、浪涌这颗芯片最让我满意的是“组合保护”而不是单点保护。输入端有欠压和过压检测可以在电源跌落或过冲时快速关断输出端有短路保护负载真短路时能在微秒级时间内限流并关断还有一个很实用的特性是反向电流保护当VOUT侧电压高于VIN侧时内部路径能够阻止电流倒灌。对我们系统来说反向电流保护特别重要。因为后级如果有大电容储能在输入端突然断开时电容会通过电源路径倒灌回来。如果没有阻断机制轻则损坏前级DC-DC重则让单片机在已经断电的状态下还维持着诡异的电平把GPIO打坏。这其实是一个很多嵌入式工程师忽略的隐性故障源。浪涌电流方面虽然启动压摆率电容能压住大部分冲击但如果是热插拔场景插头接触瞬间的电压突变仍然可能形成尖峰。我的经验是配合输入端的大容量电解电容一起工作eFuse自身是控制“电流弯道”的而输入电容首先把“冲击能量”吸收掉两者是协作关系不是替代关系。3. PIC18F96J65 的监控与联动让保护“看得见、报得出”3.1 引脚分配与硬件接口把这颗单片机拉进系统之后首先要规划好引脚。我的分配思路是这样专门用一个GPIO接FLT故障引脚配置成输入并打开内部弱上拉因为外部已经上拉这里不需要再开再用一个GPIO控制EN使能输出然后I2C总线上挂一颗INA226电流监测芯片负责采集输出电流和电压CAN收发器挂在ECAN模块的对应引脚上用于上报数据再留一个ADC通道直接采集输入电压做进系统的电源健康监测。为什么电流采样不直接用eFuse的监测引脚而要额外挂INA226因为eFuse本身只为保护和限流服务它内部没有高精度的数字电流测量功能。INA226是16位精度的电流/功率监测芯片通过I2C读寄存器就能拿到mV级别的电压采样和电流值。这样我们既能拿到“保护阈值是否触发的开关量”又能拿到“当前实际电流是多少的模拟量”一个负责快一个负责准各司其职。3.2 初始化流程从复位到稳定供电的状态机PIC18F96J65上电以后我建议不要立即把电源使能引脚拉高。初始化程序应该有一个明确的状态顺序先配置系统时钟和IO方向再把所有外设复位然后读取I2C总线上的INA226最后才根据预设条件决定是否置位EN。我把这个顺序做成了一个简单的状态机状态包括等待电源稳定、检测输入电压、启动电源输出、运行监控、故障处理。在等待电源稳定阶段程序至少等200毫秒让前级DC-DC的输出完全建立起来。检测输入电压阶段是用ADC连续采几次确认电压在正常区间内。启动电源输出阶段才把EN拉高同时启动一个“启动完成”定时器如果在设定时间内FLT引脚有动作说明启动异常就快速关断并上报。3.3 ADC采样电流与电压数据校准和阈值判断INA226的原始寄存器读出来的是电压和电流的ADC码值不能直接用。我按手册里的公式把原始值转换成实际值比如电流寄存器每bit对应的数值是采样电阻电压和固定系数的函数。我们用的采样电阻是10毫欧的大功率合金电阻布局时单独留了开尔文连接焊盘这样采样误差不会受到主电流路径的压降干扰。软件里还要做零飘校准。每次系统冷启动先让电源输出处于关断状态这时候读一次INA226的电流值理论上是0但实际可能有个十几mA的偏移把这个偏移记录到flash里之后每次读取都减去它。不做这一步的话低电流状态下的百分比误差会很大明明后级已经休眠了上位机看到电流还有0.1A会报糊涂账。阈值判断不要只做一个固定上限。我在这里做了两级第一级是预警阈值比如设定在1.8A当电流持续超过预警值500毫秒就开始通过CAN上报“电流偏高请关注”但不做断电处理第二级是硬关断阈值依赖eFuse自身的限流保护FLT引脚一旦拉低软件直接进入故障处理状态。这种软硬结合的方式能避免因通信瞬间卡顿造成的偶然超阈值误动作。3.4 通过CAN/串口上报故障给上位机一个交代电源保护了但现场维护人员怎么知道发生了什么这是很多设计的盲区。我们这套系统里PIC18F96J65把故障信息打包成CAN帧上报。CAN报文的ID按设备地址区分数据域包含故障类型过流、过压、欠压、启动失败、重复重试、输出电流值、输入电压值和工作温度。在极端情况下CAN总线本身也可能异常所以我还留了一个UART调试口方便在现场拿调试线直连查看。故障处理策略上我做了两种模式第一次故障触发后软件自动尝试重新使能一次间隔2秒如果第二次启用仍然在短时间内触发FLT那就进入锁存状态直到收到上位机的清除命令或物理断电重启。这样既照顾了瞬时过流这类可恢复故障又避免在持续短路的情况下反复冲击电源电路。4. PCB布局与实测保护器件最怕layout不给力4.1 输入/输出电容摆放我踩过的地弹坑第一次做eFuse的时候我参照数据手册的典型电路把输入输出电容都放了但布局比较随意电容离芯片引脚有一段距离。结果示波器一测启动瞬间输入端电压纹波非常大甚至出现负向毛刺。后来我意识到这是寄生电感在捣乱电容离芯片越远等效串联电感越大瞬态电流变化时电感上的压降就越明显。正确的做法是输入电容要尽可能靠近VIN和GND引脚而且要走粗短走线输出电容靠近VOUT和GND。因为eFuse内部集成了功率MOSFET开关瞬态di/dt很高如果电流环路面积太大整个板子都会变成噪声发射源。我用两层板做样板时专门把电源路径走线加宽输入电容和芯片在同一层地过孔打在电容旁边形成一个较小的电流回路问题就消失了。4.2 电流检测路径的Kelvin连接如果采样电阻是外部的它的开尔文连接一定要单独从电阻两端拉细线到INA226的输入引脚绝对不要和主电流走线共享走线。因为我们用的10毫欧采样电阻满量程2A电流下也只有20mV的压降主走线上的铜皮电阻稍微大一点误差就完全覆盖了真实信号。我在第一版PCB上就犯过这个错。采样电阻两端的主电流走线是1mm宽铜皮长度大约2厘米这段铜皮电阻大概有1.2毫欧和采样电阻的10毫欧串在一起实际测出的电流偏高了十多个百分点校准了很久才发现是layout问题。后来把采样信号的细线从电阻焊盘根部引出因为细线上几乎没有电流流过所以不存在压降测出来的值才准。4.3 从示波器看启动波形压摆率、浪涌、限流进入上电调试那天我印象很深。示波器接上输出端按一下电源按键正常状况下应该看到一条平滑的爬升曲线从0V到5V。但我第一次看到的却是电压先冲到接近5V然后掉下来再重新爬升像打了个嗝。这就是典型的启动电流超过了限流值eFuse进入了恒流保护状态输出电容先被充到一部分电压然后因为后端负载也在吃电流导致电压增长变慢甚至下降。启动波形要关注三个点爬升斜率是否在预期范围内、有无过冲尖峰、进入稳定后有无低频振荡。如果爬升太快要增大dVdT电容如果稳定后电源轨有振荡要检查输出电容的ESR是否过低有些eFuse内部环路在超低ESR下会不稳定需要根据手册推荐的ESR窗口选择电容类型。4.4 热设计考虑eFuse的功耗和散热电子保险丝本质上是一只智能MOS管持续工作时的功率损耗等于电流的平方乘以导通电阻。TPS259483AYWPR的导通电阻在几毫欧到几十毫欧级别看着不大但在2A电流下如果导通电阻是50毫欧功耗就是0.2W对于一颗小型封装芯片来说这个热量集中在很小的面积上温度可能比周边环境高出不少。我在PCB上给这颗芯片的参考地焊盘和散热焊盘做了大面积的铺铜并且打过孔到内层和底层形成一条散热通路。另外我在高温环境测试中发现当环境温度超过70℃时芯片的限流阈值会随着结温变化产生偏移。所以如果产品要跑严苛工业温度范围限流点设定就应该按高温下的实际曲线来校准而不是只看常温数据。5. 调试实录一次上电就烧限流电阻的排障经过5.1 现象描述上电瞬间系统复位有一块样板在实验室表现很好到了客户现场就出问题。现象是设备每次上电系统启动到一半就复位偶发性伴随电源指示灯闪烁。由于问题不是每次都出现一开始怀疑是软件启动时序有bug后来把逻辑分析仪和示波器一起挂上去定位到问题就出在电源路径上。示波器抓到的波形显示5V电压在设备启动瞬间会有一次明显的下陷最低掉到3.8V持续大约50毫秒。电压跌落的时机正好在后级通信模块初始化的瞬间也就是负载电流突然增加的那一下。这个跌落幅度对于PIC18F96J65来说已经太低了虽然器件本身有欠压复位保护但跌落造成的复位让整个系统进入了反复重启的循环。5.2 排查链路示波器、电流探头、逻辑分析仪排查过程比较典型也算是一个标准流程。先是用电压探头看各轨电压确定跌落发生的位置是在eFuse的输出侧还是输入侧。如果输出侧跌而输入侧稳问题出在后级或者eFuse限流设置如果两侧一起跌就要查前级DC-DC的带载能力。实测结果非常有意思eFuse输入侧5V很稳输出侧在负载阶跃瞬间明显跌落这说明问题大概率是eFuse自身的限流环路响应不够快。然后用电流探头观察输出电流波形果然在通信模块初始化瞬间电流从0.6A跳到接近限流点而且在这个状态下持续了大约30毫秒。因为故障定时器时间设得太短eFuse的限流电路一直在“限流-恢复”之间振荡造成输出电压被拉低。5.3 根因负载电容超出启动能力柔性启动时间不足进一步分析根因有两个。第一后级通信模块的输入电容和本板预留去耦电容加起来偏大而启动压摆率设定得比较激进输出要在很短时间内填满这些电容导致充电电流长时间贴着限流阈值走。第二故障延时电容取值偏小也就是eFuse对“过流多久才算故障”的判断过于灵敏正常负载瞬态稍微超限就被当成短路处理。我没有直接改限流电阻提高限流值而是先调整dVdT电容让输出爬升变慢从大约5毫秒拉到18毫秒同时把故障延时电容加大让瞬时过流不会立刻进入关断流程。这两个改动之后上电瞬间的电流尖峰显著降低电压跌落只剩下不到200mV系统启动恢复正常。5.4 改进后的波形与结论改进后的启动波形是一条缓慢爬升然后平滑稳定的曲线电流峰值不再触碰限流点FLT引脚全程没有动作。之后我又做了连续100次上电测试没有一次复位。这个案例有个值得记住的结论面对“启动失败”类问题不要急着拆电源或者换大电流的器件先观察是限流点不够还是负载电容太大、压摆率太猛所导致的伪过流。很多时候一个启动电容的阻值调整就解决了。6. 常见问题速查与量产经验6.1 电源路径保护常见问题表格这里整理了一份在实际项目里反复出现的故障现象和对应处理办法可以直接对照排查。故障现象可能原因处理建议上电瞬间FLT闪一下又恢复启动浪涌电流触发限流故障延时太短增大dVdT电容延长启动爬升时间适当加大故障延时电容系统反复重启电压跌落明显负载电容偏大限流进入振荡先调整压摆率电容再结合实际情况决定是否调整限流电阻不同板卡同一位置触发限流电流不一致ILIM电阻精度不足或PCB布局耦合噪声换1%精度电阻ILIM引脚走线远离功率开关节点热插拔瞬间输入电压尖峰损坏前级输入端电容不足接触弹跳冲击在VIN端增加电解电容和陶瓷电容的组合减小环路面积短路排除后eFuse无法恢复芯片进入锁存保护模式软件设计为允许通过EN引脚或断电重新使能或者按产品策略锁存等待人工复位INA226读数比万用表偏大采样电阻开尔文连接不当拆掉共享主走线改为从采样电阻焊盘根部单独引细线6.2 量产烧录与一致性热插拔测试要注意什么到了量产阶段很多实验室里没注意的问题会成片冒出来。首先是一致性问题ILIM电阻和dVdT电容我建议直接用1%精度和温度系数好的型号这里省下的几分钱会在生产一致性和售后上花掉几倍的精力。其次生产测试时一定要做热插拔和短路测试不能只上电看电流。如果你要过认证或者满足客户验收短路测试还要注意断电后的残留电荷。我曾见过一台设备在短路测试后由于后级大电容放电路径不畅维护人员刚碰到接口就被轻微电击虽然电压不高但体验很差。建议在eFuse输出端加一个合适的放电电阻保证断电后短时间内电压能泄放掉。量产烧录方面PIC18F96J65的程序烧录我用的ICSP接口。烧录器建议在系统设计时就留出测试点或者接插件而不是等板卡贴片完之后再飞线。另外既然单片机要存储校准偏移和故障记录flash操作要带上擦写均衡和校验防止设备在运行中意外改写配置。6.3 后续扩展与个人体会这套设计后续扩展空间还很大。比如PIC18F96J65的ECAN模块可以接到工业CANopen网络里把每一路的电源健康状态做成标准的PDO报文这样整个产线都能实时掌握设备电源情况。再比如可以通过USB接口连接本地调试工具直接把FLT、电流、电压、温度曲线拉出来现场排障效率会高很多。最后分享一个我做电源路径保护多年最深的体会选电子保险丝不是选一个“会断路的开关”而是选一个能在毫秒级时间内做出正确响应、同时还能把故障透明化上报的协作伙伴。TPS259483AYWPR和PIC18F96J65这对组合前者解决了“迅速度过故障”的问题后者解决了“故障可感知、状态可追溯”的问题。硬件上用开尔文采样保证数据准确软件上用状态机控制启动时序和故障恢复策略这两边配合好了工业现场的电源问题才算是真正有底了。
返回列表