ARTICLE DETAIL

资讯详情

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

基于TPS259483电子保险丝与STM32的工业电源路径保护设计

基于TPS259483电子保险丝与STM32的工业电源路径保护设计 做嵌入式或者工业控制的人大概率都遇到过这样的场景设备在客户现场运行得好好的某天突然烧了拆开一看电源输入端的DCDC芯片或者后级主控烧得面目全非。原因往往很朴素就是输入电源来了一个过压尖峰或者负载侧有短路而前端没有一套可靠的电源路径保护。我的习惯是在每一块主板的最前端先把“看门”的做扎实再去追求功能逻辑。这套设计里我用了TI的电子保险丝TPS259483AYWPR配合STM32F302VC把电源路径做成一个既能硬保护、又带软件可观测性的子系统。这篇文章不是复述数据手册而是记录我在一个实际项目里怎么选型、怎么算参数、怎么写控制逻辑、又踩过哪些坑。如果你正在做一个带电池或者带外部电源输入的嵌入式设备或者需要在工业现场提升电源的可靠性这篇文章大概率能帮你少走几段弯路。1. 方案选型与设计思路1.1 传统保护方案都有哪些让人牙痒的短板先说个背景。早些年我做电源保护要么用玻璃管保险丝要么用自恢复保险丝再讲究一点就用分立器件搭一个限流电路。这三种方案各有各的难受之处。玻璃管保险丝动作速度慢而且熔断之后必须人工更换在工业现场更换一次保险丝的人工成本比保险丝本身贵得多。自恢复保险丝虽然能恢复但它的动作点受温度影响很大同一个规格在高温和低温环境下触发电流能差出30%以上更麻烦的是它恢复之后内阻不可控长时间工作会发热稳定性并不理想。分立MOS管限流方案倒是能把保护阈值做得很准可是需要精密采样电阻、比较器、参考源、驱动电路一堆东西PCB面积占用大而且保护功能单一——通常只有过流保护过压、欠压、反向电流这些还得单独再补。所以当我第一次看到TPS259483AYWPR这颗器件时最大的感受是把该集成的东西都集成进去了。它本质上是一个可编程的电子保险丝内部集成功率MOSFET、电流采样、限流比较器、过压保护、欠压锁定、软启动控制、故障锁存逻辑外部只需要几颗电阻电容就能设定完整的保护参数。对于嵌入式主板来说这种集成度意味着保护方案不再依赖布线和调试手艺而是有明确的可计算性。1.2 TPS259483AYWPR的核心能力拆解这颗芯片在系统里的角色可以理解成一个带闸门、带电流表、带电压表、还能自动跳闸的“配电开关”。它串联在电源输入和负载之间正常工作的时候相当于一个低阻抗通路一旦检测到异常能在几十微秒内切断输出把故障隔离在前级。我梳理了这颗芯片对嵌入式设计最有价值的几个特性特性对设计的意义可调电流限制用一颗电阻设置限流点短路时输出不超标可调输出压摆率dV/dt控制启动浪涌电流防止大电容负载上电冲击输入过压保护OVP外部电阻分压设定阈值防止高压损坏后级欠压锁定UVLO输入电压低于阈值时保持关断避免低压异常工作故障输出引脚FLT故障时拉低可接MCU中断快速感知异常电源正常引脚PG输出稳定后通知MCU适合做上电时序管理反向电流阻断防止输出侧电压倒灌到输入端这些功能单拎出来任何一个都能用分立器件实现但把它们集成到一起之后整个电源入口的保护设计就变成了“选参数”而不是“调电路”。在我这个项目里输入是24V工业电源负载峰值电流4.5A后级有多个传感器模块和一颗主控MCU。选这颗器件就是看中它能在24V的输入下直接覆盖我的电流档位不用再加额外的驱动级。1.3 为什么控制核心选了STM32F302VC电源保护芯片负责“硬动作”但一个完整的工业设备还需要知道“发生了什么、该不该恢复、怎么上报”。这就要一颗MCU来做决策和交互。我选STM32F302VC不是随机拍的有几个实际考量。第一这颗芯片是Cortex-M4内核带FPU主频72MHz。虽然单纯管理电源用不到这么强的算力但在同一个系统里MCU往往还要承担传感器数据处理、通信协议解析这些任务F302VC的算力余量能让我把电源监控和业务逻辑放在同一颗芯片里不额外增加一颗MCU。第二STM32F3系列有一颗很实用的外设——内置比较器。常规做法是用ADC轮询电压电流但ADC轮询有延迟对微秒级的过流事件反应不过来。F302VC的片上比较器可以直接监测eFuse输出的电流采样信号超过阈值立即触发中断比靠ADC轮询快得多。这一点在后面软件设计里还会展开。第三接口资源足够。F302VC有CAN、UART、I2C、SPI工业设备免不了要接上位机或者组网这些接口不用为电源控制部分省资源。LQFP100封装管脚也够用不至于为了几个GPIO去加扩展芯片。这套组合的思路就是TPS259483AYWPR做“快速硬件保护”STM32F302VC做“状态感知、决策、恢复和上报”。硬件保护不依赖软件即使MCU死机eFuse依然能切断故障软件负责让系统更智能比如记录故障次数、决定是否自动恢复、把状态上报给上位机。两条路互不干扰可靠性自然就上去了。2. 硬件电路设计引脚配置与关键参数计算2.1 系统连接架构与引脚分配在这个项目里系统的电源链路是这样的外部24V输入先经过EMI滤波和一级反极性保护然后进入TPS259483AYWPR的输入端输出侧给后级DCDC转换器和传感器模块供电。STM32F302VC的供电也从eFuse输出侧取电这样如果eFuse因为故障跳闸MCU也会掉电——这里涉及一个取舍后面我会专门讲怎么处理。我实际的引脚连接如下表引脚连接方向说明VIN24V输入输入接输入电容和EMI滤波VOUT后级负载输出接输出电容再经过DCDC给系统供电ILIM限流设置电阻编程电阻到GND设定限流点dVdt软启动电容编程电容到GND设定压摆率OVP过压分压电阻编程电阻分压设定过压阈值EN/UVLO使能与欠压分压输入MCU的GPIO控制同时做欠压检测FLT故障输出MCU中断输入故障时拉低内部/外部上拉PG电源正常输出MCU输入输出稳定后拉高GND系统地-功率地和信号地单点连接STM32F302VC那边我用PB5控制ENPB6接FLT并配置为下降沿中断PB7接PG作为状态查询。同时用ADC的两个通道分别采样输入电压和输出电压用于软件层面的电压监测。这里注意一个细节mV级电压采样要考虑到分压电阻的精度我选的是0.1%精度电阻温度系数25ppm/°C否则软件读到的电压漂移会很大。2.2 限流阈值的计算别只看稳态电流限流点的设定是整个设计里最需要动脑筋的地方。设小了正常工作的峰值电流可能误触保护设大了对后级电路的保护作用就变弱短路时瞬间能量还是可能打坏器件。以我的项目为例系统稳态电流约2A但电机或者继电器动作时峰值会到4.5A左右。我最初想当然地设了5A限流结果一上电偶尔会触发保护后来才意识到问题出在后级电容充电的瞬态浪涌上。最终我把限流点定在6A同时配合压摆率控制把启动瞬间的电流尖峰限制在4A以内这样既满足了正常运行的需求又能在短路时把电流限制在安全范围。限流电阻的计算公式以TPS25948系列为例通用形式是I_LIM K / R_ILIMK值需要以具体型号的数据手册为准。我用的这颗料K值约900不同型号会有差异设计时务必查手册确认。按照6A来算R_ILIM K / I_LIM 900 / 6 150Ω所以R_ILIM取150Ω。这里有个经验供参考限流点至少要留出系统最大峰值电流的30%以上余量。如果不是这样继电器吸合、电机堵转这类双倍额定电流的工况就会频繁引发误保护现场维护的人会以为设备坏了实际只是保护阈值压得太紧。2.3 压摆率设置大电容负载的必修课压摆率也就是dV/dt控制的是eFuse开启后输出电压从0爬到目标值的速度。这个参数直接决定了负载电容的充电电流大小。如果输出端有2200μF的电容而压摆率设置得太陡充电电流I C * dV/dt瞬间就会飙到限流值然后触发保护输出永远起不来。我的负载端有多个2200μF电容并联总共约6600μF。目标是把输出电压在15ms内从0V抬到24V这样要求的压摆率是dV/dt 24V / 15ms 1.6V/ms如果使用数据手册给出的充电电流参数I_dVdt典型值可能在微安级那么dVdt引脚电容C I_dVdt / (dV/dt)。以2μA的充电电流估算C_dVdt 2μA / (1600V/s) ≈ 1.25nF取标准值1.2nF或1nF都行。实际调试时我用了1nF测得的启动时间约12ms符合预期。这里有一个重要提醒如果负载电容更大不要一味加大dVdt电容因为启动时间太长也会影响系统上电时序。更合理的做法是分级启动比如先让MCU小电流工作再逐步打开后级大功率负载。2.4 过压保护与欠压锁定的阈值配置输入电压异常是工业现场最常见的故障源之一。焊接不良、接线错误、电网波动都可能导致电压冲破正常值。我这里的输入额定24VOVP阈值设到30V欠压锁定阈值设到18V。OVP和EN/UVLO都是通过电阻分压来设定阈值的。设计思路是选定一个分压电阻值根据目标阈值算出另一个。以OVP为例V_OVP V_REF_OVP * (R_TOP R_BOTTOM) / R_BOTTOM其中V_REF_OVP是芯片内部比较器的参考电压具体数值查手册。先用一个经验值举例若参考电压为1.2V选择R_BOTTOM 10kΩ则R_TOP (V_OVP / V_REF - 1) * R_BOTTOM (30 / 1.2 - 1) * 10k 240kΩ。实际项目里我会选两个电阻串联来逼近目标值同时保证电阻耐压和精度。分压网络的电流也要注意。取太小的电阻会白白消耗功率取太大又会因为MCU引脚或芯片内部的偏置电流引入误差。一般让分压电流保持在100μA量级比较合理既不影响效率又能保证精度稳定。2.5 输出侧的电源正常信号如何参与上电时序PG信号在实际使用中很容易被忽略但它在完整的上电时序里非常有用。eFuse的输出电压稳定到标称值的90%以上后PG才拉高。我把这个信号接到STM32F302VC的PB7软件侧的做法是只有检测到PG为高才去初始化后级外设和启动业务逻辑。这样做的意义在于MCU不会再出现“供电还没稳就误操作外设”的情况。特别是带CAN总线的系统如果供电没稳就开始发报文总线容易出现错误帧甚至影响整个网络中其他节点。PG信号让MCU的动作永远和电源状态同步这个细节虽然小但对工业现场的通信可靠性帮助很大。3. STM32F302VC侧的控制软件实现3.1 初始化阶段先把引脚接管干净硬件上电之后eFuse的EN引脚要先保持低电平等STM32初始化完成后再拉高。我在原理图上用了一个下拉电阻确保MCU还没配置GPIO期间eFuse不会自己打开。这样做的原因很直接如果上电瞬间就打开输出相当于负载电容的充电过程不受控制此时的浪涌电流保护就要完全依赖dV/dt设置不如等MCU接管之后按既定时序来。STM32F302VC侧我用的是HAL库加底层寄存器混用的方式。GPIO初始化代码如下重点在于把FLT引脚配置为外部中断下降沿触发并且使能内部上拉因为FLT是开漏输出static void PowerProtect_GPIO_Init(void) { __HAL_RCC_GPIOB_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct {0}; // EN: PB5, 推挽输出, 初始拉低 GPIO_InitStruct.Pin GPIO_PIN_5; GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull GPIO_PULLDOWN; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOB, GPIO_InitStruct); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET); // FLT: PB6, 外部中断下降沿, 上拉输入 GPIO_InitStruct.Pin GPIO_PIN_6; GPIO_InitStruct.Mode GPIO_MODE_IT_FALLING; GPIO_InitStruct.Pull GPIO_PULLUP; HAL_GPIO_Init(GPIOB, GPIO_InitStruct); // PG: PB7, 普通输入, 上拉 GPIO_InitStruct.Pin GPIO_PIN_7; GPIO_InitStruct.Mode GPIO_MODE_INPUT; GPIO_InitStruct.Pull GPIO_PULLUP; HAL_GPIO_Init(GPIOB, GPIO_InitStruct); HAL_NVIC_SetPriority(EXTI9_5_IRQn, 2, 0); HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); }初始化完成后软件先读一次PG引脚的电平如果PG本来就为高说明eFuse已经处于输出状态这时候再拉高EN并不会产生二次启动冲击。这里需要做一次状态对齐而不是盲目输出高电平。3.2 使能输出的软件时序从拉高EN到确认PG软件使能eFuse不只是把EN拉高这么简单。拉高EN之后芯片的dV/dt电路开始控制输出电压爬升这个过程要持续十几毫秒。如果我在EN拉高后立刻去查询PG大概率读到的是低电平然后错误判断为故障。正确的软件流程是拉高EN记录当前时间戳。轮询PG引脚等待它变为高电平。如果在超时时间内比如50ms没有等到PG视为启动失败拉低EN并报错。如果PG正常变高记录输出的实际电压值通过ADC采样确认在合理范围内。这个流程里的超时判断很关键。有些eFuse在负载短路时启动过程中就会触发限流保护PG永远不会拉高。如果没有超时机制MCU就会卡在等待PG的循环里整个系统挂死。设置超时并配合FLT中断就能把这个状态识别为“启动失败”而不是无限等待。3.3 故障中断处理中断里只做标记别做业务FLT引脚下降沿触发中断意味着eFuse检测到了故障并执行了关断。这里我坚持一个原则中断服务函数里只做三件事——清除中断标志、记录故障标志、在条件允许的情况下尽快返回。所有恢复策略都在主循环里处理。这样设计的原因很朴素中断里做复杂操作容易产生资源竞争和优先级反转。比如在中断里调用HAL_GPIO_WritePin拉高EN去尝试恢复可能会和主循环里的同一操作冲突还会拖慢其他中断的响应。但故障信号本身是毫秒甚至微秒级的事件及时记录标志就够了。volatile uint8_t g_power_fault_flag 0; void EXTI9_5_IRQHandler(void) { if (HAL_GPIO_EXTI_GetFlag(GPIO_PIN_6) ! RESET) { HAL_GPIO_EXTI_ClearFlag(GPIO_PIN_6); g_power_fault_flag 1; } }主循环里检测到故障标志后先读取FLT引脚电平来确认故障是否已经消失——因为FLT在故障恢复后可能自动解除如果单纯靠中断标志判断可能出现“故障已经消失但仍然执行恢复逻辑”的情况。读引脚确认之后再按状态机的策略处理。3.4 基于状态机的恢复策略自动恢复还是闩锁TPS259483这类eFuse通常有闩锁模式和自动重试模式。闩锁模式下故障发生后输出保持关断直到EN重新触发或者输入重新上电自动重试模式下芯片会周期性尝试恢复。选择哪种模式取决于系统的容错策略。我的做法是硬件上使用闩锁模式然后由STM32软件来决定什么时候恢复。这样做的优势在于恢复的时间和次数完全可控不会出现芯片自动重试导致系统反复重启的现象。软件状态机如下状态进入条件行为IDLE系统初始化完成等待命令或等待使能POWER_ON收到使能请求拉高EN等待PGRUNPG为高正常运行监测电压电流FAULTFLT触发中断拉低EN记录故障次数等待恢复决策RECOVERY到达恢复时间拉高EN观察PG是否恢复LATCH多次恢复失败不再自动恢复上报故障等待人工介入这里要特地说明恢复次数的设计每次故障后拉低EN延时10ms再重新使能。如果连续5次都无法成功启动就转入LATCH状态不再自动尝试。这个策略避免了一种典型问题——输出端如果一直处在短路状态芯片每一次尝试恢复都会经历一次大电流冲击反复冲击对器件寿命影响很大。3.5 通过比较器实现微秒级过流报警前面提到STM32F302VC内置比较器这里具体说说怎么用。eFuse的电流采样输出并不是直接给出电流数值而是对应一个表征电流的模拟信号。如果直接用ADC去轮询最快也只能做到几十微秒甚至百微秒级别对飞速发展的短路电流来说太慢。我的思路是把eFuse的电流采样值接到F302VC的一个比较器输入通过内部DAC设置一个比较阈值。当过流发生时比较器输出会在几微秒内翻转触发外部或内部中断MCU立刻做记录甚至紧急处理。这套机制充当了第二层保护——eFuse自身的硬件保护先动作同时MCU通过比较器在极短时间内感知到异常并开始做记录为后续的故障分析和恢复决策提供数据支撑。3.6 ADC回读电压电流的关键细节为了做状态监测和故障记录我用STM32F302VC的ADC分别采样输入电压、输出电压和电流采样信号。ADC部分的三个细节直接影响数据质量。第一是偏置电压。STM32F302VC的ADC输入范围是0到VREF而24V电压需要经过电阻分压才能接入。分压电阻的比例要和软件里的换算系数严格对应我习惯在代码里把分压比例定义成宏并在板卡出厂时用万用表实测校准一次。第二是滤波。电源信号上难免有噪声ADC单次采样容易被尖峰带偏。我采用DMA模式连续采集每次取32个样本做平均值滤波这样既减轻CPU负担又能获得稳定读数。采样速度不要求太高1kHz就足够。第三是换算公式。以输出电压为例若分压比例是11:1ADC参考电压3.3V12位分辨率V_out ADC_value / 4095 * 3.3V * 11这个过程看似简单但如果在代码里把系数写错或者分压电阻温度系数太差上位机看到的电压和实际值就会有明显偏差。我在调试时习惯用已知电压校准几个点再拟合修正效果很好。4. 排查实录几个典型故障与解决套路4.1 启动误触发大电容把限流点打穿第一次给这块板子通电时输出一直起不来。用示波器看VOUT电压爬升到一半就掉下去FLT引脚拉低eFuse进入保护状态。最开始我以为是限流点设小了把ILIM电阻换小让限流从6A加到8A结果依然保护。后来抓了输出电流波形才发现问题出在启动瞬间的浪涌电流峰值超过了8A——负载端并联的多个大电容在输出刚建立时形成了接近短路的充电通路。单纯调限流点治标不治本因为把限流点抬高之后短路时的通过能量也变大了。正确的解法是同时调整dV/dt电容。把dVdt引脚电容从470pF加到1nF之后输出电压爬坡时间从约6ms拉长到约12ms充电电流峰值降到了4A以内远低于6A的限流点启动过程稳定通过。这件事给我一个经验限流点和压摆率参数要放在一起调两者共同决定了启动过程的电流画像。4.2 热关断反复重启限流点余量不足另一块测试板上出现过更隐蔽的问题系统正常工作但运行一段时间后eFuse突然关断过几秒又自动恢复周而复始。一开始怀疑是负载侧有间歇性短路排查了几天找不到原因。后来注意到一个细节——芯片表面温度异常高。这个故障的根源是限流点设置得太接近正常工作电流正常工作电流2A我把限流设到了3A余量只有50%。当负载偶尔波动到2.8A附近时虽然没有触发过流保护但芯片已经工作在接近限流的区域功率MOS管的压降和发热显著增加。长时间工作后触发内部热关断冷却后又恢复形成周期性重启。解决方法是把限流点调高到6A同时保证负载瞬态峰值不会接近这个值。限流的本质是限制“最大故障电流”而不是让设备长期工作在高损耗状态。这里要把握好一个平衡限流点太高会削弱保护能力太低又会造成热问题。我在实践中一般取系统稳态电流的2到3倍并实测验证芯片温升在可接受范围内。4.3 FLT信号误触发来自供电系统的电压跌落还有一次外部测试反馈设备在启动大功率负载时偶尔报电源故障。我开始怀疑FLT误触发是因为干扰后来用示波器长时间抓FLT和VIN的关系发现真相藏在上游这台设备的供电来自一个功率有限的开关电源当后级大功率负载开启时输入电压瞬间跌落——跌到了UVLO阈值以下eFuse判定为欠压故障于是关断输出。这种情况其实不是eFuse误动作而是它忠实反映了输入电压的异常。但通常系统设计还是希望它能扛得住这种瞬态跌落。解决思路有两个一是把UVLO阈值调低一些让芯片在更低的输入电压下也能坚持工作二是在输入端增加大容量储能电容当上游电源电压跌落时由电容维持eFuse的输入电压。我最后采用了第二种方案在输入侧加了1000μF电容跌落幅度从5.8V降到1.2V不再触发欠压保护。4.4 先有鸡还是先有蛋MCU没电了谁去恢复电源这个架构在逻辑上有个经典悖论如果eFuse关断输出挂在输出侧的STM32F302VC也掉电了那软件层面的“故障恢复”逻辑就无从谈起。有一种硬件方案是给MCU供电增加一个小容量的后备电容在eFuse关断后维持MCU工作几百毫秒让MCU有时间把故障信息写入Flash。但这个方案只适用于毫秒级的掉电维持如果故障时间很长MCU还是会完全断电等输入侧恢复后重新启动。更彻底的做法是MCU供电不完全依赖eFuse的输出。比如MCU的电源树可以先经过一级前级DCDC而eFuse只保护需要保护的负载支路。这样即使eFuse保护动作MCU依然活着可以记录故障、尝试恢复、上报远程平台。如果像我的设计一样MCU就是从eFuse后面取电那就要接受一个事实eFuse是最后的安全兜底它关闭时系统必须能承受整体断电恢复策略依靠输入侧的重置或者看门狗电路。具体取舍取决于你的系统是否需要“带故障自诊断的在线恢复能力”在项目早期就要想清楚。4.5 故障排查小结我复盘这几个故障案例后发现eFuse调试中遇到的绝大多数问题都不是芯片本身的问题而是参数设置与系统工况不匹配。芯片就像一个勤奋的保安它会严格执行你设定的“安全规则”但规则本身定得不合理就会误伤正常工作。所以排查思路一定要系统化先抓波形看输入电压、输出电压、电流、FLT信号四路信号的时序关系再对照数据手册确认每个参数设置是否有余量最后才考虑是不是存在干扰或硬件缺陷。5. PCB布局与热设计落地要点5.1 功率路径的铺铜与散热TPS259483AYWPR在正常工作时内部功率MOS管会有一定的压降乘以负载电流就是芯片的功耗。负载2A、压降50mV时功耗只有0.1W不会有什么问题但如果出现长期过流工况芯片功耗会迅速上升散热设计不做好的话再好的保护芯片也会被热关断限制住性能。布局上首先要保证芯片底部的散热焊盘有足够的过孔阵列连接到地平面。我的经验是打9个左右的过孔孔径0.3mm间距0.8mm均匀分布在散热焊盘区域使热量能快速传导到内层地平面。同时保证PCB底层在芯片正下方有大片铜箔作为辅助散热面。功率路径的铺铜宽度也要按实际电流设计6A电流下表层1盎司铜箔至少要3mm以上的宽度过孔和端子接触处要补强。我见过一些板子器件选型没问题但输出走线只画了1mm宽长期跑3A电流走线先烧了这属于基础工作没做到位。5.2 输入输出电容的摆放原则输入电容和输出电容的位置比电容值本身更重要。电容的作用是给瞬态电流提供就近回路如果放得离芯片引脚太远寄生电感会让高频阻抗变高电容的效果大打折扣。原则很简单输入电容10μF陶瓷0.1μF高频去耦紧贴VIN引脚输出电容同样紧贴VOUT引脚电容接地端直接落在芯片的GND焊盘附近不要绕远路。如果有多个电容小容量的高频去耦电容要离芯片最近大容量储能电容可以稍微远一点。同时功率路径和信号路径在地平面上要共享同一个低阻抗参考面不要因为想把功率地和信号地分开而形成地弹。5.3 信号引脚布线与开尔文连接限流设置电阻和dVdt电容都接到了芯片的小信号引脚上这些引脚对外部干扰比较敏感。我的做法是ILIM电阻和dVdt电容尽量靠近芯片引脚放置走线短而直接不要在这些走线上并联多余负载。电阻连接到GND的一端单独用一个小过孔直接下到地层不要串到功率电流的回流路径中间。电流采样信号如果需要在外部做处理要做好开尔文连接。所谓开尔文连接就是让采样电压的走线单独从采样电阻两端引出不走电流路径本身。这样做的好处是可以避免功率电流在PCB铜箔上产生压降叠加进采样信号里。特别是当采样信号要送到STM32的ADC或比较器时走线应该尽量短并和功率走线保持距离防止耦合干扰。6. 这套方案在项目中留下的几点经验TPS259483AYWPR加STM32F302VC这套组合经过几个项目磨合下来我最大的体会是硬件保护和软件决策之间的边界划分特别重要。硬件上的快速关断永远不能等软件来执行eFuse把电流限制在设定点以下这是电路层面的事软件只负责感知异常、记录上下文、决定要不要重新打开电源。边界划清楚之后整个系统的可靠性就变得可预期了。在量产板卡上我最后又做了两个小改动。一是在eFuse的输出侧增加了一颗470μF的储能电容这样即使发生保护动作MCU也能在上电后继续工作一小段时间把当前运行参数和故障码写入Flash现场维护的时候直接读故障码就能定位问题。二是在EN引脚上做了一个RC延迟和MCU输出的“或”逻辑保证极端情况下即使MCU不工作eFuse也能按默认参数上电——处理方式就是用两个二极管加一个电阻组成最小逻辑成本很低但效果显著。如果你手头正好在做类似的电源保护设计我的建议是先把系统的电流画像摸清楚稳态电流是多少、峰值电流是多少、持续时间多长、负载电容有多大这些参数直接决定ILIM和dVdt的设置。参数算完之后在样机上实测验证一遍特别是启动过程和故障恢复过程抓波形确认和理论计算一致就可以放心交付了。
返回列表