ARTICLE DETAIL

资讯详情

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

eFuse+MCU组合:工业24V电源路径保护设计实践

eFuse+MCU组合:工业24V电源路径保护设计实践 最近在给一个工业数据采集终端做电源架构优化碰到一个很有意思的组合TI 的 TPS259483AYWPR 热插拔保护芯片加 Microchip 的 PIC18F45K42 单片机两个看起来八竿子打不着的器件凑在一起正好把嵌入式和工业应用里最头疼的电源路径保护问题解决得明明白白。这个方案针对的场景很具体系统输入的 24V 工业电源不稳定有浪涌、有跌落、有反接风险而后级的 DC-DC、传感器、通信模块又金贵得很不能随便被一次错误上电就带走。传统做法是用分立器件搭过压过流保护电路复杂、参数难调、还占面积。TPS259483 这种 eFuse 集成方案本身就能做限流、过压、欠压、软启动、反向阻断再配上 PIC18F45K42 做高精度 ADC 采样、故障状态记录和动态控制整套系统既有模拟电路的速度又有数字化管理的灵活。这篇文章把我在实际调试中摸出来的思路、参数计算方法和踩坑记录整理出来给做工业控制、物联网设备、电池供电系统、24V 供电总线应用的朋友做个参考。1. 项目整体设计与思路拆解1.1 为什么工业电源路径比普通消费电子更娇气先说场景。消费电子的电源设计USB 进来 5V旁边放颗自恢复保险丝加 TVS 基本就够用了。但工业设备完全不是这么回事供电总线可能长达几十米环境里有电机启停、变频器、继电器吸合这些负载在动作瞬间会在母线上制造出远超额定值的尖峰电压和电流毛刺。我实测过一条用于车间传感网络的 24V 母线在附近一台 2.2kW 电机启动瞬间母线电压能从 24V 蹦到接近 40V持续几毫秒电流尖峰更是没法看。如果后级设备直接挂在这样的母线上光靠 DC-DC 自身的输入耐压是远远不够的。很多隔离 DC-DC 模块标称输入 9V 到 36V但这个范围指的是稳态瞬态尖峰一样可能击穿 MOS 管。这就是必须在上电入口处做一道“安检门”的原因。TPS259483 这类热插拔控制器也叫 eFuse、电子保险丝干的就是安检门的活它内部集成了功率 FET、电流采样放大器和比较器能在微秒级时间内切断故障路径。和传统保险丝最大的区别在于它不是一次性器件故障解除后可以通过控制系统恢复输出不会像保险丝那样烧断就得换。另一个好处是它的限流点是可编程的不需要像选择保险丝规格那样在“正常工作电流”和“短路不误动作”之间反复纠结。强调一下不能用普通 P 沟道 MOS 管加几个电阻自己搭一个简易开关来替代 eFuse。市面上有些方案这么干利用 MOS 管线性区特性限流理论上可行但温度稳定性差到离谱。MOS 管在放大区的导通电阻随温度漂移很大同一个限流点25 度时是 1A75 度时可能就变成 1.4A 了。TPS259483 内部用的是专用电流镜采样加基准比较限流精度远非分立方案可比。1.2 PIC18F45K42 在这个项目里扮演什么角色可能有人会问既然 TPS259483 什么都能自己干还要单片机干什么答案是监控、记录、联动。TPS259483 本身是一只“手快但脑子简单”的守门员它能快速切断故障但它不知道故障是什么时候发生的、持续了多久、触发时电流有多大、总共发生过几次。而这些信息对工业设备的维护和故障分析来说至关重要。PIC18F45K42 在这里的角色是“值班经理”通过 ADC 实时采集 TPS259483 输出的电压和电流采样信号判断系统当前处于什么状态。通过 GP 口读取 TPS259483 的故障标志引脚FLT一旦变低立刻进入中断服务程序记录当前时间戳和运行参数。通过 I2C 或 UART 把故障信息上报给上位机或云端而不是让设备“悄悄死了”。控制使能引脚 EN实现远程的上电、下电、周期性重启、应急切断功能。有人会问为什么不是用 STM32 或者 ESP32原因很简单在这个项目里 MCU 的工作非常单一且固定需要的是稳定性、确定性、低功耗和快速启动不是高主频和丰富外设。PIC18F45K42 的 12 位 ADC 带硬件计算器功能可以直接对采样结果做累加、取平均、比较不需要 CPU 干预这在记录电流曲线时非常有用能省下大量中断开销。另外它的内核独立外设CIP架构在这种情况下很对口ADC、比较器、CLC 逻辑模块可以硬件直连实现模拟域的阈值比较而不占用 CPU 时间。1.3 方案整体架构图整个电源路径是这样的24V 输入 → 输入滤波电容 → TPS259483 → 输出滤波电容 → 后级 DC-DC 与负载 ↑ ↓ EN/FLT/采样 采样反馈 ↑ ↓ PIC18F45K42ADC/GPIO/I2C/UART这个架构的巧妙之处在于快速保护路径完全由 TPS259483 的模拟比较器完成不经过 MCU这样即使 MCU 死机或者程序跑飞电源保护本身依然有效。而 MCU 走的是慢速监控路径负责记录和决策。两条路一快一慢互不干扰各自发挥优势。2. 核心器件解析与关键参数计算2.1 TPS259483 关键特性梳理TPS259483 属于 TI 的 eFuse 系列基本功能模块包括输入 UVLO欠压锁定、输出 OVP过压保护、可调电流限制、可调软启动时间、反向电流阻断、热关断以及故障输出。它适合的工作电压范围覆盖常见的 12V、24V、48V 工业总线。几个我必须强调的特性限流点可编程通过外部电阻设定从毫安级到安级都有对应阻值参考数据手册的表格或公式即可。软启动时间可编程通过外部电容设定可以控制涌流的大小。FLT 故障输出开漏结构故障时拉低方便直接接到 MCU 的 GPIO 或者中断引脚不需要电平转换。启动时支持限流保护即使输出短路器件也不会损坏而是把电流钳制在设定值附近。这个器件还有一个比较实用的内置功能是“启动时的浪涌电流抑制”。在上电瞬间如果后级有大量电容不控制的话充电电流可能高达十几安培直接把前级电源拖垮。TPS259483 的软启动功能本质上就是在上电瞬间把 FET 从关断缓慢导通让电容充电电流被限制住。2.2 限流电阻和软启动电容怎么算限流电阻的选取。以常见的 2A 限流目标为例查阅 TPS259483 数据手册中的 ILIMCurrent Limit引脚推荐电阻值表可以得到对应的电阻值。手册通常会给出一个曲线或者公式如 R_ILIM K / I_LIMK 是器件的比例常数典型数字在数据手册给出的表格里。需要注意的坑是限流设定值不能太接近实际最大工作电流。因为限流保护触发属于“硬保护”一旦触发输出电压就会跌落负载可能会进入欠压复位。通常我会把限流点设为最大正常工作电流的 1.5 到 2 倍这样既不会误触发又能有效保护后级。例如后级满载电流是 1A限流设到 2A 比较合理但如果设到 1.2A负载波动稍微大一点就触发保护了那就太灵敏了。软启动电容的选择和限流相似参考数据手册里 SSSoft Start引脚对应电容和启动时间的关系即可。启动时间的计算逻辑是SS 引脚内部用恒流源给电容充电当电容电压达到参考电平时输出达到稳定。启动时间增长涌流峰值降低但启动过程中的“长尾”也会让负载更久地工作在欠压状态。我的经验值对于大部分 24V 输入、输出侧有 1000uF 级大电容的应用软启动时间设在 5ms 到 10ms 之间比较合适。太短了涌流大容易触发前级保护太长了负载上电时序会有问题比如某些 PLC 输入模块要求上电后 10ms 内完成初始化供电迟迟不到位会导致初始化失败。2.3 输入过压、欠压阈值怎么配合系统设计TPS259483 的过压和欠压阈值都是通过外部电阻分压网络设置的典型结构是两个电阻从输入电压分压到 OVP/UVLO 引脚。计算方式就是最基础的分压公式V_pin V_in * R_bottom / (R_top R_bottom)。选定一个合理的引脚阈值电平手册会给典型值反推两个电阻的比例。这里有一个我调试时踩过的坑电阻分压网络的精度直接决定了实际保护阈值的精度不要用 5% 精度的电阻来做至少要选 1% 的。因为输入端的电压往往就是 24V分压比大约是 1:10 甚至更高电阻的误差会成倍放大到阈值上。比如分压比 10:1上面的电阻偏大 1%实际阈值就会偏大 10% 左右原本想设在 30V 的过压点可能会变成 33V保护的实时性就打了折扣。如果系统对阈值精度有更高要求也可以考虑在 MCU 的 ADC 端额外做一路输入电压采样软件校准。但要注意MCU 采样速度远比不上硬件比较器的速度。硬件 OVP 负责快速切断MCU 负责慢速记录各干各的不要试图用软件替代硬件保护。3. 实操过程与核心环节实现3.1 硬件设计画板时的布局经验PCB 布局是电源设计里最“看不见摸不着但影响巨大”的部分。TPS259483 输入输出都是功率路径Layout 的基本原则是输入电容靠近 IN 引脚输出电容靠近 OUT 引脚采样电阻ILIM 电阻尽量靠近芯片的 ILIM 引脚走线短而粗。有一个细节容易被新手忽略ILIM 引脚的采样线要从芯片引脚独立走不能和功率地上的大电流回流线共用一段铜皮。因为大电流回流会在铜皮上产生压降这个压降会直接叠加到 ILIM 引脚的参考地上造成限流点的偏移。还有一个建议芯片底部的散热焊盘必须良好接地并且打过孔阵到内层地平面。我在初期布板时偷懒少打了几个过孔结果满载测试时芯片温度比预期高了将近 15 度后来补上了过孔阵才恢复到正常水平。eFuse 本身承担了功率损耗虽然 TPS259483 的导通电阻已经很低了通 2A 电流时功耗也就一两百毫瓦但如果散热条件不好积累起来还是很可观的。FLT 和 EN 引脚建议各加一个 100nF 的滤波电容到地防止在电源瞬变时引入干扰导致误触发。这些电容不需要太大100nF 足够滤掉纳秒级的尖刺又不至于影响信号的正常跳变沿速度。3.2 PIC18F45K42 的 ADC 采样与故障中断配置PIC18F45K42 的 ADC 模块是 12 位精度的对于 24V 系统来说分压后采样电压最高不超过 3.3VMCU 供电电压所以采样步进大约是 0.8mV折算到输入电压大约是 6mV 的精度足够分辨出母线电压的微小波动。我把 ADC 配置成以下模式参考电压内部 4.096V 或供电电压 VDD根据精度需要选择。采样通道AN0 接输出电压分压AN1 接输入电压分压AN2 接电流采样。转换触发自动连续转换模式不需要 CPU 轮询。故障中断这块FLT 引脚接的是 PIC18F45K42 的 INT 引脚INT0 或 INT1 均可配置上升沿或下降沿触发。TPS259483 的 FLT 是开漏输出正常时为高电平需要通过外部上拉电阻拉到 MCU 供电电压故障被拉低。所以建议把 INT 触发方式设为下降沿触发这样最直接。中断服务程序里不要做复杂的操作只做几件事读取系统时间戳、把当前 ADC 采样值存入缓冲区、设置一个故障标志位、写一条日志到内存。复杂的后续处理比如上报、状态分析、自动恢复策略全部放在主循环里做避免打断系统的其他实时任务。我写的一小段配置代码思路如下伪代码对应 PIC 的 MCC 生成的 API// 使能 FLT 中断下降沿触发 INT0_SetInterruptMode(EXT_INT0_FALLING_EDGE); INT0_SetInterruptHandler(flt_isr); // ADC 初始化 ADCC_Initialize(); ADCC_EnableContinuousConversion();注意PIC18F45K42 的集成开发环境 MCC 可以直接生成这些初始化代码不需要完全手写寄存器配置。MCC 会生成一个 adcc.c 文件里面提供 ADCC_GetConversion 之类的函数接口用起来非常顺手而且代码可读性比对寄存器好很多后期维护也轻松。我用 MCC 生成之后再调了一点中断优先级和引脚映射整体开发速度提升不少。如果你用的是其他厂商的 MCU思路同样适用把故障引脚接到一个带沿触发的外部中断引脚上把采样引脚接到高精度 ADC 通道上。void flt_isr(void) { timestamp uptime_ms(); fault_vout ADCC_GetSingleConversion(channel_VOUT); fault_iout ADCC_GetSingleConversion(channel_IOUT); fault_flag 1; INT0_ClearInterruptFlag(); }在实际项目中我还会把 RTC 模块如果有的话的日历时间一起记录下来这样故障日志里不仅有“上电后 1245ms 发生了过流”还能知道“2024-11-20 14:32:07 设备重启了一次”对远程维护和故障定位非常有帮助。PIC18F45K42 本身不带 RTC我外挂了一颗 PCF8563I2C 接口读取时间对 MCU 来说没有压力。3.3 上电测试与关键波形验证板子焊好后先别急着接 24V。我的习惯是先做“无负载预检查”用 DC 电源给 TPS259483 输入侧供 12V 电压限流调到 100mA看芯片静态工作电流是否正常正常应该只有几毫安主要是内部基准和偏置电路的耗流。给 EN 脚一个高电平可以通过 MCU 拉高或者手头没有固件时直接短接到输入电压观察输出电压是否缓慢上升。用示波器探头分别接输入、输出、FLT 引脚触发条件设为上升沿观察上电时序。上电波形上最应该关注的是输出电压的上升斜率。如果斜率太陡说明软启动电容太小或者没起作用如果上升太慢说明后级电容太大或者限流点设得偏低启动过程中电压一直被钳位在限流值。满载测试时我会用电子负载先设到一个恒定电流比如 1A然后逐步增加到接近限流点。当负载电流超过限流设定值的那一刻输出电压应该快速下降到接近 0V同时 FLT 引脚被拉低。这就算通过了“过流保护功能测试”。过压保护的验证方法更简单用可编程电源缓慢升高输入电压观察输出电压跟随到保护阈值时的“断崖式跌落”。这个测试注意要从低压慢慢升不要一下子跳到 36V否则对后级电路是个不小的冲击。3.4 故障后恢复策略设计TPS259483 在故障触发后根据配置不同有的型号是闩锁模式Latch-off有的型号是自动重试模式Auto-retry。TPS259483 支持通过外部电路实现手动重置。这就带来了一个系统设计问题故障恢复策略怎么定我的选择是闩锁模式加人为重置。原因很实在工业设备出现电源故障往往意味着后级有硬件损坏或者线路异常如果是瞬时干扰导致的故障自动恢复可能把设备重新启动并恢复工作但如果故障原因没有排除就自动恢复会导致“反复重启反复损坏”的恶性循环。闩锁模式更安全让现场人员排查后手动重新上电。在 MCU 层面我做了一个“黑名单式”的重启策略第一次故障记录后尝试重新使能一次如果短时间内例如 30 秒内再次故障就不再自动恢复而是持续上报故障信息等待人工干预。这个策略不复杂但在工业现场真的能避免很多“薛定谔的故障”。实现上就是 MCU 通过 GPIO 控制 TPS259483 的 EN 引脚。故障发生后拉低 EN 引脚 100ms 后再拉高相当于给芯片一个复位信号。注意 EN 引脚不能悬空一般需要接一个下拉电阻防止 MCU 未初始化时误上电。这个电阻一般选 10k 左右既能保证默认关闭又不会影响 MCU 拉高时的驱动能力。4. 常见问题与排查技巧实录4.1 限流点不准、采样电压不稳定的排查这是我自己项目里实战过的故障排查记录列成表格方便对照参考现象可能原因排查方法与解决办法限流点和计算值偏差超过 15%ILIM 电阻栅栏走线太长受到功率电流干扰缩短走线将电阻靠近芯片放置加大地线包络隔离输出电流超过限流点后保护不触发ILIM 引脚虚焊或电阻开路万用表测量 ILIM 引脚电压是否正常补焊故障反复误触发输入电源存在高频噪声干扰了内部比较器在输入端增加 10uF 陶瓷电容和 100nF 高频电容检查 EN 引脚滤波软启动时间明显比计算值短SS 电容选错值或焊接不良核对物料用 LCR 表实测电容值采样的稳定性问题也同样需要注意。PIC18F45K42 读出来的电流值如果跳动异常先看采样点位置对不对。正确的做法是从 TPS259483 的 IMON 引脚采样这个引脚输出的是和负载电流成比例的电流信号通过外部电阻转成电压。采样电阻的选择要匹配 ADC 输入范围。还有一点IMON 引脚输出的电流较小走线不宜过长尽量靠近 MCU 或是用运放做一级缓冲。我最初因为嫌运放占地方没加结果采样电压被 ADC 输入引脚漏电流影响跳动超过 30mV后来加了个 1uF 电容滤除高频分量跳动才降到可接受范围。4.2 MCU 死机后电源路径失控问题这个问题的根源在于如果 EN 引脚由 MCU 控制而 MCU 因为某种原因跑飞了看门狗没配置或者还没初始化完EN 引脚可能处于未定义状态。如果恰好是低电平设备就直接断电如果是高电平设备一直处于上电状态不受保护策略控制。解决办法有两个层面。硬件层面EN 引脚加一个下拉电阻到 GND默认关闭MCU 接管后才能打开。如果想让系统在 MCU 未初始化时也能自动上电比如希望设备上电即运行可以改成“默认上拉、需要 MCU 主动拉低切断”的反逻辑设计但要注意这种设计在 MCU 跑飞后没法关断电源各有取舍。我实际采用的是默认关闭型。因为我的设备是需要上位机发送启动命令才进入工作状态的MCU 没跑起来之前没必要上电这样能减少待机功耗也更安全。4.3 高温环境下的漂移问题工业设备的运行环境比实验室恶劣很多。我在 65 摄氏度环境箱里测试时发现限流点会比常温下偏低大约 8% 到 10%这是因为 ILIM 电阻的温漂以及内部基准电压的温度漂移叠加的结果。所以设定限流点时需要留出至少 15% 到 20% 的余量保证设备在最高工作温度下仍然不会误触发。另外带散热焊盘的封装在高环温下散热效率会下降芯片的结温升高热关断更容易触发。我的做法是在布局阶段把 TPS259483 放在靠近 PCB 边缘的位置通过大面积铜皮和散热过孔把热量导到外壳。如果空间允许还可以在芯片附近加一个温度传感器MCU 定期读取温度如果接近热关断阈值就先做降额处理——这个策略对户外设备特别实用。4.4 后级 DC-DC 启动时的“假短路”现象有一类故障特别容易误判启动瞬间如果后级 DC-DC 的输入端全部是空的上电瞬间充电电流是很大的因为输入电容从 0V 充到 24V这个电流可能会碰到限流点导致 TPS259483 进入限流状态输出电压被压缩然后 DC-DC 得不到足够的输入电压启动失败。如果 DC-DC 反复尝试启动就会反复触发限流表现为“输出像打嗝一样一高一低”。排查这类问题先看波形输出电压是否在两个电平间反复跳动。如果是调整软启动时间让 TPS259483 采用更慢的上升斜率给后面 DC-DC 输入电容充电留出更充分的时间。如果还不行看限流点是否设置得太低低于后级 DC-DC 的输入冲击电流峰值了。这种情况我一般把软启动电容换大一档限流点再往上调一点问题基本就能解决。5. 一个 NFS 扩展之外的跨界脑洞这套方案还能用在哪些地方写完上面的技术细节再聊点更发散但确实有价值的场景扩展。这套“eFuse MCU”的组合远不限于工业控制柜很多嵌入式场景都可以直接平移电池供电的便携设备用 TPS259483 做电池输出保护MCU 定期上报电池电压限流防止短路起火软启动避免接上 USB 电缆瞬间打火。汽车电子车规级总线电压波动大、负载复杂eFuse 代替传统保险丝可以做到“一次短路不烧断故障恢复后自动重置”。智能家居控制面板24V 总线供电多路输出分别保护每一路故障互不干扰。户外传感器节点供电电池或太阳能板环境恶劣远程维护成本高有 MCU 记录故障日志和远程重启简直就是刚需。只要是需要“把能源安全可控地交给下游负载”的场合这个架构都有发挥空间。核心思想是用模拟器件的速度做硬保护用 MCU 的智慧做软管理两者之间不要互相依赖。个人体会是电源路径保护这块设计最怕的就是“两边各自为政”硬件保护搞了一套独立逻辑MCU 又搞了一套软件保护结果两者阈值不匹配、优先级矛盾关键时刻反而互相拆台。TPS259483 这种把保护和监控接口都做全的器件再加上一颗够用的 8 位 MCU正好能避免这种局面的发生。设计者只需要想清楚“谁来切断、谁来记录、怎么恢复”三个问题整个方案就能行云流水地跑起来。
返回列表