USB供电的宽量程高精度直流电流采集仪设计
1. 项目概述
AG32VF407直流电流采集仪是一款面向高精度、宽动态范围直流电流测量场景设计的嵌入式硬件系统。其核心目标是实现从1微安(1 μA)至10安培(10 A)、正负双向的连续可测电流范围,同时在各量程下保持亚微安级至数十毫安级的实测分辨力。该系统并非通用型万用表外围模块,而是针对实验室电源负载监测、电池充放电曲线分析、传感器偏置电流校准、低功耗IoT设备待机电流测绘等对采样精度、线性度与时间一致性要求严苛的应用而构建。
区别于传统分立式电流表或基于MCU内置ADC的简易方案,本项目采用“前端模拟调理 + 高速同步采样 + 可重构数字控制”的三级架构:第一级为多档位、零点可调的精密差分放大前端;第二级为16位、8通道、200 kSPS同步采样的AD7606模数转换器;第三级由AG32VF407VGT6主控统一调度——该器件集成了ARM Cortex-M3内核与2 K LUT规模的嵌入式FPGA资源,使模拟前端控制逻辑(如量程切换、基准管理)与数字采集流程可在片上协同优化,避免外置逻辑芯片引入的时序抖动与布线复杂度。
整个系统设计以“USB直连即用”为终端形态,强调在无外部稳压电源条件下,仅通过标准USB接口(5 V±5%、典型供电能力500 mA)即可完成全量程高精度测量。这一约束直接驱动了电源架构的特殊设计,并成为理解整机性能边界的关键切入点。
2. 系统架构与信号链设计
2.1 整体信号流
电流信号进入系统后,经历以下确定性路径:
被测电流 → 分流电阻(Shunt) → 差分电压信号 → 前端放大器(INA186A5 或 RS8554) → 量程切换开关 → AD7606输入通道 → 数字采样数据 → AG32VF407 MCU处理 → USB上传其中,分流电阻为四端开尔文连接结构,其阻值根据量程自动切换:1 Ω(10 A档)、10 Ω(1 A档)、1 kΩ(1 mA档)、10 kΩ(100 μA档)、100 kΩ(10 μA档)、1 MΩ(1 μA档)。所有分流电阻均选用低温漂金属膜电阻(TCR ≤ 25 ppm/°C),并严格匹配PCB走线热对称性,以抑制热电动势引入的零点漂移。
前端放大器输出经缓冲后送入AD7606,后者同时接收由内部基准电路提供的2.5 V参考电压。AD7606的并行数据总线直接挂接至AG32VF407的FSMC(Flexible Static Memory Controller)接口,实现高速DMA搬运,规避软件延时对采样时序的影响。
2.2 关键性能指标映射
| 量程 | 满量程电流 | 分流电阻 | 满量程压降 | 理论最小分辨电流 | 实测分辨力 | 主要误差源约束 |
|---|---|---|---|---|---|---|
| 1 μA档 | ±1 μA | 1 MΩ | ±1 V | 0.3 μA | <1 μA | 运放输入偏置电流、1/f噪声 |
| 10 μA档 | ±10 μA | 100 kΩ | ±1 V | 3 μA | <10 μA | 分流电阻温漂、PCB漏电 |
| 100 μA档 | ±100 μA | 10 kΩ | ±1 V | 30 μA | <100 μA | 运放输入失调电压、共模抑制比 |
| 400 μA档 | ±400 μA | 2.5 kΩ | ±1 V | 120 μA | <1 μA | 噪声带宽、量化误差 |
| 400 mA档 | ±400 mA | 2.5 Ω | ±1 V | 120 μA | <1 mA | 分流电阻功率系数、自热效应 |
| 10 A档 | ±10 A | 1 Ω | ±10 V | 3 mA | <20 mA | 大电流引线电感、接触电阻波动 |
注:表中“理论最小分辨电流”按AD7606 16位分辨率(65536级)、满量程1 V计算得出;“实测分辨力”为工程实测有效位数(ENOB)折算值,已计入前端噪声、电源纹波及PCB布局影响。
3. 电源系统设计:升压-降压双级稳压架构
USB接口供电的固有特性——标称5 V但实际波动范围常达4.75 V–5.25 V,且在数据传输突发期间存在数百毫伏的瞬态跌落——对精密模拟电路构成根本性挑战。运放的电源抑制比(PSRR)在高频段急剧下降,若直接以USB电压为运放供电,电源纹波将直接调制到输出信号中,导致1 μA量程下出现不可接受的基线抖动。因此,本项目摒弃了常见的LDO直降方案,采用“DC-DC升压 + 超低噪声LDO二次稳压”的级联架构。
3.1 升压级:TPS61088 同步升压转换器
- 输入:USB 4.75–5.25 V
- 输出:6.6 V(固定,通过FB分压电阻网络设定)
- 开关频率:1.2 MHz(避开音频敏感频段,减小EMI)
- 关键设计点:
- 采用0805封装、1 μH屏蔽功率电感(如SDCL1005C-1R0M),降低磁场辐射;
- 输入/输出电容均选用低ESR钽电容(100 μF/16 V)并联陶瓷电容(10 μF/10 V X7R),抑制宽频带纹波;
- PCB布局严格遵循“功率环路最小化”原则:升压IC、电感、输入/输出电容围成紧凑矩形,地平面完整铺铜且单点接入系统GND。
该级设计目的并非提升效率,而是建立一个电压平台稳定、纹波可控的中间母线。6.6 V的选择兼顾两点:一是为后级LDO提供足够压差(确保TPS7A4701在最大负载下仍工作于压差裕量区);二是避开常见DC-DC芯片的振荡敏感点(如5 V–6 V区间易受USB线缆阻抗影响)。
3.2 降压级:TPS7A4701RGWR 超低噪声LDO
- 输入:6.6 V
- 输出:5.000 V(精度±0.5%,负载调整率<0.01%/A)
- 输出噪声:4.7 μVRMS(10 Hz–100 kHz)
- PSRR:70 dB(1 kHz)、40 dB(100 kHz)
- 关键设计点:
- 采用专用低噪声旁路电容(CBYP = 10 nF C0G),连接至LDO的BYP引脚,强制内部基准噪声滤除;
- 输出电容选用10 μF聚合物铝电解电容(ESR ≈ 15 mΩ)+ 100 nF陶瓷电容,满足相位裕度要求;
- LDO地(GND)与模拟地(AGND)通过0 Ω电阻单点连接,物理隔离数字地(DGND)。
此LDO专为给INA186A5与RS8554运放供电而设,其超低输出噪声直接决定了1 μA量程下的本底噪声上限。实测表明,在1 μA档满量程输入下,输出信号峰峰值噪声<20 μV,对应电流噪声<20 nA,完全满足设计目标。
4. 前端模拟调理电路
4.1 双运放方案对比与选型依据
系统提供了两种前端放大器实现路径,均围绕“差分输入、单端输出、零点可调”这一核心需求展开:
| 方案 | 器件型号 | 配置方式 | 关键参数(典型值) | 适用量程 | 工程权衡点 |
|---|---|---|---|---|---|
| 方案A | INA186A5IDCKR | 电流检测专用放大器,内部增益=100 | 输入偏置电流=25 pA,CMRR=100 dB(DC) | 1 μA–100 μA | 极低IBN,免外部增益电阻,温漂小 |
| 方案B | RS8554 | 四运放,接成仪表放大器拓扑 | 输入失调电压=100 μV,GBW=10 MHz,SR=3.5 V/μs | 100 μA–10 A | 增益灵活可调,成本更低,需精密外置电阻 |
两种方案在实测中效果“几乎一样”,其本质在于:在本系统受限带宽(AD7606采样率200 kSPS,奈奎斯特频率100 kHz)与PCB寄生参数(典型输入引线电容≈2 pF)下,二者的小信号交流性能差异被掩盖。真正决定系统精度的瓶颈在于分流电阻匹配度、PCB漏电及电源噪声,而非运放本身的AC参数。
4.2 差分放大与零点偏置电路
以RS8554方案为例,其典型应用电路如下:
R1 R3 Vin+ ──┬───┬───┬───────┬───┬─── Vout │ │ │ │ │ [R2] [R4] │ [R5] │ │ │ │ │ │ Vin- ──┴───┴───┼───────┴───┴─── GND │ [R6] │ 2.5V (REF)- R1=R2=R3=R4=10 kΩ,构成标准三运放仪表放大器,理论增益G=1+2×R2/R1=3;
- R5=10 kΩ、R6=10 kΩ构成同相端偏置网络,将共模电压抬升至2.5 V;
- 输出表达式:Vout = G×(Vin+−Vin−) + 2.5 V;
- 当无电流流过分流电阻时,Vin+=Vin−,Vout=2.5 V;当满量程电流产生1 V差分信号时,Vout=2.5 V + 3 V = 5.5 V,经后级钳位二极管限幅至5 V。
该设计将零点精确锚定在AD7606输入范围中点(2.5 V),充分利用其16位量化空间,避免单极性设计中因零点偏移导致的有效位数损失。
5. 量程自动切换机制
宽范围测量的核心挑战在于量程切换的速度、精度与无扰性。传统继电器方案切换时间>10 ms,导致电流突变时读数跳变;模拟开关方案虽快,但导通电阻非线性会引入增益误差。本项目采用“高速比较器 + FPGA实时判决 + MOSFET电子开关”的混合方案。
5.1 切换触发逻辑
- 采样过程中,AG32VF407持续监控AD7606当前通道的实时采样值;
- 当连续N个采样点(N=8,对应40 μs)超出当前量程满量程的80%或低于20%时,触发量程切换请求;
- 请求信号送入片内FPGA逻辑单元,FPGA立即锁存当前采样值,并生成一组控制字。
5.2 切换执行机构
控制字驱动四组N沟道MOSFET(如DMN3025LSD)作为分流电阻选择开关:
| 控制字 | 导通MOSFET | 接入分流电阻 | 量程 |
|---|---|---|---|
| 0001 | Q1 | 1 MΩ | 1 μA |
| 0010 | Q2 | 100 kΩ | 10 μA |
| 0100 | Q3 | 10 kΩ | 100 μA |
| 1000 | Q4 | 2.5 kΩ | 400 μA |
| ... | ... | ... | ... |
MOSFET栅极驱动由FPGA的LVDS输出口经SN74LVC1G07反相器增强,确保上升/下降时间<5 ns。实测从判决到新量程稳定输出的时间为2.4 μs,远小于AD7606单次转换周期(5 μs),保证切换过程不丢失采样点。
5.3 无扰切换保障
为避免切换瞬间因分流电阻突变引起被测回路电流扰动,系统采取三项措施:
- 预充电设计:在切换前,FPGA先将目标量程的分流电阻一端通过10 kΩ电阻预接到被测回路,使其电压缓慢建立;
- 死区控制:新旧MOSFET驱动信号间插入20 ns硬件死区,杜绝直通;
- 电容支撑:在被测回路输出端并联10 μF陶瓷电容,为2.4 μs切换窗口提供电荷缓冲。
实验证明,该方案在10 A满载下切换量程时,被测电源输出电压波动<1 mV,负载端完全无感知。
6. AD7606同步采样与数据接口
AD7606作为本系统数据链的“心脏”,其配置直接决定最终精度:
- 工作模式:并行接口、BUSY中断驱动、软件启动转换(CONVST脉冲);
- 参考电压:内部2.5 V基准(REFIN/REFOUT引脚直连),温度系数5 ppm/°C;
- 滤波:在REFIN引脚并联10 μF钽电容+100 nF陶瓷电容,抑制基准噪声;
- 数字接口:AD7606的D0–D15、RD、WR、CS、BUSY、INTB全部硬连线至AG32VF407的FSMC_D0–D15、FSMC_NOE、FSMC_NWE、FSMC_NE1、FSMC_NWAIT、FSMC_NIOE;
- 时序控制:FSMC配置为“地址/数据复用关闭”,读写时序严格满足AD7606 tACC=100 ns、tDIS=25 ns要求。
软件层面,采用双缓冲DMA机制:
- Buffer A接收当前转换数据;
- Buffer B在后台由CPU进行量程判断与数值校准;
- BUSY下降沿触发DMA切换,无缝衔接下一帧。
校准算法包含三步:
- 零点校准:短接输入端,采集1024点求平均,存为Offset;
- 增益校准:注入精确1 V差分信号,采集1024点求平均,计算Gain = 1.0 / (Avg − Offset);
- 实时补偿:每帧数据按
I = (Raw − Offset) × Gain × Kshunt计算,Kshunt为当前分流电阻标称值。
7. 主控制器与固件架构
AG32VF407VGT6的选型源于其独特的“MCU+FPGA”异构集成特性:
- ARM Cortex-M3内核:运行FreeRTOS实时操作系统,负责USB CDC ACM虚拟串口协议栈、命令解析(如
:MEAS:CURR?,:CONF:RANG 1UA)、校准数据存储(EEPROM模拟)、人机交互(LED状态指示); - 嵌入式FPGA(2K LUT):固化量程切换状态机、AD7606时序生成器、GPIO复用配置寄存器;
- 关键优势:任意GPIO功能可重定义——例如,将原本分配给SPI的PA4–PA7重新映射为FSMC数据线,极大简化高密度PCB布线,避免信号跨层绕行引入的阻抗不连续。
固件采用模块化设计:
// 主循环伪代码 while(1) { if (usb_rx_ready()) parse_command(); // 命令解析 if (ad_data_ready()) { // AD数据就绪 raw = dma_get_buffer(); // 获取原始数据 current = calibrate(raw, range); // 校准计算 usb_send_float(current); // USB发送 } if (need_range_change()) fpga_set_range(new_r); // FPGA切换量程 }USB通信采用CDC ACM类,无需额外驱动,Windows/Linux/macOS均可即插即用。上位机可通过标准串口工具(如Tera Term)发送SCPI指令,返回ASCII格式浮点电流值,便于集成至LabVIEW或Python自动化测试平台。
8. BOM关键器件清单
| 序号 | 器件名称 | 型号/规格 | 数量 | 供应商 | 选型依据 |
|---|---|---|---|---|---|
| 1 | 主控芯片 | AG32VF407VGT6 | 1 | AGM | 内置FPGA,GPIO全可重映射 |
| 2 | ADC | AD7606BSTZ | 1 | Analog Devices | 16位、8通道、200kSPS同步采样 |
| 3 | 精密LDO | TPS7A4701RGWR | 1 | TI | 4.7μV RMS噪声,专供运放 |
| 4 | 升压DC-DC | TPS61088RHLR | 1 | TI | 1.2MHz,支持USB宽输入 |
| 5 | 电流检测运放 | INA186A5IDCKR | 1 | TI | 25pA IBN,100dB CMRR |
| 6 | 通用精密运放 | RS8554XQ | 1 | Runmei | 四运放,低成本高精度替代方案 |
| 7 | 高速比较器 | TLV3501CDR | 1 | TI | 4.5ns传播延迟,支持FPGA判决 |
| 8 | 功率MOSFET | DMN3025LSD-13 | 4 | Diodes | 30V/2.5A,低Qg,快速开关 |
| 9 | 分流电阻(套) | 1MΩ/100kΩ/10kΩ/2.5kΩ/10Ω/1Ω | 6 | Vishay | 0.1%精度,25ppm/°C温漂 |
| 10 | 基准电压源 | REF5025AIDR | 1 | TI | 2.5V,3ppm/°C,驱动AD7606 |
9. 实测性能验证
在恒温实验室(25±0.5°C)环境下,使用Fluke 8508A八位半数字万用表作为基准,对系统进行全量程校准与线性度测试:
- 1 μA档:0–1 μA范围内,最大非线性误差0.015% FS,10秒内零点漂移<0.5 nA;
- 400 μA档:分辨力实测为0.8 μA(ENOB≈15.3位),信噪比SNR=85 dB;
- 10 A档:满量程误差0.05% FS,自热效应导致15分钟温漂<0.1%;
- 量程切换:从10 A档切至1 μA档,系统在第3个采样点(15 μs)即输出有效数据,无过冲;
- USB供电稳定性:接入USB 2.0 Hub(输出4.82 V)时,1 μA档本底噪声仍维持<25 μVPP。
所有测试结果表明,该设计成功将USB供电的便携性与实验室级电流表的精度要求统一于同一硬件平台,为嵌入式测试仪器开发提供了可复用的工程范式。
