ARTICLE DETAIL

资讯详情

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

基于eFuse与MCU的工业电源入口智能保护方案设计

基于eFuse与MCU的工业电源入口智能保护方案设计 去年做一台工业控制柜的改造时现场一套24V供电的传感器集线器连续烧了两块主控板。拆开看罪魁祸首不是传感器短路而是电源入口没有做完善的保护短路瞬间保险丝还来不及熔断板上的DC-DC已经先殉职了。后来我把入口方案改成“TPS259483AYWPR PIC18F4525”的组合把电源路径的保护做成了可配置、可监控、可记录的智能单元才彻底解决了这类问题。这篇文章就把这套方案从头到尾拆开讲包括器件选型理由、硬件连接、软件逻辑和实际调试踩过的坑适合正在做嵌入式电源设计或者工业控制板供电入口保护的朋友参考。工业设备的电源入口从来都不是“插上就能用”这么简单。这篇文章要聊的就是怎么用一颗电子熔断器TPS259483AYWPR做硬件级的电源路径保护再用PIC18F4525这颗8位单片机去负责阈值配置、状态监测和故障记录。方案不复杂但能把工业现场最常见的过压、欠压、过流、短路、浪涌和反极性问题一次性堵住同时让系统的故障行为变得可控、可观测。1. 工业电源入口的痛点为什么普通保险丝撑不住嵌入式系统1.1 嵌入式系统的电源“意外”远超预期嵌入式系统的电源入口尤其是工业应用面对的从来不是稳定的干净电源。我见过太多项目板子在家里实验室跑得好好一到现场就各种偶发复位、损坏、甚至冒烟。原因无非是输入电压的瞬态过压、感性负载切换产生的尖峰、负载侧短路、接错线导致的反接以及现场大功率设备启停带来的电压跌落。这些“意外”往往只持续几毫秒甚至几百微秒但足以让后级器件损坏。传统做法是加保险丝但保险丝有一个绕不开的问题它的熔断时间是电流的函数电流越大断得越快可如果是过压或者反接保险丝根本不会断后级稳压器照样会烧。即使遇到短路保险丝的I²t特性也可能比DC-DC的损坏阈值慢一个量级。有一次我用玻璃管保险丝做实验负载短路后保险丝花了将近20毫秒才熔断而板上的降压芯片在5毫秒时就已经失效了。也就是说保险丝能保护的是线缆不一定是板卡。另一个容易被忽略的情况是欠压。工业现场的24V电源在大型电机启动时可能瞬间被拉到十几伏。如果后级没有欠压锁定电源管和MCU会在低压下反复尝试工作产生一些奇怪的“半运行”状态最终导致MOS管在线性区过热烧毁。这类故障很难用万用表查往往要抓波形才能定位。1.2 保险丝、自恢复保险、PMOS分立方案的共同短板很多工程师会说那我用自恢复保险丝PTC行不行PTC的原理是温度升高后阻抗变大但它有个致命弱点动作速度太慢热惯性大。面对短路PTC完全来不及在微秒级响应。而且PTC的阻抗随温度漂移严重高温环境下保持电流会大幅下降导致设备误断电。还有人用分立元件搭保护典型的就是“PMOS 采样电阻 比较器 锁存电路”。这确实能做电源路径开关但分立方案的问题在于参数分散性大、响应速度取决于运放带宽、保护阈值容易受温度影响而且一旦要增加过压、欠压、反向等多个功能板级面积和调试成本会快速膨胀。我在一个项目中就吃过亏分立方案里比较器的阈值在高温箱里漂了将近20%导致过流点忽高忽低最后只能靠校准电阻一个个调。有一类方案是用专门的负载开关Load Switch但普通负载开关往往没有短路保护或者保护阈值固定。对于工业应用我更倾向于用集成式电子熔断器eFuse把功率MOSFET、电流采样、比较器、电荷泵和故障逻辑全部封装在一颗芯片里。和分立方案相比它的参数一致性和温度稳定性好得多而且响应时间可以做到微秒级别。下面这张表是我常见的几种方案对比方案过流响应速度过压/欠压保护反接保护可配置性故障状态输出保险丝慢毫秒级不支持不支持无无自恢复保险丝极慢不支持不支持无无PMOS分立电路中取决于比较器可以但要另外搭需加防反MOS需改电阻需额外电路eFuseTPS259483快微秒级支持可调支持防反接模拟/数字可调FAULT/状态寄存器1.3 我们的项目需求哪些保护功能必须同时有当时我们改造的是一台自动化产线的控制柜接口板要同时给PLC、传感器、继电器模块供电。提需求时客户只说了“别老烧板子”但我们作为设计方心里得有一份完整的保护需求清单输入电压范围标称24V但允许短时间30V过压最低9V欠压低于9V要切断输出。过流保护额定负载约1.2A希望过流阈值可设置到大约2A避免正常启动瞬间误断。短路保护输出对地短路时要在微秒级切断并且限制峰值电流。反向保护防止24V和0V接反时损坏后级。浪涌电流控制后级有多个大电容上电瞬间要能限制冲击电流。状态监测和记录至少要能知道发生过什么故障、什么时候发生的现场工程师才能快速排查。如果全用分立器件这套需求做下来估计得半张A4纸的电路。但用TPS259483AYWPR这颗eFuse过压、欠压、过流、短路、浪涌控制、反向保护都能管到PIC18F4525则负责把保护阈值做成动态可调并记录故障日志。一句话总结硬件级保护靠eFuse抢时间软件级管理靠MCU做策略。后面的章节详细说说这两颗芯片是怎么分工的。2. TPS259483AYWPR 防护能力拆解它替我们扛下了哪些事2.1 这颗eFuse的核心指标和内部架构TPS259483AYWPR 是 TI TPS25948 系列里的一颗电子熔断器。所谓eFuse可以想象成一颗“带着微控制器的智能保险丝”内部集成了导通MOSFET、电流感测放大器、比较器、电荷泵和多种保护逻辑。它的导通电阻很低所以正常工作时损耗很小。根据系列特性它可以支持较宽的输入电压范围典型工业应用在24V系统很匹配并且能承受一段时间的过压冲击。我们选的是带后缀AYWPR的封装版本这类封装通常带裸露散热焊盘便于把芯片的热量导向PCB铜箔。内部架构上芯片通过一个精确的电流源流过外置电阻来设置过流阈值通过电阻分压设置输入过压和欠压阈值。它的电流限制模式可能是恒流限流或断路器模式具体可以通过外接电容或数字配置决定。我们项目里选用的是“短路时快速断开过载时先限流后延时断开”的折中策略既不过于激进也不会让短暂过载直接切断负载。这里要提一个容易忽略的点eFuse的保护动作是“硬件实时”的它不依赖MCU介入。即使PIC18F4525正在忙着处理别的逻辑或者死机了TPS259483依然会独立执行过流断开等动作。这种“硬件保护优先”的设计在工业安全场景非常重要。2.2 输入保护过压、欠压、反极性怎么工作输入侧保护主要依靠UVLO欠压锁定和OVP过压保护比较器。工程师可以通过外部电阻网络设定两个阈值。当VIN低于UVLO阈值时内部FET关断输出会被断开当VIN高于OVP阈值时同样关断防止过高电压传到后级。实际设计时阈值不能设得太极限。比如我们标称24V欠压阈值设到9V过压阈值设到31V这主要是为了留出容差空间。如果真的让阈值贴到24V那现场24V电源的普通纹波都会触发保护设备就没法正常工作了。反极性保护则利用了集成FET的背靠背结构或者通过内部比较器检测VIN为负时迅速关断路径。使用eFuse做反接保护比外部加防反MOS简单得多省掉了一个低导通压降的PMOS和栅极驱动电路。有一点需要说明虽然eFuse能扛反接但不代表它能长期承受大幅负压。按照常见手册要求反接电压一般不能超过一定幅度比如-30V以内而且时间有限。如果你的系统可能接入更恶劣的电源建议在入口增加TVS二极管或防反二极管进行辅助钳位。至少把TVS摆上成本不高但能避免很多极端现场的“惊喜”。2.3 输出侧软启动、过流、短路与热关断输出侧的第一个关键功能是软启动。工业后级往往有几十到几百微法的电容如果直接硬接通会产生巨大的浪涌电流。TPS259483的软启动功能会控制输出VOUT以一定斜率缓慢爬升这个斜率可以通过外接电容来调整。我们在项目里设置软启动时间大约5ms实测后级的DC-DC输入浪涌电流被限制在了1.5A以内完全在输入电源的承受范围内。过流保护是eFuse的核心价值所在。当负载电流超过设定阈值后内部电流感测电路会先进入限流模式把电流“钳”在设定值附近同时开始计时。如果超限持续时间超过设定值就触发断路器动作彻底切断输出。这种“先限流再切断”的方式对很多负载很友好比如电机堵转或继电器吸合的瞬时电流尖峰只要时间特别短设备可以正常工作而不会误保护。短路保护的响应速度是最值得夸的一点。输出端真正短路时电流上升斜率极快芯片会通过快速比较器在微秒级切断FET。我抓过波形从短路发生到VOUT跌落到零大约6~8微秒这个速度是分立方案难以做到的。热关断则是最后的防线如果芯片自身温度超过约160°C它会暂时关断等温度降下来后再恢复或锁存具体取决于配置。2.4 故障输出与状态读取机制几乎所有eFuse都有一个开漏输出的FAULT引脚正常时是高阻故障时被拉低。这个引脚可以直接接到MCU的外部中断引脚。PIC18F4525只要检测到下降沿就能立刻进入中断服务函数去读取更详细的故障原因。如果芯片支持PMBus或SMBus还可以通过I2C读取寄存器里的故障码区分是过压、欠压、过流、短路还是热关断。在我们方案里FAULT信号除了接MCU还会同时接一个LED。这样现场工程师不用连电脑看到LED闪烁规律就能初步判断故障类型。比如慢闪表示过压快闪表示过流常亮表示热关断。这种小的交互设计在现场维护时非常管用比拿示波器测半天高效得多。另外PGPower Good状态输出也要利用起来。当VOUT上升到目标值的90%左右时PG会拉高或拉低看配置这个信号可以用于后级DC-DC的Enable使能实现真正的顺序上电。我的习惯是用PG信号控制后级负载的启动而不用MCU的延时因为纯软件延时无法感知真实的电源爬升状态容易在后级还没稳定时就提前上电导致冲击。3. PIC18F4525 的角色不是抢活干而是做智能化的“哨兵”3.1 为什么电控系统里要加一颗MCU既然TPS259483已经能把所有保护功能都做了为什么还要加PIC18F4525因为工业应用要的不只是“断掉”还有“什么时候断、断多久、断了之后怎么办、为什么断”这些策略问题。举个例子我们在产线上需要区分“短暂过载”和“永久故障”。负载启动瞬间电流是1.8A持续2ms这是在正常工作范围内的但如果是负载卡住导致1.8A持续200ms那就需要切断。eFuse本身可以通过延时参数实现一部分但延时参数一旦焊成电阻固定了现场想改就得换板子。有了PIC18F4525我可以通过数字接口动态修改阈值和延时或者根据不同的工况比如设备待机模式和运行模式切换两套配置。这就把一颗固定的保护芯片变成了“可编程保护策略单元”。另外故障记录也是现场运维的刚需。以前设备坏了我们只能到场后靠猜测没有数据。现在PIC18F4525可以在每次FAULT触发中断后把故障类型和发生时间存到EEPROM。下次维护人员用一根串口线或者简单的数码管菜单就能把最近几次故障记录翻出来。这在排查“偶发性重启”类问题时价值是不可替代的。3.2 PIC18F4525 的外设资源哪些此刻是必须的PIC18F4525 是一颗40/44引脚的高性价比8位单片机带有MSSP模块可配置为SPI或I2C、多个定时器、10位ADC、内部EEPROM和看门狗计时器WDT。在跟TPS259483配合时我主要用到以下资源一个外部中断引脚比如INT0/INT1接FAULT实现下降沿触发。一个GPIO接EN使能用来在程序里控制电源通断也用于故障恢复后的重新上电。如果选的是带PMBus/I2C的eFuse版本MSSP模块作为I2C主机去读写寄存器实时读取Vin、Vout、电流和故障码。可以参考I2C总线速率为100kHz因为工业现场线束较长慢一点更稳。内置ADC可以用来额外采集输入电压作为对eFuse内部电压检测的冗余校验。注意PIC18F4525的ADC参考电压要接高精度基准否则测量意义不大。EEPROM用来存故障记录、阈值参数和校准系数。WDT独立看门狗保证即使程序跑飞MCU还能自动复位保护策略不会一直失效。这颗MCU的运算能力不强但在这个应用里足够。我们不需要做控制算法只需要做状态机管理。PIC18F4525的优势是稳定、外设齐全、工业级货源充足。如果用ARM Cortex-M当然也可以但对于这种“守在旁边看门”的角色8位机反而更简单可靠一颗MCU烧掉以后更换成本也低。3.3 设计与分工硬件保护靠eFuse软件策略靠MCU这里我要强调一个设计原则不要把安全保护的关键路径放到MCU的软件判断里。如果你设计成“MCU检测到过流然后控制eFuse断开”那响应时间一定不够。正确分工是毫秒/微秒级动作全部由TPS259483硬件完成包括短路切断、限流、过压欠压关断、热关断。毫秒级以上的策略由PIC18F4525完成包括阈值切换、上电时序控制、故障恢复策略、故障记录、人机交互。举个例子当设备发生输出短路TPS259483会在几微秒内切断输出同时拉低FAULT。PIC18F4525收到中断后并不会立刻重新打开EN而是先读取故障寄存器将信息记录到EEPROM然后等待1秒再进行一次软启动尝试。如果故障消失系统恢复如果故障再次触发且连续发生5次MCU就会锁死输出并在LED上给出“需要人工介入”的指示。这套逻辑如果没有MCU单靠eFuse的自动重试功能也能做但灵活性差很多无法记录尝试次数也无法区分“暂时抖动”和“永久故障”。这样分工还有一个好处即使MCU的固件升级或复位期间eFuse依然保持原有的硬件保护设置。我曾经在调试固件时把PIC18F4525程序烧录卡在循环里但主板依然能正常供电没有发生任何过流灾难。这个体验让我更加确信保护和监控要分层不要混在一起。4. 硬件设计从阈值电阻到完整参考电路4.1 关键引脚连接与电阻计算含计算实例先说TPS259483的典型外部电路。芯片通常有VIN、VOUT、EN、FAULT、PG、ILIM或ILIM/UVLO/OVP组合引脚、SS软启动、GND。具体引脚命名以数据手册为准不过思路通用。我以设定“输入欠压9V、过压31V、过流2A、软启动5ms”为例说明计算逻辑。芯片内部会有一个Idac电流源从ILIM引脚流出外接电阻Rilim到GND然后内部产生参考电压。过流阈值一般与Rilim成反比公式大致是 I_LIM K_ILIM / R_ILIM具体K值查手册。如果我需要2A对照手册的阻值表可能选一个100kΩ左右的电阻。注意这里不能用普通5%电阻要用高精度低温漂电阻最好1%或更低25ppm/°C以下否则过流阈值可能偏差超过设计裕量。欠压和过压阈值通过两个电阻分压到UVLO/OVP引脚。先把引脚参考电压Vref从手册查出通常1.2V或类似然后根据分压公式V_UVLO Vref * (1 R1/R2_uv)前提是引脚输入是高阻。V_OVP Vref * (1 R3/R4_ov)。为了提高精度分压电阻的阻值不要选太高的兆欧级会引入噪声和漏电流误差也不要太低会增加损耗。我一般分压网络总电阻设计在几kΩ到几十kΩ之间。比如R1用75kΩR2用10kΩ那么V_UVLO 1.2 * (1 7.5) 10.2V再根据实际电阻精度微调。但计算完不要直接相信必须结合实际负载下的电压测试用电压源扫描输入电压找出实际保护动作点再微调电阻。软启动时间由SS引脚外接电容决定。手册上一般会给出一个充放电电流I_SS然后 T_SS C_SS * V_SS / I_SS。我选5ms左右用常见的10nF电容上电后VOUT爬坡平稳。如果负载电容特别大记得加大SS电容但加得太大也会让系统上电时间过长不适用于需要快速响应的设备。4.2 PIC18F4525 与 TPS259483 的接口对接PIC18F4525工作电压是5V而TPS259483的通信引脚如果是PMBus/SMBus可能兼容3.3V或5V逻辑需要确认。如果逻辑电平范围不匹配可以在I2C线上加电平转换或直接选用5V兼容型号。我在最初一版设计时没注意这一点直接把1.8V逻辑的电平转换芯片省了结果I2C通信时偶尔丢包后来查了时序才知道是电平不匹配造成的。具体连接方式PIC18F4525引脚方向TPS259483引脚作用INT0/RB0输入FAULT故障中断检测RA0输出EN使能/复位电源路径RA1输入PG电源正常状态监测SCL/RC3输出SCLI2C时钟SDA/RC4双向SDAI2C数据VSS/GND-GND共地另外FAULT是开漏输出需要外部上拉电阻到MCU的VDD。上拉电阻我一般选4.7kΩ到10kΩ。如果现场干扰强可以在FAULT线对地并联一个3.3nF电容做RC滤波但要注意这个电容会引入延迟如果响应速度要求特别高就必须要小一点比如1nF。EN引脚最好不要直接悬空或直接接VIN而要让MCU可控。上电初始阶段MCU还没初始化时EN应该是默认关断状态。为此在EN引脚和MCU GPIO之间加一个下拉电阻比如10kΩ到地同时MCU上电后先设置为输出低电平等程序就绪后再拉高使能。这样能避免MCU复位期间系统突然上电导致后级随机启动。4.3 电源与PCB布局要点差一点就重启eFuse工作在高电流路径上布局直接影响性能和EMI。第一原则是“输入电容靠近VIN、输出电容靠近VOUT”。输入电缆如果较长它的寄生电感在负载短路瞬间会产生电压尖峰严重时可能击穿eFuse的VIN脚。所以输入就要放一组低ESR的陶瓷电容比如22µF陶瓷紧贴VIN引脚并在更靠近引脚处再放100nF的高频去耦形成低阻抗路径。第二是电流路径要粗短。走线宽度应按预期电流计算1.2A额定电流不算大但短路瞬间的di/dt可能很高所以主路径用加宽铜箔甚至敷铜处理。我习惯把输入和输出的高电流路径分别铺铜并且尽量避免在它们之间穿过任何控制信号线避免磁场串扰。第三是地平面。PIC18F4525的模拟地和功率地不要混接。虽然这不是高精度测量系统但eFuse开关过程中会产生地弹噪声。我采用单点接地策略eFuse及输入输出电容的下方用独立的小地岛然后通过一个过孔阵列接入主地平面MCU的地参考点单独引出。这样MCU的地电位不会被负载电流拉偏I2C和FAULT信号也会更稳定。最后是散热焊盘。TPS259483AYWPR的大焊盘不要只用一个过孔接底层地最好用5×5的过孔阵列每个过孔直径0.3mm增强热传导。我第一版偷懒只打了4个过孔结果满载运行半小时后芯片温度比第二版高了将近15°C这个差距在工业高温环境下可能直接触发热关断。5. 软件实现让保护功能可配置、可追溯5.1 初始化与阈值切换逻辑固件程序的结构不复杂但必须清晰。上电后PIC18F4525先完成自身初始化再把EN拉低保证eFuse输出关闭。然后通过I2C读取eFuse的ID寄存器确认通信正常。接着根据当前工作模式写入阈值配置比如待机模式下过流阈值1.5A运行模式下过流阈值2.5A。如果芯片不支持数字配置那就得通过模拟电阻切换实现比如用MCU的GPIO控制继电器或模拟开关切电阻。数字配置显然更优雅。初始化完成后MCU把FAULT中断使能再将EN拉高开始监控。下面是一个简化版的初始化伪代码void protect_init(void) { // 配置GPIO TRISBbits.TRISB0 1; // FAULT输入 TRISAbits.TRISA0 0; // EN输出 TRISAbits.TRISA1 1; // PG输入 EN 0; // 先关断输出 // 配置I2C主机 I2C_Init(100000); // SMBus/PMBus通常100kbps // 读取eFuse ID uint8_t id TPS_ReadByte(REG_DEVICE_ID); if (id EXPECTED_ID) { // 设置过流阈值、OVP/UVLO延时等参数 TPS_WriteByte(REG_ILIM, ILIM_CONFIG); TPS_WriteByte(REG_PROTECT, OVP_EN | UVLO_EN | OC_MODE); } // 设置故障中断 INT0_RisingEdge_Disable(); INT0_FallingEdge_Enable(); INTCONbits.PEIE 1; // 使能外设中断 INTCONbits.GIE 1; }注意这里不要试图在初始化时把所有寄存器一次写完最好每写一个寄存器就读回校验防止I2C时序被干扰。我遇到过因为初始化期间瞬间大电流导致SDA被意外拉低如果没有校验后面状态全乱了。阈值切换不能“一瞬间”发生。如果系统正在带2.3A负载你突然把过流阈值从3A降到1.8A即使是一瞬间也可能会触发误保护。所以切换策略时要先将eFuse置于“不使能”或“允许短暂过流”状态再修改阈值最后恢复。在工业现场负荷切换最好还是在设备空闲时进行。5.2 故障中断响应与状态读取发生故障时FAULT引脚下降沿触发PIC18F4525外部中断。中断服务函数要做的事越少越好我的处理方式是中断里只做一件事设置一个全局标志位 fault_flag并记录当前系统时间戳。然后退出中断。主循环检测到fault_flag后读取故障寄存器判断故障类型。从EEPROM里读出故障历史记录将新记录写入下一个存储槽记录内容包括故障类型、温度、时间戳。根据故障类型决定恢复策略。为什么不在中断里直接读I2C因为I2C通信不够快而且中断里等待应答会影响其他时序。更重要的是如果故障是过流引起的在中断里去读寄存器I2C读写过程可能又产生一些边沿噪声干扰系统恢复。放到主循环里处理时间多几百微秒完全来得及。读取故障状态时要注意某些eFuse的寄存器是“自清”的读之后自动清除故障标志。我犯过一次错误中断触发后先读了一个寄存器然后又想去读另一个结果第二个寄存器里的故障码已经变成了0。正确的做法是先把所有有效寄存器一口气读回来存到本地变量再统一解析清标志。恢复策略举一个实际例子当故障类型是“过温”说明环境温度可能过高此时不能马上自动恢复应等待足够长的时间再尝试当故障类型是“欠压”说明输入电源本身有问题MCU应该通知上位机并每隔5秒尝试一次故障类型是“过流”或“短路”且连续发生3次则锁定输出不再自动恢复必须人工断电或者通过外部命令解除锁定。这套逻辑可以避免现场设备反复启动、反复损坏。5.3 简易故障记录功能EEPROM存储PIC18F4525有内置EEPROM大约1KB足够记录故障日志。我的存储格式是固定结构体每条日志占8字节分别为序号、故障码、小时、分钟、温度值。按最多100条记录设计正好占用800字节剩余空间存设备ID和配置校验和。写入EEPROM前要关闭全局中断防止写入期间被打断。EEPROM擦写寿命是有限制的工业设备如果每几小时就触发一次故障长期频繁写入会把EEPROM写坏。所以我会做“同故障合并”策略如果距上次故障不超过10分钟且故障码相同则只更新时间戳不增加记录条数超过10分钟才写入新记录。这样既保留了故障频率信息又延长了EEPROM寿命。读回日志时我在串口命令里加了一个简单的协议比如发送“LOG”返回所有记录发送“CLR”清除记录。现场调试人员不用拆机拿一条USB转串口线连接调试口就能查看。这里分享一个细节故障记录虽然重要但不要让它成为系统的负担。有一次客户反馈设备“偶发重启”我们根据日志发现之前发生过短暂的热关断于是把散热改善之后问题就消失了。如果没有记录这种偶发问题可能来回排查几周都找不到根因。所以让智能保护系统自己“说话”是很有价值的。6. 实测与避坑启动冲击、误保护、EMI那些坑6.1 上电瞬间为何会误报过流怎么解决第一次联调时我们信心满满地给板子上电结果系统一上电就触发了一次过流保护。示波器一看eFuse的输出VOUT爬坡到一半时被切断。原因很简单后级DC-DC的输入电容太大软启动时间设得又太短即使VOUT爬坡DC-DC的输入还没稳定就开始吸取大电流和eFuse的过流检测叠加起来触发了保护。解决方式有好几种。最简单的是把软启动时间延长。我最初设置5ms改为10ms后上电冲击电流明显下降。但注意不能无脑延长工业控制有时要求快速启动太长会导致时序超时。第二种方式是修改过流阈值在启动期间“临时放宽”利用MCU在启动阶段比如100ms写一个更高的过流阈值启动结束后再恢复标准阈值。这种方式有效但一定记得超时后要把阈值恢复否则等于削弱了保护。第三种方式是先对后级电容预充电通过一个大电阻或限流路径先给电容充到一定电压再闭合主通路。这个方案多用了元件但效果最好。我们权衡后用了方案一方案二的组合软启动10ms启动期间过流阈值从3A坚持500ms然后切回2A。实测下来不再误报。6.2 阈值设置与容差分析的实际经验理想情况下把过流阈值设置在额定电流的1.5到2倍就够。但现实是电阻有精度误差芯片比较器有失调甚至过流检测电路在不同电流下的精度也不同。我遇到过设计时用1%电阻预期2A阈值实际过流动作点2.14A超出预期7%。这还不算温度漂移。所以我的经验是不要照着理论极限设计一定要留足裕量。比如负载最大1.2A过流阈值不该设在1.3A建议至少2A。对于需要精确保护的场合可以用MCU的ADC实时读取负载电流通过eFuse的电流监视输出或外部采样电阻并根据实际电流去校准过流阈值寄存器。这样就能把“标称值”变成“实际值”。另外欠压阈值要注意整机供电的跌落。如果输入电源本来就有1V的纹波你把欠压阈值设到22V正常运行时不时的纹波就能触发保护。我习惯于把UVLO阈值至少低于最低工作电压1V以上。例如标称24V最低工作电压可能只有20V那UVLO设到17V左右比较安全。过压阈值则要高于最高瞬态值但不能超过芯片的最大额定电压。6.3 工业现场的噪声干扰与滤波设计工业现场可以说是EMI的试炼场。变频器、开关电源、继电器通断都会在电源线上感应出高频噪声。eFuse的保护比较器带宽很宽噪声很可能让FAULT产生毛刺错误地触发中断。我们曾经遇到一个现象设备在车间里运行正常但每当旁边的变频器启动时系统会偶发性地重启。后来抓FAULT信号发现上面叠加了一串几伏的负尖峰超过了MCU引脚的绝对最大额定值导致MCU复位。解决方法是在FAULT和MCU之间增加一个RC低通滤波器同时并联一个小电容到地。此外还要检查柜体的接地确保电源0V和大地之间的高频阻抗足够低。如果eFuse支持数字配置还可以调整故障响应时间故意屏蔽掉一些非常窄的瞬时干扰。但这里有个平衡响应慢了真正短路时可能要多承受一段电流能量响应快了又容易误报。对于24V工业系统我通常把过流检测的消隐时间filter time设在20~50µs左右既能滤掉大部分噪声毛刺又不至于在短路时反应太慢。最后再说一个接地细节很多工业设备把24V电源的0V与保护地PE连接但MCU的信号地是浮地的。这种情况下I2C的SDA/SCL线在长距离时会引入地环路噪声。我建议在数字接口线上加小型共模电感或者将I2C总线速度降到10kbps能明显改善稳定性。如果产品需要过认证还应该在电源输入端留出TVS和前级共模扼流圈的位置即使你暂时不焊也要预留封装位。做完整套方案下来我的最大体会是电源路径保护不是“加个保险丝”那么简单而是要在硬件速度、软件策略、EMI防护之间做平衡。TPS259483AYWPR负责把硬件保护的底线守住PIC18F4525再把它变成一颗“懂事”的电源管家。这套架构看起来不起眼但在工业设备漫长的生命周期里能少烧好几块板子也少让现场的工程师半夜爬起来处理故障。希望上面的电路思路和调试经验能给你的设计省一些弯路。
返回列表