VN920高边驱动负载诊断五步法:一张表分清开路、短路与过温

液压电磁阀"没反应",线圈是通的、线束也没断,换块板还是不动作——最后发现是驱动芯片热关断后自己恢复了。结论先给:负载不动作不等于负载坏了,比例电流检测能把开路、对地短路、过温关断与母线异常分开,前提是按 K 值反算检测电阻,再用真值表组合判断。本文依据 ST VN920 数据手册整理,附五步核算与 STM32 判定代码。

2026-10-23
高边驱动VN920电流检测负载诊断ISO7637嵌入式

一台 24V 工程机械的液压电磁阀,操作手报"没反应"。到了现场,万用表量线圈是通的,线束也没断,换一块新驱动板还是不动作——最后查出来,上一个故障把驱动芯片送进了热关断,等温度降下来它又自己恢复了。结论先给:负载不动作不等于负载坏了,高边驱动芯片自身就能把开路、对地短路、过温关断和母线异常区分开,前提是你会读它的比例电流检测输出。本文按 ST VN920 / VN920-B5 / VN920SO 数据手册(Rev.2)整理,讲清 K 值怎么反算检测电阻、真值表怎么组合判故障,以及 24V 系统里绕不开的 ISO 7637 与反向电池问题。

一、先认清这颗器件的边界

VN920 是 ST VIPower M0-3 工艺的单通道高边固态继电器,三种封装(PENTAWATT、P2PAK、SO-16L)电气参数一致。它的定位很明确:驱动任何"一端接地"的负载,所以电磁阀、继电器线圈、灯、加热丝都能挂。

项目手册数值测试条件
工作电压 VCC5.5~36V(典型 13V)欠压关断 3~5.5V,过压关断 36V
导通电阻 RON16mΩ / 32mΩ / 55mΩ10A、25℃ / 10A 全温域 / 3A、VCC=6V
连续输出电流 IOUT30A内部限流
直流短路限流 Ilim30~75A(典型 45A)VCC=13V
VCC 钳位电压41 / 48 / 55VICC=20mA,min/典型/max
关断温度 TTSD / 恢复 TR150~200℃ / 135℃热滞回 7~15℃
电流检测比 K13300~6000(典型 4400)IOUT=1A,VSENSE=0.5V
结到壳热阻 Rthj-case1.3℃/W三种封装相同

表里最容易被跳过的是一行小字:16mΩ 只是 25℃、10A 条件下的典型值,全温域最大 32mΩ,到了 3A 轻载、VCC=6V 会涨到 55mΩ。也就是说同一颗器件,轻载时的导通损耗占比反而更高——别拿典型值去算发热,也别用重载数据反推轻载温升。

二、第二步:用 K 值反算检测电阻

SENSE 引脚输出的是一股与负载电流成比例的小电流,手册用 K = IOUT / ISENSE 描述这个比例。关键是 K 不是常数:1A 时 K1 为 3300~6000,10A 时 K2 为 4200~6000,30A 时 K3 为 4200~5500,并且随温度还有 −10%~+10%(1A)与 ±8%(10A)的漂移。做诊断要用区间,不能用单点。

检测电阻的取值被两头夹住。手册给的最大检测输出电压是 4V(VCC>8V、IOUT=10A、RSENSE=10kΩ 条件下的限值),所以 RSENSE 不能往大里取。按最坏情况倒推:10A 时 K 取最小值 4200,ISENSE 约 2.38mA,要求 VSENSE 不超过 4V,则 RSENSE ≤ 4V / 2.38mA ≈ 1.68kΩ。取 1kΩ 时 10A 对应约 2.4V,既有余量,也能被 3.3V 的 ADC 直接采。

负载电流按 K 下限算的 ISENSERSENSE=1kΩ 时 VSENSE结论
1A0.30mA(K1=3300)0.30V可用,分辨率偏低
5A1.19mA(K2=4200)1.19V可用
10A2.38mA(K2=4200)2.38V可用,余量充足
20A4.76mA(K3=4200)4.76V超 4V 限值,RSENSE 需降到 840Ω 以内

还有一处时序必须记住:从 INPUT 上升沿到检测输出达到 90%,tDSENSE 最大 500µs。上电后的头半毫秒不要做故障判定,否则正常的上电过程会被读成开路。

三、第三步:真值表组合判故障

手册的真值表把 INPUT、OUTPUT、SENSE 三个状态放在一起看。只盯 SENSE 会误判,因为对地短路、欠压、过压这三种情况,SENSE 都是 0。

状态INPUTOUTPUTSENSE现场含义
正常HH与电流成比例负载工作
过温HL5.5V(VSENSEH)已热关断,芯片很烫
欠压HL0VCC 低于欠压门限
过压HL0VCC 到过压关断点
对地短路HL0(Tj<TTSD)/ 5.5V(Tj>TTSD)先限流、后热关断
对 VCC 短路HH低于正常比例值不报错,只是读数偏低

用法是"先分组、再细分":OUTPUT 为低、SENSE 为 0 的这一组里塞着短路、欠压、过压三种,此时去量 VCC 就能分开——低于 5.5V 是欠压,接近或超过 36V 是过压,VCC 正常就是负载对地短路。SENSE 跳到 5.5V 是过温的标志(手册给出过温时检测电压 5.5V、输出阻抗 400Ω),这时输出必然是低。

