首页 / 资讯中心 / 文章详情

eFuse 加 MCU 的工业电源路径保护设计:过流、过压与浪涌一次搞定

eFuse 加 MCU 的工业电源路径保护设计:过流、过压与浪涌一次搞定 ★ FEATURED ARTICLE
做嵌入式和工业产品的人基本都被“电源路径”问题教育过。新板子第一次上电后端一颗电容短路输入端的保险丝直接烧断整个调试被迫中止或者负载侧有个大电解电容上电瞬间的浪涌电流把前级母线拉垮MCU 复位看门狗又拉不回来。这些问题看着五花八门根子都在于电源路径上没有一套主动保护机制。我最近完成的工业控制模块正好采用 TI 的 TPS259483AYWPR eFuse 芯片搭配一片 ATmega644 单片机把输入电源路径的过流、过压、浪涌和故障上报一次收编。这篇就把方案的设计思路、器件选型、参数计算、固件结构和排查经验完整写出来给同样在搞嵌入式电源的朋友做个参考。1. 项目定位为什么电源路径需要主动保护1.1 传统保护方案的短板电路保护很多人第一反应是玻璃保险丝、自恢复保险丝PPTC、TVS 管、肖特基二极管。这些器件不是没用而是太“被动”。保险丝烧断之后必须人工更换在无人值守的工业现场一次过流故障可能让整条产线停下来等人换熔丝。PPTC 的动作电流离散大、响应慢而且动作之后会留一个较大的残余电阻给后级电源带来额外压降。肖特基做反极性保护虽然简单但正向压降在几安培负载下损耗明显大电流时发热相当可观。更关键的是传统方案都不具备“事后知情”能力。设备在客户现场忽然掉电你只能挨个怀疑负载、电容、MOSFET、电源芯片靠万用表一遍遍量。如果保护器件能反馈“发生了什么”排查成本会大幅下降。这也正是我在这块板上坚持引入 eFuse 的初衷保护只是底线可观测、可记录、可恢复才是真正的目标。1.2 eFuse 加 MCU 的组合逻辑TPS259483AYWPR 这颗 eFuse本质上是一个集成了功率 MOSFET、电流采样、限流比较器、过压/欠压检测、温度保护、故障定时器的“智能开关”。它把一个分立方案的复杂度收进一颗芯片同时把“当前输出电流有多大”“是否发生了故障”这些信息通过引脚暴露出来。ATmega644 的作用就是把信息读进来、做判断、执行动作再通过串口上报。这里有个设计思路很重要功率通路上的“硬动作”由 eFuse 自己完成MCU 只在策略层面参与。即使 MCU 死机、跑飞、被复位eFuse 依然会按硬件设定保护输出。反过来MCU 也能在 eFuse 硬件行为的基础上把单次保护升级成可恢复、可记录、可上报的完整保护策略。两者解耦可靠性反而更高。工业环境里系统死机是常态保护链路如果依赖 MCU 才能工作本身就是设计缺陷。2. 核心器件选型思路2.1 TPS259483 关键能力TPS259483A 属于 TI TPS25948x 系列 eFuse输入电压范围覆盖到 18V 这一档这对工业上常用的 12V、24V 母线很关键。电流限制可以通过外部电阻在较宽范围内设定支持 dv/dt 软启动控制上电浪涌可以按需压制。它还带有故障定时器、开漏的故障输出引脚、电流监测输出以及反向电流阻断能力。这个“反向电流阻断”在工业场景中很实用。当输入侧突然掉电后端大电容会反向灌电流回到输入母线某些电源模块会因此出现异常。eFuse 内部机制会阻止这种反向电流相当于给电源路径加了一道单向闸门省掉了传统方案里那颗大电流肖特基二极管。封装是 WQFN 小封装和保险丝座、分立 MOS 方案相比占板面积小很多而且动作速度远快于任何机械式保护器件。2.2 ATmega644 在系统里的角色ATmega644 是一颗 8 位 AVR64KB Flash、4KB SRAM、2KB EEPROM工作电压覆盖 2.7V 到 5.5V最高 20MHz。只做“监测、决策、记录、上报”这类任务时这颗芯片的性价比和稳定性非常好。它不跑操作系统上电即运行从复位到 GPIO 配置完成只需要几毫秒这对电源时序控制反而是优点。有人可能觉得 8 位机太复古但这个场景下它有几个明显优势一是 ADC 外设简单10 位精度读电流足够二是自带 EEPROM记录历史故障不需要外挂存储芯片三是 32 个 GPIO 足够覆盖多个 eFuse 通道、按键、指示灯和通信接口。工业现场最怕的恰恰是复杂系统出莫名其妙的故障一颗老老实实的 AVR反而让人放心。如果你的产品有更高算力需求换成 STM32 之类也没问题但保护逻辑这一层不需要那么多算力。2.3 为什么不用纯硬件方案既然 eFuse 自己能限流、能过压保护为什么还要 MCU答案在于“策略”和“可恢复性”。eFuse 的默认行为是限流或关断关断之后需要外部重新触发。工业现场很多故障是瞬态的比如线缆被碰了一下、负载瞬间堵转、电机启动时的反电动势尖峰。MCU 可以判断故障类型决定是立刻重启、延时重启、保持关断还是先降载再恢复。这种决策能力纯硬件电路很难做到灵活。举个具体例子。我做的模块带一个继电器线圈和一组指示灯继电器线圈是感性负载关断瞬间有尖峰偶尔会让 eFuse 触发过流保护。我在固件里对“1 秒内重复故障”和“10 分钟内偶发故障”做了不同处理偶发的自动恢复频繁的就锁存并上报。如果纯硬件只能一律锁死或一律自动重试都不理想。MCU 的价值就在这里同样的硬件不同的软件策略就能适配完全不同的现场工况。3. 硬件设计从输入到 MCU 的完整链路3.1 整体电源架构项目里典型的供电结构是这样24V 输入 → TVS 管与输入滤波电容 → TPS259483 eFuse → 输出储能电容 → 后级 DC-DC24V 转 5V→ LDO5V 转 3.3V→ ATmega644 及外设。关键点是 eFuse 放在电源树最前端而不是放在 DC-DC 之后。保护要覆盖整条电源树一旦后端 DC-DC 短路或某个模块过流eFuse 能第一时间断开输入而不是让前级 24V 电源硬扛。输入侧的 TVS 管负责吸收浪涌电压尖峰eFuse 负责处理过流与过压两者分工明确不重叠也不留空白。输出侧的储能电容要按后级最大瞬态电流来选太小会导致电压跌落太大又会抬高启动浪涌需要和软启动参数一起权衡。3.2 电流限制与软启动参数计算限流电阻的计算是第一步。以 TPS2594x 这类 eFuse 的常见关系式为例限流电阻与限流值之间近似满足 R K / ILIMK 是器件相关的常数典型值在规格书里会给。假设我需要的稳态最大电流是 1.5A按 K 4150 计算R 4150 / 1.5 ≈ 2767Ω取 E24 系列标称值 2.7kΩ。这里有个经验限流点不要卡着稳态电流选要留出 15% 到 30% 的裕量。负载不是恒定不变的温度变化、电容老化、瞬时抽流都会让电流波动。如果限流点设得太贴近实际功耗正常工作的尖峰都可能触发保护反而把系统搞得不稳定。工业板上电容往往偏大、纹波偏大这个裕量尤其重要。浪涌控制的重点是 dv/dt 引脚上的电容。负载侧如果有一个 100µF 的储能电容直接硬上电的浪涌会非常可观。通过 dv/dt 电容设定输出电压上升斜率比如规格书典型曲线给出斜率约 7.9 / C_dvdt(nF) V/ms选 1nF 时斜率约 7.9V/ms。在 24V 输入下浪涌电流 I C × dV/dt 100µF × 7.9V/ms ≈ 0.79A远低于 1.5A 的限流点。所以软启动不是可有可无的配置而是避免误触发保护的必要手段。如果负载电容更大就把 dv/dt 电容同步加大这是第一个要调的参数。3.3 故障回读接口设计FLT 引脚是开漏输出正常时为高阻故障时拉低。我把它通过 10kΩ 上拉到 3.3V再接一个 100Ω 串联电阻和 10nF 电容到地做简单 RC 滤波后送到 ATmega644 的外部中断引脚。开漏的好处是多个 eFuse 通道可以直接“线与”任何一个通道故障都会把总线拉低MCU 一个中断源就能感知扩展多个电源域时不用额外增加 MCU 引脚。IMON 电流监测输出也要接对。IMON 内部是电流镜像输出电流与负载电流成比例需要外部电阻转换成电压再进 ADC。这个电阻的取值要根据 ADC 参考电压和被测电流范围确定。比如期望满量程对应 3A 负载IMON 输出电流比例为 10µA/A那么 3A 对应 30µA希望得到 3V 满量程电压就选 100kΩ。注意 ADC 输入阻抗和采样保持电容的影响建议在 ADC 引脚前加 1kΩ 串联电阻和 100nF 电容既能抗混叠又能稳定采样。3.4 MCU 侧的时序控制除了监测MCU 还要通过 EN 引脚控制 eFuse 的开关。上电时序上我建议 MCU 先检查输入电压和自身供电稳定再延时 200ms 使能 eFuse 输出给前级电源一个稳定时间。故障恢复时采用先拉低 EN、等待 100ms、再重新拉高的方式确保 eFuse 内部逻辑彻底复位。EN 引脚如果由 MCU 驱动要在 MCU 和 EN 之间加一个串联电阻同时并联一个 100kΩ 下拉电阻避免 MCU 复位瞬间引脚状态不定导致 eFuse 误开关。这条是我踩过坑总结出来的。最初 EN 直接接 MCU GPIO没加下拉MCU 在掉电缓慢下降的过程中GPIO 输出高电平会把 eFuse 重新打开后级负载被反复供电板上 LED 会诡异闪烁。加了下拉电阻之后MCU 未初始化期间 EN 被稳定拉低这个现象彻底消失。4. 固件实现状态机驱动的保护策略4.1 用状态机而不是散乱判断固件结构我建议用状态机不要在主循环里写一堆 if-else。状态划分为五个INIT 状态初始化 GPIO、ADC、UART读取 EEPROM 里的历史故障记录检查 FLT 引脚电平确认 eFuse 当前状态。如果上次是锁存故障LED 给出提示等待上位机确认。MONITOR 状态主循环周期性读取 IMON 的 ADC 值换算成实际电流与限流点比较。如果电流超过阈值但 FLT 还没触发说明接近限流边缘软件可以提前预警记录一次“过流预警”事件。这个预警能力是传统保险丝方案完全做不到的。FAULT 状态FLT 引脚触发外部中断后进入。立即将 EN 拉低停止输出保存故障时刻的电流值、故障类型、时间戳然后根据计数决定恢复策略。RECOVERY 状态判断是自动恢复还是锁存。对偶发瞬态故障延时 500ms 后重新使能 eFuse对连续三次短时间重复故障锁定输出等待人工复位或上位机指令。REPORT 状态通过串口上报故障摘要格式类似“故障类型:过流, 峰值电流:1.8A, 持续时间:120ms, 自动恢复成功”。这也是整机调试时最有用的信息现场工程师不用拆机就能知道刚才发生了什么。4.2 中断与主循环的分工FLT 引脚接在 ATmega644 的外部中断引脚上使用下降沿触发。收到中断后只做一件事记录系统时间戳并置一个故障标志位真正的故障分析全部放主循环完成。中断服务程序里做 ADC 转换、判断、重启会使中断占用时间过长在电源故障这种高压高电流场景下不确定性反而增加。AVR 的中断服务程序默认隐式关闭全局中断如果 ISR 里执行太长其他中断都会被阻塞。我在这里踩过一次坑最初在 ISR 里顺带做 EEPROM 写入结果写周期接近 3.4ms期间串口发送中断全部延迟上位机指令响应明显卡顿。后来把 EEPROM 写入挪到主循环的任务队列里问题消失。所以 ISR 里务必保持“短平快”只置标志、不干活。4.3 EEPROM 故障记录ATmega644 自带 2KB EEPROM可以把最近的故障记录持久化。写 EEPROM 前要先关中断或做好写周期保护因为 AVR 写 EEPROM 期间如果被打断数据可能写坏。建议用简单的记录块结构轮流写两个备份区每次写入带一个计数序号和 CRC8 校验读取时优先采用序号更新且校验通过的那份。这样即使掉电时发生半写状态系统也能自动恢复到最后一条完整记录。EEPROM 寿命大约十万次擦写故障记录这种低频操作完全够用。如果你的设计里需要记录几万条事件日志那还是外挂一颗 SPI Flash 更合适不要在 EEPROM 里硬塞。记录内容除了故障类型我还会把恢复成功与否写进去这样回看数据时能知道哪些故障是“非致命”的哪些已经威胁到系统稳定。4.4 与上位机的通信故障信息通过串口上报波特率 9600 或 115200 都可以。工业现场如果走线长、干扰大建议加隔离或改走 RS485。我模块上用的是 ATmega644 的 USART接了一个 RS485 收发器报文格式非常简单帧头、长度、类型、数据、CRC。不要一开始就上复杂协议栈先把保护逻辑和上报调稳再按项目需求扩展。调试期间可以把所有状态变化都打出来量产时再收敛日志级别。5. 调试与常见问题排查5.1 上电就保护怎么回事最常见的原因是限流电阻值离负载需求太近。很多人只算了稳态电流忽略了 DC-DC 输入端大电解电容在启动瞬间的充电需求。即使有软启动如果 dv/dt 电容没有接或者容值太小输出电压爬升过快浪涌电流照样触发限流。调试时建议分两步先不接后级负载单独给 eFuse 上电用示波器看输出电压爬升波形确认斜率符合预期再逐级接后级电路。还有一种隐蔽情况输入电压在上电瞬间有尖峰触发 OVP。工业电源母线在接入瞬间经常有震荡如果 eFuse 的 OVP 阈值设定过低就会误动作。解决办法是看规格书里的 OVP 响应时间确认是不是尖峰持续时间足够长才触发必要时在输入侧加大电容吸收尖峰。示波器要记得用差分探头或隔离探头测输入直接用地线夹去勾高压母线很容易引入噪声反而看不准。5.2 IMON 读数抖动IMON 是电流镜像输出本身就有纹波加上后级开关电源的噪声耦合ADC 读数上下跳是常态。硬件上先加 RC 滤波软件上做多次采样取平均或者用中值滤波去毛刺。我习惯在固件里连续采样 8 次去掉最大最小后取平均实测读数稳定在 ±2% 以内。别一上来就怀疑芯片坏了。先用万用表量 IMON 引脚电压看是否在预期范围再用示波器看 ADC 引脚的波形确认是噪声还是真实纹波。电源调试最忌讳凭感觉猜每一步都要有测量依据。IMON 的响应速度通常很快如果你在 ADC 引脚并了大电容纹波是压住了但瞬态电流的细节也看不见了调试时要在滤波和带宽之间找平衡。5.3 布局与散热eFuse 的功率路径上IN、OUT 走线要短而宽电流路径上的过孔数量要足够每安培电流至少配一个过孔而且要靠近芯片引脚。散热焊盘必须可靠接地并通过多个过孔连接到底层铜皮。工业应用环境温度可能到 70℃如果长期运行在限流边缘芯片热关断会反复触发表现为“间歇式掉电”这种问题原理图查不出来只能靠热像仪找热点然后优化布局和散热。还有一个容易忽略的细节eFuse 的输出电容离芯片越近越好。输出电容不只是储能还影响环路稳定性和浪涌电流的分配。位置不对即使参数算对了实测波形也完全不一样。我第一版 layout 把输出电容放得较远限流动作时输出振铃明显调整位置后波形立刻干净了。5.4 排查速查表现象可能原因处理办法上电立即保护限流点设置过低或 dv/dt 电容缺失按最大浪涌重新计算限流点检查软启动电容负载正常但偶发掉电输入尖峰触发 OVP或热关断输入侧加大滤波电容检查散热与布局FLT 引脚电平不稳定开漏上拉电阻过大、干扰耦合减小上拉电阻增加 RC 滤波IMON 读数跳变开关噪声耦合采样点不稳定硬件加 RC软件多次采样取均值自动恢复失败故障次数计数逻辑错误检查 RECOVERY 状态里的计数器复位时机MCU 复位导致 eFuse 误动作EN 引脚状态未定义EN 加下拉电阻MCU 初始化前保持低电平6. 一些经验补充最后分享一个实际体会不要在电源保护链路上省“观察点”。这一版我特意把 IMON、FLT、EN 三根信号全部引到测试点调试时用示波器同时看三路定位问题快得多。产品阶段可以去掉这些测试点但开发阶段留着它们省的是一次次拆板飞线的时间。另一个经验是硬件保护参数要留“温度余量”。限流电阻的精度、芯片限流点的温漂、负载本身的温度特性叠加起来可能让实际保护点偏离设计值 20% 以上。我一般按最恶劣情况的 1.3 倍来校核限流点确保高温下也不会在工作电流附近误动作。后续如果要把这套方案扩展到更多通道ATmega644 的引脚和定时器资源还够用只需要每个通道独立配置限流电阻和软启动电容固件里把状态机实例化多份即可。
阅读完成 · 觉得有帮助?
咨询建站