任务介绍
本次任务要求设计一款基于 I2C 协议的电流/功率监测模块。根据任务要求,本项目选用了 TI 的 INA228(20位 ADC)芯片,实现了标准的 I2C 通信接口引出,并在此基础上完善了外围电路设计,完美满足 0~26V 总线电压输入、板载 0.1Ω/1W 精密分流电阻、提供输入输出接线端子等各项硬性指标,是一款非常适合配合单片机进行电源效率分析与电池电量监测实验的开发模块。
方案介绍
本设计方案的核心是一颗来自德州仪器(Texas Instruments)的 INA228AIDGST 电流/功率监测芯片。为了保证测量精度与使用的便利性,方案包含以下几个核心模块:
- 主控测量区:INA228 芯片主体,提供 20 位 ADC 精度的电压、电流、功率及能量/电荷累积测量能力。
- 分流采样区:板载一颗 0.1Ω/1W 精密贴片电阻(2512 封装,1% 精度),采用开尔文四端接法,感测线单独引至 IN+ 和 IN− 引脚。
- 电源滤波区:在靠近芯片 VS 引脚处放置了 0.1μF 的高频去耦电容与 10μF 的稳压电容。
- 地址配置区:通过 ADDR 引脚与板载焊接跳点,可将模块 I2C 地址灵活配置为 0x40~0x4F 共 16 个地址之一。
- 外部接口区:采用标准 3.81mm 间距螺丝接线端子,分别提供输入端(IN+/GND)和输出端(OUT+/GND),以及 2.54mm 间距排针引出 VCC、GND、SCL、SDA、ADDR 接口。
资源框图
BOM表
序号 | 器件 | 封装 |
1 | INA228AIDGST | VSSOP-10 |
2 | 分流电阻 0.1Ω/1W 1% | 2512 |
3 | 0欧电阻 | 0603 |
4 | 0.1μF 电容 | 0402 |
5 | 10μF 电容 | 0805 |
6 | 螺丝接线端子 2P | 3.81mm 间距 |
7 | 排针 | 2.54mm 间距 |
模块介绍
本次选用的 INA228AIDGST 是一款宽电压(2.7V~5.5V)、超高精度的数字电流/功率监测芯片,内置 20 位 Δ-Σ ADC,具备独立的功率寄存器以及片内能量与电荷累积器。在本项目中,模块由外部单片机通过排针提供 3.3V 的工作电源,被测电路通过螺丝端子串入分流电阻回路。
为了满足"I2C 数字接口输出"的通信需求,模块引出了标准的 2 根通信线:SCL 和 SDA,兼容 Standard Mode(100kHz)、Fast Mode(400kHz)和 Fast-mode Plus(高达 2.94MHz)。同时,为了防止在多模块共用总线时发生地址冲突,板卡设计了灵活的 ADDR 硬件配置引脚,可通过接不同电位来切换 I2C 地址。
本次用到的物料在 DigiKey 官网的链接如下:
原理图和PCB模块介绍
原理图

在原理图设计中,除了常规的电源与 I2C 信号连线外,最核心的设计在于分流电阻的开尔文接法与 ADDR 地址配置网络的处理:
- 去耦电容设计:严格按照设计规范,在 VS 与 GND 之间并联了 C1(0.1μF)用于滤除高频噪声,C2(10μF)用于稳定电源波动,两颗电容均尽量靠近芯片 VS 引脚放置。
- 开尔文四端接法:分流电阻 R_SHUNT 的电流通道(IN+Power / IN−Power)与感测通道(IN+Sense / IN−Sense)完全独立走线,分别引至芯片的 IN+ 和 IN− 差分输入端,有效消除铜箔走线电阻引入的系统误差。
- 灵活的地址配置:ADDR 引脚通过网络标签连接至板载跳点焊盘,使用者可根据需要将其接至 GND、VS、SDA 或 SCL,对应配置不同的 I2C 从机地址,方便多模块共用同一总线。
PCB

2D效果图

