关节电流检测和物联网终端的负载通断,传统做法要串一颗毫欧级分流电阻再加运放,占板、发热、还把负载与地"切开"。本文基于 IR3310 数据手册,讲清 6~28V 高边开关的 7mΩ 导通电阻、Iload/Ifb 约 8800 倍电流镜、用一颗 RIfb 同时定"回读刻度"与"关断阈值"的算法、过流/过温锁存与 WAIT 时序,附 STM32 采集代码及七步落地清单。
机器人关节的抱闸、工具负载、末端执行器,以及物联网终端里 4G 模组、加热片、电磁阀这些负载,都需要"通断控制 + 电流监视"两件事一起做。常规办法是在负载回路串一颗毫欧级分流电阻,再用运放放大,但那会带来三个麻烦:占用布板面积、电阻自身发热、以及负载不再直接接地。结论先给三条:第一,全保护高边开关(如 IR3310)自带与负载电流成比例的电流镜输出,Iload/Ifb 约为 8800 倍,用一颗电阻就能把电流"读"出来,同时这颗电阻还顺带确定了过流关断阈值;第二,RIfb 不是随便取的,取小了会以约 120A 的极端电流才关断甚至损伤器件,取大了或悬空会让开关一直关断、负载彻底没电;第三,电流镜的绝对精度有限(诊断偏移 ±1.3A、比例误差 −15%~+14%、温漂 ±5%),它适合做过流保护与"负载有无"判断,不适合做计量级测量。
"高边"指的是开关串在电源正极与负载之间,负载的另一端仍直接接地。相较之下,低边检测把分流电阻放在负载与地之间,最容易踩的坑是负载对地短路时电流不再流过采样电阻,保护形同虚设;同时采样点电位随负载电流浮动,运放共模范围与地弹都要额外处理。把检测搬到高边,负载"直接接地"这一电气习惯得以保留,短路电流也一定流过检测器件。
| 方案 | 低边分流电阻 + 运放 | 霍尔/磁通门电流传感器 | 高边开关自带电流镜(IR3310) |
|---|---|---|---|
| 负载是否直接接地 | 否,负载"浮地" | 是 | 是 |
| 能否检测负载对地短路 | 不能 | 能 | 能(器件自身限流关断) |
| 精度 | 高(配精密运放可达 1%) | 中(受磁路与温漂影响) | 中低(比例误差 ±14% 以内) |
| 插入损耗 | 分流电阻压降 + 运放功耗 | 磁芯损耗 | 仅 Rds(on) 导通损耗(约 5.5 mΩ 典型) |
| 是否隔离 | 否 | 是 | 否 |
| 额外器件 | 运放 + 基准 + 电阻电容 | 传感器 + 调理 | 仅一颗采样电阻 |
| 适合场景 | 计量、精密电流环 | 大电流、需隔离 | 负载通断 + 过流保护 + 粗略电流回读 |
IR3310(S) 是一款四端子全保护高边开关,输入以 VCC 为参考:当 VCC−VIN 高于高电平门限时输出管导通,低于低电平门限时关断。器件把功率 MOSFET 的电流按比例镜像后从 Ifb 引脚流出,因此"开关"与"电流检测"由同一颗器件完成(IR3310 数据手册 PD60181_D,已按 Q100 车规认证)。
| 参数 | 符号 / 条件 | 数值(最小~最大) | 工程含义 |
|---|---|---|---|
| 工作电压 | VCC(连续) | 6 ~ 28 V | 12V/24V 电池与工业电源通吃 |
| 导通电阻 | RDS(on),30A、VCC−VIN=14V | 4 / 5.5 / 7 mΩ | 30A 时约 4.95W 耗散,需按热阻折算法 |
| 导通电阻(高温) | RDS(on),30A、TJ=150℃ | 典型 10.5 mΩ | 结温升高后损耗近倍增,热设计要留裕量 |
| 电流比 | Iload/Ifb,70A、Rfb=500Ω | 7500 / 8800 / 10000 | 30A 对应约 3.4mA,70A 对应约 8mA |
| 比例温漂 | Ratio_TC,−40~150℃ | −5% / 0 / +5% | 全温区相对精度,小于绝对误差 |
| 诊断偏移 | offset,I=2A | −1.3 / 0 / +1.3 A | 小电流时相对误差极大,不宜用于精密测量 |
| Ifb 响应时间 | Trst(达到负载阶跃 90%) | 5 / 15 µs | 可跟上毫秒级负载变化 |
| 过流关断门限 | Vfb−VIN @Isd | 4 / 4.5 / 5.4 V | 由 RIfb 换算成电流阈值,见第三节 |
| 过温关断 | TJ | 典型 165 ℃ | 过流、过温均锁存关断,需复位 |
| 过压关断 | OV(非锁存) | 典型 36 V | 母线尖峰超限时暂时关断,恢复后自动导通 |
| 有源钳位 | VCC to VOUT | 30 / 35 V @10mA;典型 36 V @30A | 感性负载关断时钳位,替代外置续流 |
| 负载突降/雪崩 | Vaval | 40 / 43 / 50 V | 满足车规负载突降 40V 场景 |
| 反接保护 | Rev.RDS(on),−12V、15A | 4 / 6.2 / 10 mΩ | 电池反接时靠体二极管导通,仍可限流 |
| 静态电流 | Iq(关断) | 典型 22 µA / 最大 50 µA | 常电待机负载极低 |
| 输入门限 | Vih / Vil / Vhys | 5 / 4 / 1 V(典型) | 以 VCC 为参考,不能用普通 3.3V GPIO 直驱 |
| 最大频率 | Fmax / 保护激活 | 500 Hz / 200 Hz | 属于"通断控制"器件,不适合高频 PWM 调速 |
| 热阻 | RthJA(TO220 / D2PAK) | 60 / 60(1 平方英寸铺铜 35)℃/W | 连续电流能力几乎由散热决定 |
| 封装 / 温度 | TO220 5 脚 / D2PAK | −40 ~ 150 ℃ | D2PAK 大面积铺铜可显著改善散热 |
这是本文最值得记住的一节。电流镜把负载电流缩小约 8800 倍后从 Ifb 流出,经外部电阻 RIfb 变成电压。于是同一个 RIfb 决定了两个量:
回读刻度:Ifb = Iload / 8800,采样电压 Vfb = RIfb × Iload / 8800。例:RIfb = 1 kΩ、负载 20A 时 Ifb ≈ 2.27mA,采样电压约 2.27 V,MCU 的 ADC 直接读这一路即可换算出负载电流。
关断阈值:器件判定 Vfb−VIN 超过 4.5V(4~5.4V)即触发过流关断,反解得 Isd ≈ 4.5V × 8800 / RIfb ≈ 39.6 A·kΩ / RIfb。RIfb = 1 kΩ 时约 40A,与手册"RIfb = 1 kΩ 时典型关断 40A(30~50A)"完全吻合,也从侧面印证了该换算关系。
| RIfb | 典型过流关断点 Isd | 20A 负载时采样电压 | 适用负载 |
|---|---|---|---|
| 0.5 kΩ | 约 79 A | 约 1.14 V | 大电流负载,仅做过流兜底 |
| 1 kΩ | 约 40 A(手册典型值) | 约 2.27 V | 中小功率执行器、电机抱闸 |
| 2 kΩ | 约 20 A | 约 4.55 V | 接近门限,需留足裕量 |
| 3.5 kΩ | 约 11 A | 约 7.95 V | 小电流负载(如 4G 模组、指示灯带) |
| ≤ 0.5 kΩ 或短地 | 手册明确:可能以约 120A 的固定过流点关断并损伤器件,禁止使用 | ||
| > 5 kΩ 或悬空 | 手册明确:器件会一直处于关断状态,负载无电流 | ||
设计上有三条硬约束:一是 RIfb 必须落在手册推荐的 0.5~3.5 kΩ 区间(绝对最小 0.3 kΩ),这也是"10~100A 可编程关断"的来源;二是采样电压不要贴着 4.5V 门限工作,最好让"正常最大负载"对应的采样电压不超过门限的三分之一,留足启动浪涌与温漂裕量;三是精确测量只在功率管完全导通后成立,手册给出的典型值是开通后约 40 µs 才进入精确测量区,因此在 PWM 通断方式下必须避开开通瞬间采样。
IR3310 的过流与过温都会锁存关断,不会自动恢复——这一点与很多自恢复保护器件不同。复位方法非常容易被忽略:输入是以 VCC 为参考的,导通条件是 VCC−VIN 高于高门限,所以"复位"指的是先把输入拉回高电平(即关断态)再重新给导通电平,而不是简单地给一个低电平脉冲。
另一个容易漏掉的是 WAIT 计时(典型 1.2 ms)与最小脉冲(典型 500 µs):器件在保护动作后需要一段等待时间才允许重新判断,若 MCU 用几十微秒的高频通断去驱动,保护逻辑根本来不及建立。这也解释了为什么手册把最大工作频率标到 500 Hz、保护激活时进一步降到 200 Hz——它是"负载开关",不是"PWM 调速器"。
| 时序项 | 数值(最小~最大) | 设计含义 |
|---|---|---|
| 开通延迟 Tdon | 1 / 8 / 30 µs | 控制指令到输出建立,需等待后再采样 |
| 上升时间 Tr2 | 10 / 30 / 100 µs | 到 VCC−VOUT 降至 10% 的时间 |
| 关断延迟 Tdoff | 10 / 30 / 100 µs | 断开负载的速度 |
| 开通/关断能量 | Eon 3 mJ / Eoff 2 mJ(典型) | 反复通断时发热要计入 |
| 保护复位时间 Treset | 50 / 300 µs | 锁存解除所需的输入电平保持时间 |
| WAIT 计时 | 0.5 / 1.2 / 3.5 ms | 保护后的判断等待窗 |
| 最小脉冲 | 200 / 500 / 1200 µs | 低于该宽度的指令无法形成稳定导通 |
RDS(on) 只有 5.5 mΩ 典型,看起来很小,但电流平方会把它放大:30A 时耗散约 4.95W,而结温升高到 150℃ 后导通电阻典型值升至 10.5 mΩ,损耗还会继续增长。手册给出的连续电流能力因此几乎完全由散热决定:环境热阻 60 ℃/W(自由空气、标准封装)时,85℃ 环境下连续输出仅 6.5A;热阻压到 5 ℃/W 时,可连续输出 23A。中间的差距正是"要不要铺铜、要不要加散热片"的答案——D2PAK 封装在 1 平方英寸铺铜下热阻从 60 ℃/W 降到 35 ℃/W,是性价比最高的一步。
如果负载是感性(电磁阀、抱闸、继电器线圈),还要用上器件内置的有源钳位:关断瞬间 VCC 到 VOUT 被钳在约 35~40V,无需外置续流二极管即可吸收电感能量;反接时体二极管导通、反接电阻约 6.2 mΩ,负载仍受电流限制保护。
对单片机来说,这个器件只占一个 GPIO(开关)加一条 ADC 通道(回读)。但要注意三件事:用三极管或 MOSFET 做电平转换后再驱动 IN 引脚(VCC 参考门限不能直接吃 3.3V),ADC 采样要避开开通瞬间的 30~100 µs,以及过流锁存后必须走"关断—等待—复位"流程。
/* IR3310 负载开关 + 电流回读 + 过流锁存复位(STM32 HAL 示例) */
#include "main.h"
#define R_IFB_OHM 1000.0f /* RIfb = 1kΩ,对应典型关断 40A */
#define CURRENT_RATIO 8800.0f /* Iload / Ifb,手册典型值 */
#define VREF_MV 3300.0f /* ADC 参考电压 mV */
#define ADC_FULL 4095.0f /* 12 位 ADC 满量程 */
#define ISD_NOMINAL_A 39.6f /* 4.5V * 8800 / RIfb(kΩ) */
typedef enum {
LSW_OFF = 0,
LSW_ON_RAMP, /* 开通后等待精确测量窗口 */
LSW_ON,
LSW_TRIPPED, /* 过流/过温锁存 */
LSW_RESET_WAIT /* 复位等待 */
} lsw_state_t;
static lsw_state_t st = LSW_OFF;
static uint32_t t_ms = 0;
/* 把 Ifb 采样电压换算成负载电流(A) */
float Load_Current_From_Adc(uint16_t adc)
{
float v_ifb = (adc / ADC_FULL) * VREF_MV / 1000.0f; /* 单位 V */
float i_fb = v_ifb / R_IFB_OHM; /* 镜像电流 A */
return i_fb * CURRENT_RATIO; /* 负载电流 A */
}
/* 状态机:1ms 周期调用 */
void LSW_Tick(void)
{
t_ms++;
switch (st) {
case LSW_OFF:
break;
case LSW_ON_RAMP:
/* 开通后约 100µs 才进入精确测量区,这里保守等 1ms */
if (t_ms >= 1) { t_ms = 0; st = LSW_ON; }
break;
case LSW_ON: {
uint16_t adc = 0;
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 2);
adc = (uint16_t)HAL_ADC_GetValue(&hadc1);
float i = Load_Current_From_Adc(adc);
if (i > ISD_NOMINAL_A * 0.85f) { /* 到阈值 85% 就预警 */
Overtemp_Or_Overcurrent_Flag_Set();
}
if (HAL_GPIO_ReadPin(FAULT_GPIO_Port, FAULT_Pin) == GPIO_PIN_SET) {
st = LSW_TRIPPED; /* 器件已锁存关断 */
t_ms = 0;
}
break;
}
case LSW_TRIPPED:
LSW_Set_Input(0); /* 拉回关断电平,解除锁存 */
t_ms = 0;
st = LSW_RESET_WAIT;
break;
case LSW_RESET_WAIT:
if (t_ms >= 5) { /* 大于 Treset 300µs,取 5ms 余量 */
LSW_Set_Input(1);
t_ms = 0;
st = LSW_ON_RAMP;
}
break;
}
}
/* IN 引脚以 VCC 为参考:VCC - Vin > Vih 才导通,需外部电平转换 */
void LSW_Set_Input(uint8_t on)
{
HAL_GPIO_WritePin(LSW_DRV_GPIO_Port, LSW_DRV_Pin,
on ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
这段代码体现了两条工程习惯:一是预警阈值设在标称关断点的 85%,让系统在器件锁存关断之前先降载或告警,避免"直接断电"这种硬故障;二是复位流程严格"先关断、等 5ms 余量、再重新导通",因为时序表里的 Treset 最大 300 µs、WAIT 最大 3.5 ms,凭经验取一个偏保守的值比贴着极限更省调试时间。
| 步骤 | 内容 | 验收判据 |
|---|---|---|
| 1 定负载与电源 | 确认负载电压在 6~28V 内、最大电流与浪涌电流 | 峰值电流不超器件与封装连续能力 |
| 2 算关断阈值 | 由 Isd ≈ 39.6 A·kΩ / RIfb 反算 RIfb | RIfb 落在 0.5~3.5 kΩ 内 |
| 3 定回读量程 | 按最大负载算采样电压,控制在关断门限的 1/3 以内 | 正常工况不触发保护 |
| 4 做电平转换 | IN 引脚以 VCC 为参考,用三极管/MOSFET 转换 | 3.3V 系统可可靠开关 |
| 5 做热设计 | 按实际 RthJA 折算连续电流,必要时铺铜或加散热片 | 满载结温不超 125℃ |
| 6 写固件 | ADC 回读换算 + 85% 预警 + 过流锁存复位状态机 | 过流后可自恢复,不误报 |
| 7 验极限 | 短路、感性负载关断尖峰、反接、高低温循环 | 保护动作正确、器件不损伤 |
机器人关节与物联网终端的负载电流,可以用 IR3310 这类全保护高边开关"顺手"测出来:器件把负载电流按约 8800 倍缩小后从 Ifb 输出,一颗 RIfb 同时定了回读刻度和过流关断点(Isd ≈ 39.6 A·kΩ / RIfb,RIfb 取 1 kΩ 时约 40A),省掉分流电阻与运放,负载还能保持直接接地。但它不是精密测量器件——诊断偏移 ±1.3A、比例误差 −15%~+14%、精确测量需等开通后约 40 µs,因此定位应是"通断控制 + 过流保护 + 粗略电流回读";连续电流能力则由散热决定,60 ℃/W 下 85℃ 环境只有 6.5A,铺铜或加散热片把热阻压到 5 ℃/W 才能做到 23A。
本文基于《IR3310(S) Fully Protected 4 Terminal High Side Switch with Programmable Current Sensing 数据手册》(International Rectifier,Data Sheet No. PD60181_D,2003-10-20,已按 Q100 车规认证)等技术资料整理优化,并结合机器人关节与物联网终端的负载电流检测实践进行了系统化梳理。
沧州艾诺威电子 — 国家高新技术企业,20+项国家专利
嵌入式系统开发 · 物联网方案 · AI智能硬件 · 一站式交付
电话:13930711029 | 邮箱:tech@czinv.com | 24小时内响应