ARTICLE DETAIL

资讯详情

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

eFuse与MCU协同:嵌入式电源入口保护设计实战

eFuse与MCU协同:嵌入式电源入口保护设计实战 做嵌入式系统电源设计时间久了你会发现一个尴尬的事实单片机本身跑得再稳只要电源路径上浪涌、短路、反压来一下整套设备就得回厂。前阵子给一台工业控制板做电源保护我选了 TPS259483AYWPR 搭配 PIC18F57K42一个管硬件切断一个管智能监控把原来靠分立元件硬扛的方案整个砍掉重做了。这个组合非常适合嵌入式设备、工业控制器、传感器接口板这类低压直流电源入口也适合想给现有 12V 系统加一层可靠保护的团队。如果你正在头疼开机浪涌、短路烧板或者想知道 eFuse 到底怎么调那这篇正适合动手前先读一遍。1. 项目概述与功能定位1.1 电源路径保护的痛点在哪里工业现场的电源条件远比实验室糟糕。电机启停、继电器吸合、雷击感应、线缆插拔都会在 12V 或者 24V 母线上打出毛刺、跌落甚至反向脉冲。嵌入式板卡作为控制系统的大脑电源入口往往是第一道也是最后一道防线。一旦保护没做好轻则单片机复位重则板上的 DCDC、电容、连接器一起烧掉现场排查和返修的代价相当高。传统的分立式保护电路我做得比较多典型做法是“保险丝 TVS PMOS 防反接 采样电阻 比较器”。这套结构能用但问题很现实保护阈值由一堆电阻电容决定温度变化后会飘过流关断速度取决于比较器的响应时间遇到硬短路常常比 MOSFET 烧毁还慢而且几乎没有故障记录能力设备宕机后你根本不知道是过压、过流还是温度保护触发的。对于小批量研发这套方案勉强能跑一旦进入量产或者需要远程运维缺点就被放大了。后来我转向集成 eFuse把开关管、限流、过压欠压检测、软启动全部放进一颗芯片里。这次项目用的 TPS259483AYWPR 就是这种思路的代表产品。它不是在单片机代码里做保护而是通过模拟电路自己感知异常并快速切断电源路径响应速度可以达到微秒级完全不依赖固件。配合一颗 PIC18F57K42 做状态监控和数据记录整套方案在抗干扰能力、可维护性和制板面积上都比老的单元电路上了一个台阶。1.2 方案选型为什么是 TPS259483 加 PIC18F57K42先回答很多人的疑问eFuse 芯片那么多为什么选 TPS259483我的判断标准有三个。第一集成度足够高。TPS259483 内部集成了功率 FET不需要外置大功率 MOSFET外围主要就是限流电阻、软启动电容、输入输出电容和分压电阻。对一块紧凑的工业控制板来说这能省下很大的 PCB 面积也减少了因为焊接不良导致的通道电阻不一致。第二保护功能符合工业场景需求。它支持输入过压锁定和欠压锁定可以用电阻分压配置窗口支持可编程限流和软启动能让后级大电容的冲击电流变成可控的斜坡还带故障标志输出方便 MCU 及时感知。这些功能单独搭出来都不难难的是把它们稳定地集成在一起并且过认证时容易解释。第三封装和供货风险。芯片型号后面的 AYWPR 是封装和卷带标识。这类车规/工业级料在高温下的参数稳定性和长周期供货能力比普通消费级 eFuse 更让我放心。虽然价格会贵一些但工业设备更看重的是一致性和可追溯性。再来看为什么配 PIC18F57K42。很多嵌入式工程师一提到监控就想到 STM32但实际这种电源保护场景对算力要求很低关键是有足够好用的模拟外设、低功耗、能在恶劣环境稳定工作。PIC18F57K42 是 Microchip 的增强型中档 8 位 MCU自带 12 位 ADC、模拟比较器、DAC甚至还有和独立于内核的外设模块。它在做电源监控时不需要 CPU 高频介入很多测量和比较可以由外设自动完成中断唤醒之后再处理即可。另一个关键点是故障保护必须“硬件优先、软件次之”。如果让 MCU 直接控制 MOSFET 去切电源一旦 MCU 跑飞或者死机整个保护就失效了。TPS259483 会自己判断故障并断开PIC18F57K42 只负责事后记录、上报、决定何时重新上电。这颗 MCU 的作用是让系统变聪明而不是替硬件扛危险。1.3 整体架构与应用场景这个方案的电源结构大概是这样的外部 12V 直流电源经过输入滤波后先接到 TPS259483 的输入端。电源从 eFuse 输出之后一部分直接给大电流负载另一部分进入 DCDC 降压成 5V 和 3.3V 给系统供电。PIC18F57K42 的电源由后级 3.3V 供给这样 eFuse 只要打开单片机就能正常启动eFuse 切断时单片机如果还有独立的小电源或备用电池就能记录最后的故障状态。整个系统的信号交互包括三路eFuse 的故障状态引脚接入 MCU 外部中断MCU 可以立刻知道保护动作输入输出分压后的监测点接入 MCU 的 ADC用软件判断电压是否在合理区间MCU 留一个 GPIO 控制 eFuse 的使能或者复位用于实现“自动恢复”逻辑。如果系统带通信接口比如 RS485 或者 CAN故障日志还能通过总线送出去。应用场景大致分三类。一是工业现场 IO 板一个机箱里插多块板卡热插拔过程中很容易出现瞬态大电流eFuse 可以限制上电冲击并防止单板短路拖垮整机。二是嵌入式控制器的电源入口特别是带着电机、阀门这类感性负载的设备反向电动势和堵转电流会频繁考验电源系统。三是需要远程运维的联网设备PIC18F57K42 记录故障原因和时间工程师不用去现场就能判断问题出在电源侧还是负载侧。2. 核心器件解析2.1 TPS259483AYWPR 能做什么TPS259483 本质上是“电子保险丝 负载开关 保护控制器”的三合一器件。从功能上看它内部有一个低导通电阻的功率 MOSFET正常工作时电流从输入流向输出损耗主要来自导通电阻异常时 MOSFET 被迅速关断把后级和外部的故障隔离。它的核心保护维度包括以下这些。过流保护。通过外接电阻设定电流限值当输出电流超过阈值后eFuse 不是瞬间彻底关断而是进入恒流或折返模式限制电流不再上升防止导线和板级器件继续发热。严重过流或者短路时再快速关闭。输入过压/欠压保护。用两个分压电阻监测输入电压超过设定窗口就关闭输出。对于工业母线这一步能挡住反接和过压浪涌。软启动。通过电容控制内部栅极电压爬升速率让输出电压缓慢上升给后级电容充电的时间避免上电瞬间的浪涌电流把前级电源拉垮。过热保护。芯片内部有温度传感器结温超过安全值就降额或者关断。这一点很容易被忽视因为很多分立方案完全没有过温保护板子冒烟了才知道超了。故障状态输出。保护触发后芯片会把故障标志拉低或者置位MCU 可以通过这根线知道硬件已经动作不需要自己反复读 ADC 去猜。需要说明的是具体输入范围、限流系数、软启动时间和输出状态逻辑一定要以 TI 最新数据手册为准。我在这篇文章里不把每个引脚和公式抄一遍因为数据手册比我更权威。我更想强调的是选型时怎么读这些参数以及这些参数在真实板子上会怎么影响表现。2.2 PIC18F57K42 在系统中扮演的角色PIC18F57K42 虽然只是 8 位机但外设配置相当丰富。电源监控场景中我主要用到它四个能力。第一是 12 位 ADC用来采集输入电压、输出电压和电流采样信号。12 位的分辨率在 3.3V 参考电压下步进大约是 0.8mV对于判断“电压是否掉了 5%”这种粒度已经非常充裕。而且它的 ADC 自带自动扫描和结果比较可以把电压阈值比较直接丢给硬件不需要 CPU 地毯式轮询。第二是模拟比较器和参考 DAC。比如我可以通过内部 DAC 设定一个过压阈值让比较器在输入电压超过阈值时自动产生事件即使 CPU 正在忙其他任务也能第一时间触发中断。这比纯粹靠 ADC 查询更实时也省去了软件滤波的负担。第三是独立于内核的外设比如信号测量定时器、可配置逻辑单元和硬件限制定时器。这些模块可以组合出类似“窗口看门狗”的逻辑比如要求在多少毫秒内必须看到 eFuse 的输出有效否则自动把某根 GPIO 拉低。这些功能写在代码里会很别扭但用硬件外设组合却非常干净。第四是通信外设。PIC18F57K42 自带 UART、SPI、I2C 等接口连 Modbus 协议都很容易实现。我这次用 UART 转 RS485 做了故障上报代码量并不大。还需要强调一点这颗 MCU 不参与毫秒级甚至微秒级的快速断电。快断由 TPS259483 负责MCU 只做“慢决策”。因为 ADC 采集、滤波、判断的过程需要时间用软件去切断功率回路响应速度太慢也没用。2.3 两颗芯片是怎么分工协作的下面的表格是我在设计文档里画给自己看的也是跟同事解释方案时最常用的一页纸。职责TPS259483 负责PIC18F57K42 负责快速响应微秒级关断、限流、过温不参与快断避免延迟阈值判断电阻配置的硬阈值ADC 采样后的软件阈值故障动作切断电源路径记录日志、决定是否重试通信上报无通过 RS485/CAN 上报恢复策略根据外部 EN 复位按策略控制重新使能状态监测输出 PG/FLT 标志检测标志并显示/上报这个分工的核心逻辑是模拟硬件负责不会说谎的“本能反应”软件负责会思考但不需要极速响应的“上层策略”。即使 PIC18F57K42 的程序因为 bug 跑飞TPS259483 依然会保护电源路径反过来如果负载出现缓慢的过流没有触发 eFuse 的硬阈值MCU 可以通过 ADC 提前判断按照业务逻辑决定是不是主动告警或者切断负载侧的部分电路。这两层保护互不替代、互为兜底。3. 硬件电路设计与实操要点3.1 系统电源框架设计我在这次项目里搭的是一个 12V 工业控制板整机消耗电流大约 2A峰值偶尔冲到 3.5A。电源链路是外部 12V 电源 → 防反接和输入滤波 → TPS259483 → 后级负载。后级负载分两部分一路直接给继电器模组供电另一路经 DCDC 降压成 5V/3.3V 给 MCU 和传感器。输入侧我放了 22uF 的陶瓷电容和反接保护 TVS用于吸收线缆插拔和雷击感应产生的瞬态能量。输出侧放了大容量储能电容容量要看后级负载的动态响应需求但又不能无脑加大因为 eFuse 软启动时间必须兼顾这些电容的充电电流。常用的做法是输入侧预留 10uF~100uF输出侧在 eFuse 后级先放 10uF 稳住环路真正的储能电容放在 DCDC 前面这样 eFuse 启动时不会直接面对海量电容。图中的电流走向要尽量遵循“输入电容 → TPS259483 输入引脚 → 内部 FET → 输出引脚 → 输出电容”这样一条短而宽的功率链路采样和信号线不要插到这条路径中间去。很多新手把 MCU 的地和功率地混在一起结果一旦负载波动ADC 读数就开始跳看起来像是保护误触发其实全是地弹。3.2 eFuse 配置电路与参数计算eFuse 的外围配置不算多但每个电阻电容都决定了实际行为。下面是我这次配置的思路。过压欠压检测用电阻分压。目标窗口是输入电压低于 10V 或高于 16V 时关断。计算公式很简单就是对分压网络的上下两个电阻取值让窗口中间点在 12V。这里要注意分压电阻的精度最好用 1% 甚至 0.5% 的电阻否则工业母线电压稍微波动系统就会在窗口边界反复启停。限流电阻是这次设计的关键。数据手册会给出一条 ILIM 引脚电阻 K 值与限流电流的公式不同系列器件斜率可能不同。我设计时留了余量目标是正常运行 2A 左右限流点设在 4A。为什么留一倍空间因为后级继电器吸合和 DCDC 启动都会产生额外电流如果限流设得太接近正常工作电流一个电机堵转就误关断。按公式计算后我取了一颗 1% 精度的贴片电阻。实测时用电子负载从 1A 缓慢加发现限流触发点比理论值低了一点最后微调了阻值才对齐。软启动电容决定输出电压从 0 爬到稳定的速度。我的经验是如果后级总电容比较大软启动时间不能设得太短否则启动瞬间照样会产生很大的电容充电电流表现为输出还没起来eFuse 就把自己关了。当然也不能太长太长会让设备上电后半天处于欠压状态MCU 上电时序容易乱。我用示波器看输出电压斜率来做调整最终设定在几毫秒到十几毫秒这个区间就比较舒服。故障状态输出引脚需要加上拉电阻到 MCU 的 IO 电源这样常态是高电平保护动作时拉低。我同时也是把这一路串了一个小电阻防止板子调试时不小心短路。3.3 MCU 监测接口电路设计PIC18F57K42 的 ADC 无法直接采集 12V 电压所以输入和输出监测点都需要用分压电阻降到 3.3V 以下。分压比例我选 1/10也就是 12V 对应约 1.2V这样既保留足够的分辨率又留出过压到 16V 时的余量。电流监测我优先采用 eFuse 自带的电流输出引脚。这种引脚会输出一个和负载电流成比例的电流源或者电压信号好处是不需要在输出主回路上再串一颗功率采样电阻避免了采样电阻导致的热损耗和压降。如果芯片没有这个引脚那就只能用低阻值采样电阻加差分运放的方法。PIC18F57K42 内部有运放模块可以直接配置省掉一颗外部运放但要注意输入共模范围别让采样信号超出运放允许范围。故障状态引脚接 MCU 的外部中断。我建议不要只在主循环里轮询。即使 MCU 跑在主循环轮询万一处于延时函数里或者处理通信故障发生几毫秒都没人知道。用外部中断可以在 eFuse 关断的瞬间把 MCU 从低功耗或者主循环中唤醒然后立刻记录当前输入电压、输出电流和故障时间这个现场信息对事后分析非常宝贵。使能和复位控制脚也要接 GPIO。需要注意电平逻辑有些 eFuse 是低电平使能有些是高电平使能做板之前一定要把数据手册逻辑看清楚。我吃过一次亏把默认使能状态弄反了第一次上电系统直接不开机。3.4 PCB 布局注意事项电源保护板能否稳定工作PCB 布局比原理图更关键。TPS259483 的功率路径是输入引脚到输出引脚中间是内部 FET。布局时输入电容和输出电容必须尽量靠近芯片的对应引脚不能为了布板好看把电容拉到几厘米之外否则寄生电感会在短路瞬间产生很高的尖峰eFuse 内部的 MOSFET 可能被击穿。采样线要采用开尔文连接。尤其是电流采样信号和电压分压信号必须从采样点单独拉细线回 MCU不能在功率路径上就近取个节点就直接进 ADC。地线同样要单独走信号地然后在主电容的负端单点连接功率地。我在调试中遇到过 ADC 读数随负载增加而明显偏大的问题最后就是通过把采样地重新连接到功率地单点解决。散热方面eFuse 虽然导通电阻不高但在 4A 限流状态下发热仍然明显。芯片底部的散热焊盘要大面接地打大量过孔辅助散热。如果板子安装在封闭机箱里最好让这一区域靠近外壳或者铝基板不然连续几次短路后芯片温度会飙升即使有过温保护也会频繁进入保护再恢复的循环。布局上还要注意别让 MCU 的高速通信线穿过功率路径下方。RS485 总线上的电感耦合噪声会把电源波动信号捡进通信线导致通信误码。我通常把通信接口放在板子一角eFuse 放在电源入口中间用底层地平面隔开。4. 固件实现与逻辑状态机4.1 MCU 初始化与上电自检PIC18F57K42 上电后最先做的是配置系统时钟、GPIO、ADC 和 UART。如果系统里有 RS485 收发器还要先把收发方向设置为接收防止上电瞬间总线冲突。接下来是上电自检。这个环节容易犯错很多人一上来就开主循环结果开机时如果 eFuse 输出还没稳定ADC 采到的任何一个异常值都会被当成故障。我的做法是等待电源稳定几百毫秒后连续采样输入电压和输出电压分别做三次平均然后跟预设窗口比较。只有在电压窗口之内才认为当前状态健康如果输出有电而输入掉底说明 eFuse 没有导通需要检查使能电平。下面的初始化代码只是一个演示框架实际项目需要根据引脚分配调整。void App_Init(void) { CLOCK_Init(); // 配置内部振荡器 GPIO_Init(); // 设置 eFuse EN/FLT 相关引脚 ADC_Init(); // 配置 12 位 ADC分配两个通道 UART_Init(); // 配置 RS485 通信 // 等待电源爬升稳定 __delay_ms(200); // 连续采样取平均 uint16_t v_in 0; uint16_t v_out 0; for (uint8_t i 0; i 3; i) { v_in ADC_Read(CH_VIN); v_out ADC_Read(CH_VOUT); __delay_ms(5); } v_in / 3; v_out / 3; // 判断窗口 if (v_in VIN_UV_VALUE || v_in VIN_OV_VALUE || v_out VOUT_UV_VALUE || v_out VOUT_OV_VALUE) { Fault_Report(FAULT_POWER_RANGE); } }这段代码强调的是一个思想MCU 上电后第一步不是盲目使能负载而是先确认电源路径健康。硬件保护固然可靠但软件自检能帮你发现硬件配置错误比如限流电阻焊错、分压电阻贴反等低级问题。4.2 故障检测与响应策略运行时状态机我设计了这么几个状态正常工作、过流预警、故障保护、恢复重试、锁定报废。正常工作状态下MCU 每隔 50ms 读一次 ADC同时等待 FLT 引脚的外部中断。如果 FLT 触发说明 eFuse 已经自己断开MCU 进入故障保护状态立刻记录现场数据。过流预警是软件层面的判断。因为 eFuse 限流点设在 4A如果 MCU 通过电流采样发现连续 200ms 电流超过 3.5A说明负载可能出了问题。硬件还没切断但已经接近临界。这时软件可以尝试降低后级负载比如关掉非关键继电器或者直接告诉上位机准备清场。这个机制是纯硬件方案给不了的。故障之后要不要自动重试取决于业务场景。对工业设备我一贯的策略是“最多自动重试两次第三次必须锁死”。因为第一次过流有可能只是外部干扰或瞬时堵转复位后有机会恢复但连续多次故障说明负载已经存在实质性损坏再试只会扩大损伤。锁死后通过 LED 和 RS485 上报工程师到了现场一看状态码就知道问题原因不需要把设备拆开逐级查。重试的时序也很重要。从故障发生到重新使能中间至少要等待几百毫秒让 eFuse 内部的故障锁存状态复位同时让输出电容完全放电避免带着个软启动的“余电”再次轰击输出。我实测过如果复位太快输出电容还没放完电重新软启动时容易产生大电流误触发。4.3 故障记录与远程上报PIC18F57K42 内部有数据 EEPROM专门用来存运行参数。我把每次故障的类型、输入电压、输出电压、电流值和时间戳打包成一个 8 字节的结构体写入与 EEPROM 映射的 Flash 区。掉电不丢失下次上电可以把历史记录通过调试串口导出。远程上报我选了 RS485 加 Modbus-RTU。实际代码里就是维护一个故障状态寄存器上位机读取对应寄存器即可。也可以把最后一次故障的详细参数放在多个保持寄存器里方便传感器系统直接读取。这里有个小技巧故障日志写到 Flash 时不要每次故障都重新擦除整块扇区这样会很快耗尽 Flash 寿命。我用简单的环形缓冲区只写入下一个空闲槽位满了再整体擦一次。工业设备十年寿命的要求下这样做才靠谱。4.4 软件滤波与干扰抑制工业现场的电源信号不会像实验室那么安静。ADC 采样值经常出现因为电机火花、继电器切换导致的毛刺。我不建议在 MCU 里做太复杂的数字滤波因为 8 位机的算力有限而且滤波太深会掩盖异常变化。常用做法是“中值滤波 超时确认”每次连续采样 5 次去掉最大最小值取中间三个平均值作为有效值然后连续多个周期都越限才触发故障。这样既抑制了单次干扰又不会像滑动平均那样引入大的响应延迟。另外FLT 引脚的硬件中断也要加一个 10ms 左右的软件确认防止静电类干扰直接误触发复位逻辑。但注意确认超时不能太长否则 MCU 还没来得及记录故障电容已经放电了。PIC18F57K42 的比较器模块还可以实现硬件级窗口监视可以不依赖 CPU 循环。我把输入电压窗口阈值放进去一旦超出比较器输出事件触发中断。这样 MCU 可以从主循环中抽出时间处理通信或者显示任务电源监控放在“后台硬件”上。5. 常见问题与排查实录5.1 开机瞬间误触发这是我遇到最多的问题。现象产品上电后输出偶尔起不来或者启动瞬间故障灯闪一下。用示波器抓输出电压会看到波形爬升到一半突然掉下去随后 eFuse 锁存。原因很简单后级大电容充电电流超过了设定的限流阈值eFuse 把它误判成短路。解决分两步。第一步把软启动时间加长让输出电压爬得更慢第二步适当提高限流阈值但前提是保证负载正常运行时不会超过限流点。我在实际项目中还发现一个隐蔽因素输入电源本身是软启动的电源适配器上电时电压是缓慢爬升的。TPS259483 的欠压保护窗口如果设得太窄输入电容充电慢会让 eFuse 在上电早期就退出等待状态导致后续输出被抑制。所以输入侧的欠压锁定回差不能设得过小分压电阻的阈值要按“最小工作电压 - 0.5V”去设计。5.2 限流点比设计值偏小有次我把限流电阻焊成 0603 封装实测发现同样负载下eFuse 比设计值早 15% 就进入限流。排查下来一是电阻精度只有 5%二是 eFuse 的限流系数本身有批次离散三是 PCB 上采样走线延长引入了额外电阻。建议是选 1% 精度金属膜电阻并且把限流点留出 20% 余量。如果项目对限流精度要求很高可以在产线通过电子负载校准后把实际限流值写入 PIC18F57K42 的 EEPROM软件在计算负载电流时用校准系数修正。5.3 ADC 读数随负载波动而漂移板子空载时电压读得好好的一带载MCU 显示的电流值比万用表大了不少。这个现象九成是地弹或参考电压偏移。PIC18F57K42 的 ADC 参考电压如果取自 3.3V 稳压器而稳压器的地线和功率地混在一起负载电流一变地的电位就会被抬高ADC 结果自然跟着漂。排查时先用示波器钩子测 MCU 的 VSS 和 VDD看有没有随负载变化的尖峰。如果明显就把功率地和信号地分开然后单点连接。还有一个低成本改进给 ADC 的参考电压引脚加一颗 0.1uF 和 10uF 电容尽量靠近引脚同时参考电压不要直接接在负载电流大的电源轨上。5.4 连续过流之后芯片热到烫手eFuse 在热插拔或者持续过流时温度会迅速上升。工业设备如果经常出现短暂堵转可能会让 eFuse 内部一直保持限流状态这种状态下功耗是正常的几十倍时间长了会伤芯片。解决方法是别把散热重任全压在一颗芯片上。如果负载真的经常堵转前端要选更大电流能力的 eFuse把限流点抬高到正常电流的两倍以上或者增加继电器的电子熔断逻辑让 MCU 在检测到持续过流后主动断开负载而不是让 eFuse 一直在限流状态下硬扛。我测试过热成像。在一个只有空气流动的小铁盒里TPS259483 在 4A 限流状态下 5 分钟结温能到 100°C 以上。所以板子量产前一定要做热测试并且要严格按照芯片数据手册的电流降额曲线来选工作点不要把额定值当长期工作值。5.5 故障排查速查表现象可能原因定位方法解决办法上电输出起不来欠压窗口设置过窄测 VIN 波形与分压点放宽窗口、增大回差带载瞬间误关断后级电容充电电流过大示波器抓启动电流加长软启动、抬高限流限流值偏小ILIM 电阻精度、系数离散电子负载标定换 1% 电阻、软件校准ADC 读数漂移地弹、参考电压不稳示波器测 VSS/VDD分割地线、加强去耦FLT 频繁中断外部干扰/软件去抖不够抓 FLT 引脚波形增加确认延时、 TVS 吸收RS485 偶尔误码通信地与功率地共阻抗双绞线加示波器独立隔离地、终接匹配6. 实测数据与经验心得6.1 带载测试记录我在实验室用电子负载做了几组典型测试环境温度 25°C输入 12.0V。空载时输出 11.98V整机静态电流不到 20mA。1A 负载时输出 11.95V纹波大约 30mVMCU 电池显示的电流值经过校准后和电子负载偏差小于 2%。3A 持续运行 30 分钟输出 11.90VTPS259483 外壳温度稳定在 64°C 左右说明散热设计基本合格。最关键的短路测试我直接用电夹子把输出短路。示波器抓到的电压跌落约在 20 微秒内被明显抑制eFuse 进入限流随后数百微秒内完全关断。虽然时间比很多独立 eFuse 标称要长一点但那是因为我是在短路线上用了比较长的测试夹和导线实际寄生电感影响了动作速度。无论如何这个速度已经远快于任何软件保护。我建议每个项目在量产前都做三组重复短路测试并且记录每次故障后 eFuse 能否自动复位。如果有一次出现锁死要确认是设计预期还是外围电阻电容参数漂移。6.2 标定与校准技巧电流采样精度直接决定软件预警是否可信。我的做法是先把 eFuse 的输出接电子负载从 0.5A 到 4A 每 0.5A 一个点记录 MCU ADC 原始值和电子负载读数。然后拟合出两点式线性修正系数写进固件。这里有个细节不要只校准一个电流点。有些板子的采样电路存在偏置零电流时也可能读到几十毫安。必须要做零点校准也就是负载断开的时候MCU 读到的是多少把这个值作为零点偏置减掉。否则 1A 以下的小电流负载很容易被软件误判为异常。同时校准完之后要把标准值回写 EEPROM并且在上位机界面内留一个“电流修正系数”的配置入口。产线装机的时候每块板子因为器件离散性不同实际系数会有小差别能在线调整会省去一大笔返工时间。6.3 后面还可以往哪扩展这套方案现在只做了电源保护但我已经在计划下一版扩展。一是把 MCU 的 DAC 输出接到 eFuse 的比较器参考端实现软件可调的过压/欠压阈值这样同一块板子可以通过指令适配 12V、24V 不同母线不用改电阻。二是加入 RTC让故障记录带真正的时间戳这样“某次故障发生在凌晨三点”对运维定位很有价值。三是把多个电源域的 eFuse 并到同一颗 PIC18F57K42 上形成整机电源域管理器哪个通道故障就单独断电、单独恢复其他通道不受影响。踩过几次坑之后我现在做电源类项目一定会同时留出模拟保护通路和软件恢复通路缺一不可。TPS259483 负责在微秒级切断危险PIC18F57K42 负责在毫秒级记录现场、决定下一步动作配合起来才是一套真正完整的嵌入式电源路径保护方案。如果你的系统正在做入口保护建议先按这篇文章的思路搭一个 12V 平台试试把启动波形和短路波形都抓到手里再谈下一步优化。
返回列表