PCB 设计采用了双层板工艺,具有以下特点:
- 紧凑型设计:整板布局紧凑,INA228 芯片与分流电阻、去耦电容集中在中央区域,螺丝端子分布于两侧,走线简洁清晰。
- 规范的接口:左侧统一采用螺丝接线端子用于大电流回路接入,右侧采用 2.54mm 间距排针引出信号与电源,丝印清晰标注每一个端子和引脚的名称,防呆防错。
- 信号完整性:底层拥有大面积完整的 GND 铺铜,为差分采样信号提供良好的参考平面;分流电阻感测走线严格等长并行,最大限度降低寄生阻抗对测量精度的影响。
模块主要性能指标和管脚定义
主要性能指标
参数类型 | 规格描述 |
模块类型 | 高精度电流/功率监测模块 |
核心芯片 | TI INA228AIDGST |
ADC 分辨率 | 20 bit(分流电压/总线电压) |
总线电压范围 | 0V ~ 26V(IN+ 对 GND) |
分流电阻 | 0.1Ω / 1W,1% 精度,2512 封装 |
额定电流(连续) | ≤ 3A(建议),峰值 ≤ 5A(需散热) |
通信接口 | I2C(Standard / Fast / Fast-mode Plus) |
供电电压 | 2.7V ~ 5.5V(典型值 3.3V) |
I2C 地址范围 | 0x40 ~ 0x4F(共 16 个,ADDR 引脚配置) |
板载去耦 | 0.1μF + 10μF |
接口类型 | 螺丝端子(3.81mm)+ 排针(2.54mm) |
工作温度 | −40℃ ~ +125℃ |
管脚定义(H1 排针)
物理管脚号 | 管脚名称 | 管脚属性 | 描述说明 |
1 | GND | 电源 | 模块共地引脚 |
2 | VCC | 电源 | 2.7V~5.5V 电源输入端 |
3 | SCL | I/O | I2C 串行时钟输入 |
4 | SDA | I/O | I2C 串行数据双向端 |
5 | ADDR | I/O | I2C 地址配置引脚(接不同电位切换地址) |
6 | ALERT | 输出 | 超限报警输出,开漏,低电平有效 |
接线端子定义(J_IN / J_OUT)
端子标号 | 引脚名称 | 描述说明 |
J_IN - 1 | IN+ | 被测电路电源侧正极接入 |
J_IN - 2 | GND | 被测电路负极(共地) |
J_OUT - 1 | OUT+ | 被测电路负载侧正极输出 |
J_OUT - 2 | GND | 被测电路负极(共地) |
板上设置及标识(配置指南)
由于本模块设计为灵活的验证板,板载了 ADDR 配置焊点供用户选择 I2C 地址。为了满足本次单模块默认使用的任务要求,在实际焊接贴片时,建议按照以下表格进行默认配置:
ADDR 接法 | I2C 地址 | 默认状态 | 描述说明 |
接 GND | 0x40 | 默认推荐 | 单模块使用时的标准地址 |
接 VS(VCC) | 0x41 | 可选 | 与第二块模块区分时使用 |
接 SDA | 0x42 | 可选 | 多模块共线时扩展地址 |
接 SCL | 0x43 | 可选 | 多模块共线时扩展地址 |
其余组合 | 0x44~0x4F | 可选 | 参考 INA228 数据手册 Table 2 |
心得体会
在本次 INA228 电流/功率监测模块的设计过程中,我受益匪浅。
首先,我学习了如何根据实际任务需求对参考电路进行二次重构与优化。在研究分流采样电路时,我深刻体会到开尔文四端接法的必要性——若感测线与大电流走线共用,哪怕仅有 1mΩ 的额外寄生阻抗,在 5A 电流下也会引入约 5mV 的误差,在 20 位 ADC 面前将被完全暴露出来。这让我对"精密模拟电路对 PCB 布局极度敏感"有了切身体验。
其次,通过深入研读 INA228 的数据手册,我系统掌握了 SHUNT_CAL 校准寄存器的计算原理,以及 ADC 平均次数对测量噪声与响应速度之间的权衡关系。原设计中通过 ADDR 引脚实现 16 地址灵活配置的方案也非常精妙,为后续多路功率监测系统的扩展保留了充裕的空间。这些经验为我今后设计精度更高、兼容性更强的硬件电路提供了非常宝贵的思路。