最容易漏掉的是最后一行"对 VCC 短路":输出仍然是高,芯片不报错,只有比例值偏低。它属于"能用但迟早出事"的状态,必须靠 K 值区间比较才能抓出来,这也是比例检测相比单纯过流保护的价值所在。

四、第四步:限流与热循环,软件要兜住

VN920 的限流点在 30~75A,配合过温关断与自动重启构成保护链。自动重启是双刃剑:故障还在,芯片降到 135℃ 就重新打开,几毫秒后再关断,形成热振荡。手册在保护章节专门加了注,要求保护与诊断信号必须配合软件策略,限制异常状态持续的时间和触发次数。

所以固件里要有重试计数:短时间内连续 3~5 次进入过温或限流,就锁存故障、停止自动重试,等人来处理。热滞回只有 7~15℃(典型 15℃),意味着"凉一点就重启"这件事比想象中频繁得多。

顺带一个常被误判的现象:限流值本身是 30~75A 的宽带,同一批板子的短路电流能差一倍多。不要用"测到的短路电流是多少"去判断器件好坏,要看它有没有进入限流平台、退出限流后能否恢复正常输出——前者是保护在动作,后者才是器件真的伤了。

五、第五步:24V 系统绕不开的两个外部问题

第一是抛负载。手册的 ISO 7637/1 表里,脉冲 1、2、3a、3b、4 在四个严酷等级下结果都是 C 级(扰动后功能正常),但脉冲 5 只有等级 I 是 C 级,等级 II~IV 是 E 级——E 级的定义是不可恢复、必须换器件。原因不复杂:芯片上那个 41~55V 的钳位只吸收低能量尖峰,扛不住真正的抛负载能量。手册因此明确要求,抛负载峰值超过 VCC 直流最大额定值、或线上瞬态超过表内数值时,必须外加电压瞬态抑制器。

第二是反向电池。手册给了两种接法:地线串电阻,用 RGND ≤ 600mV/IS(on)max 和 RGND ≥ (−VCC)/(−IGND) 两头夹;地线串二极管,并在二极管两端并 1kΩ 电阻(驱动感性负载时必须并)。串电阻的代价是地电位抬升,输入阈值和检测输出会整体偏移,多颗芯片共用同一个电阻时偏多少还随开启数量变化,能共用二极管方案就别共用电阻。

还有一处细节:用了地线保护网络后,VCC 上的负瞬态会把控制脚一起拉负,需要在 MCU 的 I/O 上串 Rprot 防闩锁。手册给的算式是 −VCCpeak/Ilatchup ≤ Rprot ≤ (VOHµC − VIH − VGND)/IIHmax,以 −100V、闩锁 20mA、VOH≥4.5V 为例落在 5kΩ~65kΩ,推荐 10kΩ。这颗电阻别省,省了就是让 IO 去扛负压。

六、STM32 侧的判定代码

代码把上面的判断顺序固化下来:先看 SENSE 是否被抬高(过温),再结合使能信号与输出回读,最后用额定电流的比例区间区分开路、对 VCC 短路与正常。

/* VN920 负载诊断:SENSE 走 ADC,OUT 由 GPIO 回读 */
#define K_MIN      4200      /* 10A 时 IOUT/ISENSE 的下限 */
#define RSENSE_OHM 1000
#define NOMINAL_A  2.0f      /* 本路负载额定电流 */
#define VREF       3.3f

typedef enum { OK, OPEN, SHORT_GND, SHORT_VCC, OVER_TEMP } load_st;

static float sense_amp(uint16_t adc)
{
    float v  = adc * VREF / 4095.0f;   /* SENSE 引脚电压 V */
    float is = v / RSENSE_OHM;         /* 检测电流 A */
    return is * K_MIN;                 /* 按最坏 K 估电流上限 */
}

load_st vn920_diag(uint16_t adc, int in_hi, int out_hi)
{
    float v = adc * VREF / 4095.0f;
    float i = sense_amp(adc);

    if (v > 4.5f) return OVER_TEMP;   /* SENSE 被抬到 5.5V */
    if (!in_hi)   return OK;          /* 关断态,不判定 */
    if (!out_hi)  return (v < 0.05f) ? SHORT_GND : OVER_TEMP;

    if (i < NOMINAL_A * 0.05f) return OPEN;
    if (i < NOMINAL_A * 0.70f) return SHORT_VCC;
    return OK;                        /* 比例落在区间内 */
}

注意 NOMINAL_A * 0.70f 这个阈值不是拍脑袋:K 本身就有 ±8%~±10% 的漂移,再叠上 ADC 与电阻误差,判定门限至少要留 20% 以上余量,否则正常负载会被报成"对 VCC 短路"。

一句话总结:高边驱动的负载诊断是五步——先认清 RON 与电流随工况的边界,再用 K 下限反算检测电阻,然后用 INPUT/OUTPUT/SENSE 真值表分组定位,接着靠软件限住热振荡的触发次数,最后补上外部瞬态抑制与地线保护;顺序里少一步,现场都只能靠换件试。

本文基于 ST VN920 / VN920-B5 / VN920SO 单通道高边固态继电器数据手册(Rev.2,2004 年 7 月)整理优化。

需要定制开发?

沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付

立即微信咨询

电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应