资讯动态

从1nA到10mA:DIY低电流源表架构与PCB实战

发布时间:2026/10/31 5:06:36 来源:尧图企业网站定制
前阵子在某实验室帮忙测一批光敏器件的暗电流读数落在几百皮安到几纳安之间。台面上那台进口源表倒是能测可只有一台排队排到下周。同组的人开玩笑说要不咱们自己搭一个。笑归笑回去我真把这件事认真算了算账能覆盖 ±1nA 到 ±10mA 这个区间的商用源表价格基本都在五位数往上而我要测的东西本质上只需要一个能双向灌/拉电流、顺带把电压读回来的通道。于是我花了大概三周业余时间从画板子到调通 1nA 档中间炸过运放、烧过模拟开关、被一个 0.3pA 的漂移折腾了整整两天。这篇就把整个 DIY 源表的过程摊开讲清楚——架构怎么定、电阻怎么算、保护环怎么画、量程切换为什么会给你一个离谱读数以及哪些钱绝对不能省。适合有一定模拟电路基础、想自己动手做一台低电流源表的人看也适合只是想搞明白源表凭什么叫源表的读者。1. 先把1nA这件事的分量掂清楚1.1 源表不是电源加万用表的拼装货很多人第一次听到源表第一反应是不就是个可调电源串个电流表。这个理解在毫安级以上勉强成立一旦往下走到微安、纳安就彻底不成立了。源表的核心特征是四象限工作它既能对外输出电流源出也能吸收外部电流灌入输出电压同理正负两个方向都能推、都能拉。这意味着输出级必须是一个双向的、能过零的功率级而不是一个单向的稳压器。更关键的差别在于源和测共用同一组端子。你设定输出 1V同时读回流过端子的电流这个电流既可能是你推出去的也可能是外部器件灌进来的仪器得能分辨方向和大小。这就决定了电路拓扑上输出级和测量级必须共用一个节点而这个节点同时又是精度最敏感的地方。我一开始想图省事用电压源 串联采样电阻 差分放大的方案搭出来一测就发现问题采样电阻本身会吃掉压降输出电压就不准了而且换量程要换采样电阻继电器一切换输出就抖一下。最后还是老老实实回到电压控制电流源 独立跨阻放大器的双通道结构。1.2 七个数量级跨度是这台机器全部的难点±1nA 到 ±10mA跨度是 10⁷也就是七个数量级。这个跨度不是加个可调旋钮能解决的它意味着整个信号链在不同量程下的主导误差源完全不同。在 10mA 档你操心的是采样电阻的温漂、运放的输出摆幅、走线的压降到了 1nA 档你操心的是 PCB 表面那层看不见的助焊剂残留、运放输入端几个皮安的偏置电流、甚至空气湿度。我把这条链路拆开算过一笔账1nA 满量程如果允许 0.1% 的误差那么整个通路里所有漏电流之和不能超过 1pA。1pA 是什么概念一块没洗干净的 FR4 板子在两个相邻焊盘之间加上 5V 压差表面漏电流轻松就能到几十上百皮安。也就是说同一个物理误差在低量程下会被放大七个数量级这是 DIY 源表最容易翻车的地方也是我后面要花整整一章讲 PCB 的原因。量程档位满量程电流允许误差(0.1%)主导误差源10mA10 mA10 μA采样电阻温漂、走线压降1mA1 mA1 μA运放失调、电阻精度100μA100 μA100 nA运放偏置电流开始显形1μA1 μA1 nAPCB 漏电开始显形100nA100 nA100 pA保护环、清洗工艺10nA10 nA10 pA运放 Ib、湿度、线缆1nA1 nA1 pA上面全部叠加1.3 为什么不能一个电阻打天下有人会想用一个 250Ω 的采样电阻覆盖 10mA再用一个超高分辨率的 ADC 去读 1nA 不就行了10mA 在 250Ω 上产生 2.5V1nA 在 250Ω 上产生 250nV。要分辨 250nV同时满量程是 2.5V动态范围是 10⁷也就是需要约 23 位无噪声分辨率。市面上 24 位 ΔΣ ADC 标称 24 位实际有效位在低速下也就 20~21 位而且前端放大器的噪声早就把 250nV 淹没了。所以分档是绕不过去的。我的做法是每一档对应一个独立的反馈电阻满量程统一折算到 ±2.5V 送到 ADC这样 ADC 永远工作在最佳区间量程切换本质上就是换一个反馈电阻。听着简单但换电阻这个动作本身会引入电荷注入、寄生电容突变、稳定时间延长等一堆问题后面单独讲。2. 架构定死之前先想清楚输出级和测量级怎么共存2.1 输出级选 Howland 电流泵的三个理由输出级要解决的问题是给定一个控制电压 Vin在负载上产生一个与负载无关的电流 Iout且能双向过零。常见方案有三种运放加 MOSFET 的恒流源、专用电流输出 DAC、以及 Howland 电流泵。第一种方案的问题在于单向性NMOS 只能拉电流要双向就得推挽推挽就有交越失真和偏置漂移。第二种方案芯片内部往往带斩波输出端有开关噪声在纳安级测量时会串到测量通道里去。最后我选了改进型 Howland 电流泵理由很实在它只用一片运放加四个电阻输出阻抗高双向自然过零而且输出电流直接由电阻比决定精度可以做得很高。基本拓扑是这样运放同相端接 Vin 经 R1反相端接输出反馈 R2输出端经 Rs 到负载负载另一端接地再从负载端经 R3 反馈回反相端R4 从反相端接地。当 R4/R3 R2/R1 时输出电流 Iout Vin × (R2/R1) / Rs。取 R1R2R3R410kΩ 的简并形式公式退化成 Iout Vin / Rs。Rs 就是那个决定量程的采样电阻。要给到 ±10mA 满量程、Vin 范围 ±2.5VRs 取 250Ω要覆盖 1nARs 得取到 2.5GΩ。这里立刻撞上第一个现实问题2.5GΩ 的精密电阻又贵又难买而且阻值公差普遍在 1% 以上。后面 3.2 节专门讲怎么绕过去。提示Howland 泵的输出阻抗不是无限的负载变化仍会带来误差。我的做法是在输出串联一个 100Ω 的限流电阻既保护了运放也把输出阻抗抬高了三个数量级代价是顺从电压损失一点实测可以接受。2.2 测量级的反馈电阻表是算出来的不是猜的测量级用跨阻放大器TIA这是低电流测量的标准答案。原理简单到一句话运放反相输入端接被测电流同相端接地反馈电阻 Rf 跨在输出和反相端之间输出 Vout -Iin × Rf。反相端是虚地被测器件两端的压降几乎为零这是它能测纳安电流的根本原因——压降小漏电通路就不存在。关键在于 Rf 怎么选。我定的规则是每个量程满量程时输出刚好 ±2.5V这样 ADC 的输入范围被充分利用信噪比最好。于是每个档位的 Rf 2.5V / I_fullscale。量程Rf 理论值实际选用备注10 mA250 Ω250 Ω 0.1%注意功耗10mA²×250Ω25mW1 mA2.5 kΩ2.5 kΩ 0.1%100 μA25 kΩ25 kΩ 0.1%1 μA2.5 MΩ2.5 MΩ 0.1%普通薄膜电阻即可100 nA25 MΩ25 MΩ 0.1%开始要注意封装漏电10 nA250 MΩ250 MΩ 1%高阻电阻需玻璃封装1 nA2.5 GΩ2.5 GΩ 或 T 型网络后面详述这张表是整个项目的骨架后面所有的布局、屏蔽、清洗工艺都是为了保住最后一行的 1pA 精度。2.3 量程切换的瞬间电路里到底发生了什么量程切换看着只是换个电阻实际上是把一个带电的电容从一个节点上拔下来再插到另一个节点上。跨阻放大器的反馈网络里Rf 上并联着几皮法的寄生电容切换瞬间这个电容上的电荷要重新分配输出端就会打出一个尖峰。我用机械继电器切 250Ω 到 25kΩ 这几档尖峰幅度在几百毫伏衰减时间几十微秒无所谓但切到 2.5GΩ 那一档因为时间常数 Rf×Cf 变成了秒级尖峰能挂好几秒才稳下来。这带来两个直接后果。一是程序里必须做切换后延时确认我设的是切档后丢弃前 500ms 的采样再取后面 20 个点做中值滤波。二是切换只能在没有负载电流的时候做否则大电流档切换到大电阻档的瞬间2.5GΩ 上会产生 2.5GΩ × 10mA 25MV 的理论压降当然被运放供电轨钳死运放直接进饱和恢复要很久。所以我的控制逻辑里强制先关断输出等 100ms再切档再重新使能。2.4 数字侧的分辨率预算别在这里省DAC 负责给输出级提供 VinADC 负责读回 TIA 的输出。这两个器件的位数直接决定了系统的细粒度。先算 DAC。16 位 DAC 在 0~2.5V 范围下 LSB 是 38μV。在 10mA 档Rs250Ω对应的电流步进是 38μV/250Ω 152nA相对满量程是 0.0015%够用。在 1nA 档Rs2.5GΩ电流步进是 38μV/2.5GΩ 15fA理论上远远够。所以16 位 DAC 足以覆盖整个范围瓶颈从来不在 DAC。再看 ADC。同样 16 位满量程 ±2.5VLSB 是 76μV。在 1nA 档对应电流是 76μV/2.5GΩ 30fA。只要前端噪声不超过几个 LSB读数就是有效的。我实际选的是 16 位、差分输入、内置 PGA 的 ΔΣ ADC采样率压到 20SPS这样能拿到最好的噪声性能。低速换低噪在源表这种场合是稳赚不赔的交易。注意ADC 的参考电压必须和 DAC 的参考电压同源或者至少温度特性一致。我第一版用了两颗不同的基准室温下对得上开空调降温 5 度之后两个通道的比值飘了 30ppm做比值测量时误差很明显。3. 器件选型的几道生死线3.1 运放的偏置电流必须比最小量程低两个数量级这是选型的第一原则也是最容易翻车的地方。1nA 量程如果运放输入偏置电流 Ib 是 10pA那就是 1% 的固定误差而且随温度变化可能翻几倍。所以我的要求是Ib ≤ 1pA留出两个数量级的余量。满足这个条件的运放主要是 CMOS 输入或者斩波稳零结构。CMOS 输入的 Ib 典型值在 1pA 以下但要注意它随温度指数上升每升 10℃ 大约翻一倍所以厂商标的数据通常是在 25℃ 下测的。斩波稳零运放能同时把失调电压压到 μV 级代价是输入端的开关噪声会抬高电流噪声谱密度而且斩波频率会在频谱上留下一个尖峰。我最后的取舍是测量通道用斩波稳零因为失调电压在 TIA 里会直接转换成输入端的一个等效电流源低失调比低噪声更值钱。你可能会问TIA 反相端是虚地Vos 怎么会产生误差因为 Vos 会通过被测器件的内阻形成一个误差电流。如果被测器件是纯电流源内阻极高几乎没影响但如果测的是一个高阻值电阻的漏电内阻只有几十兆欧Vos 哪怕只有 100μV也会产生 100μV/10MΩ 10pA 的误差正好吃掉整个 1nA 档的预算。运放参数1nA 档要求10mA 档要求说明输入偏置电流 Ib≤1 pA≤1 nA低压档严苛得多失调电压 Vos≤50 μV≤500 μV影响被测点实际电压电压噪声≤20 nV/√Hz不敏感折算成电流噪声要除以 Rf电流噪声≤0.5 fA/√Hz不敏感1nA 档的决定性指标增益带宽积1 MHz 足够≥10 MHz高阻档要压低带宽换稳定3.2 2.5GΩ 买不到也买不起T 型网络和它的代价2.5GΩ 的精密电阻现货少、交期长、单价能顶半块板子的钱公差还只有 1%~5%。我试过两个替代思路。思路一降低满量程输出电压。如果接受 1nA 对应 1V 输出Rf 只要 1GΩ好买一些但 ADC 的动态范围利用率下降1V 满量程下 16 位 ADC 的有效分辨率损失约 1.3 位。这是可以接受的折中我第一版就是这么干的。思路二T 型反馈网络。用三个普通电阻合成一个大跨阻。经典接法是 R1 从反相端到中间节点R2 从中间节点到输出R3 从中间节点到地等效跨阻 Rf_eq R1 R2 R1×R2/R3。取 R1R21MΩ、R3400Ω算出来约 2.5GΩ三个电阻都是常规货架品成本不到十块钱。但 T 型网络有代价而且不止一个。第一噪声不吃等效阻值这一套。反馈网络的约翰逊噪声由实际的 R1、R2 决定不是由等效的 2.5GΩ 决定所以你会得到一个等效跨阻很大但噪声也很大的电路。第二噪声增益被抬高了。T 型网络的噪声增益是 1 R2/R3 量级运放的电压噪声被同比例放大折算到输入端的等效电流噪声直接翻几十倍。第三带宽塌陷。中间节点引入的极点会让整个环路的相位裕度变差补偿电容得重新算。我的实测结论是T 型网络适合做到 100MΩ 这一档再往上噪声和稳定性都不划算不如老老实实买一颗玻璃封装的 1GΩ 高阻电阻把它架空焊在特氟龙支柱上。这颗电阻是整个 BOM 里最贵的单项但它是 1nA 档能不能用的分水岭这笔钱我建议别省。3.3 模拟开关的电荷注入与继电器的线圈干扰量程切换用模拟开关还是继电器我两种都试过。模拟开关CMOS 传输门体积小、驱动简单、切换快但有三个毛病。电荷注入开关断开瞬间会把沟道里的电荷注入到节点上典型值几到几十皮库仑在 2.5GΩ 的节点上产生的电压跳变是 Q/CC 只有几个皮法跳变能到伏级。导通电阻随温度变化在 250Ω 档会和采样电阻串联直接引入增益误差。关断漏电流在高温下能到纳安级对低电流档是灾难。机械继电器我用的干簧继电器没有电荷注入问题关断电阻高达 10¹² Ω 以上导通电阻几十毫欧在低电流档几乎是完美开关。代价是线圈驱动会产生磁场和电源干扰切换动作本身要几毫秒寿命有限。我的最终方案是混合使用100μA 及以上的档位用模拟开关因为那里对漏电不敏感10nA 和 1nA 档用干簧继电器。继电器线圈用独立的 LDO 供电线圈两端反并联续流二极管线圈走线远离信号区切换期间 ADC 停止采样。这套组合拳打下来切档毛刺从原来的几百毫伏压到了几毫伏。3.4 电源与地的划分比想象中更重要整台机器里有三套电源数字 3.3VMCU、通信、模拟 ±15V输出级运放、模拟 ±5V测量级运放和 ADC 基准。三套地最终单点汇合在电源入口处。我踩过的坑是一开始图省事所有地铺成一整块结果 MCU 的 SPI 时钟串到了 TIA 的输出上频谱上看就是 8MHz 的尖峰幅度虽然只有几毫伏但在 100nA 档折算成电流就是几皮安。后来改成模拟地和数字地分开铺中间用 0Ω 电阻单点连接连接点放在 ADC 下方串扰立刻降了一个数量级。输出级和测量级之间还有一层隔离要考虑。输出级运放要推 10mA电源电流波动大测量级运放只处理微安级信号。两者的电源必须分开走线各自从稳压器单独拉不能共用一段 PCB 铜皮。我在两路电源之间串了 10Ω 电阻加 10μF 电容做 RC 滤波把输出级的开关噪声挡在测量级之外。4. nA 级电路真正的战场在 PCB 上4.1 保护环画在哪个电位上这个问题有标准答案保护环Guard Ring是低电流电路的保命符但很多人画错——画了一圈铜接到信号地上结果一点用没有。原理是这样的PCB 表面的漏电流正比于两个节点之间的电位差除以表面电阻。如果信号节点TIA 反相端虚地约 0V周围有一圈铜这圈铜的电位也是 0V那么信号节点和这圈铜之间没有电位差漏电流就是零。原本要流进信号节点的漏电被这圈铜截胡了。所以保护环的接线原则是接到与信号节点等电位的低阻节点上。在 TIA 里反相端是虚地同相端接的是真正的地两者电位相同所以保护环接模拟地就是对的。如果同相端不接地而是接了一个偏置电压那保护环就得接那个偏置电压或者用一个跟随器缓冲后驱动保护环。具体画法上我在顶层和底层都画了保护环环宽 0.5mm距离信号焊盘 0.3mm两层之间每隔 5mm 打一个过孔缝合。信号走线全程被保护环包住从运放反相端一直到输入端子中间不露出任何一段裸线。保护环上不要盖阻焊裸露的铜更能把表面漏电导走。提示保护环只能解决环内外之间的漏电环内部如果还有残留助焊剂信号线之间照样会漏。所以保护环和清洗是配套的缺一不可。4.2 板材、清洗与那层薄薄的助焊剂FR4 是吸湿材料湿度从 30% 升到 80%表面电阻能掉两个数量级。我做过对比同一块板子干燥天气下 1nA 档零点漂移 5pA梅雨天不开空调能漂到 200pA。这不是电路问题是材料问题。应对办法有三层。第一层高阻节点区域开窗。我在 1nA 档的反馈电阻和输入端周围做了阻焊开窗装完后用无水乙醇加超声波清洗 5 分钟再用热风枪 60℃ 烘 30 分钟驱潮。第二层架空。那颗 1GΩ 电阻不贴板用两根特氟龙支柱架在板子表面 3mm 以上输入线用裸铜线在空气中飞过去不经过任何 PCB 表面。第三层涂覆。洗完烘干后在高阻区域刷一层薄薄的三防漆把表面和空气隔开。注意三防漆本身要选高绝缘型号而且涂之前必须洗干净否则等于把助焊剂封在里面。我第一版没做这些1nA 档的读数完全不可信同一颗 1GΩ 电阻清洗前后测出来的漏电流差了 40 倍。4.3 热电动势看不见的 μV 级对手热电动势在电流测量里不显眼但它会通过两条路径影响结果。一是输入端子。如果两个输入端子的材料不同或者一个焊点大一个焊点小室温波动就会在输入端产生几 μV 到几十 μV 的电动势这个电动势加在被测器件上改变了它的实际工作点。二是反馈电阻。高阻电阻的端头材料和引脚材料不同形成热电偶电阻自身发热或者环境温度变化都会产生漂移电压。处理办法比较土但有效输入端子的两个焊点尽量做成一样大走线长度和宽度对称高阻电阻远离任何发热元件LDO、继电器线圈、MCU布局时留出至少 10mm 的间距整机加一个小风扇做低速空气搅拌让板面温度均匀避免局部温差。最后这一条听起来反直觉——风扇不是引入噪声吗实测下来均匀的气流带来的噪声远小于局部温差带来的漂移尤其在 1nA 档。4.4 屏蔽和接地在 nA 电路里怎么落地整机装进铝壳壳接大地。PCB 的模拟地与外壳在一点连接位置选在输入端子附近。这样外部干扰在壳体上形成的电流就近入地不会绕着信号线跑一圈。输入线缆是个大坑。普通的屏蔽线屏蔽层和芯线之间的绝缘电阻在几十兆欧到几百兆欧量级在 1nA 档这就是一条漏电通路。我最后用的是低噪声同轴电缆绝缘层是特氟龙屏蔽层单端接地接在仪器端不接在被测端长度控制在 30cm 以内。双端接地会形成地环路反而引入工频干扰。另外输入端子的清洁度要当成耗材一样维护。每次测完高电压或者脏样品我都用无水乙醇棉签擦一遍端子等干了再接下一个。这个习惯帮我避免了好几次莫名其妙的读数漂移。5. 从冒烟到能稳定读出 1nA 的调试路径5.1 分步上电别一次全插上板子回来第一次上电我建议分三步走每一步都量一下关键节点。第一步只焊电源部分不焊运放。上电后量三路输出电压是否正常纹波是否小于 5mV。这一步出问题后面全是白搭。第二步焊输出级和测量级的运放但不接反馈电阻不接负载。量各个运放的输出是否在零点附近有没有自激用示波器看输出有没有高频振荡。自激是这一步最常见的故障表现为输出端有一个几十兆赫兹的等幅振荡直流表看不出来但会让所有读数都不对。第三步才把反馈电阻和继电器焊上先用万用表量各档的电阻值确认继电器吸合正常再上电测零点。我第一块板子在第二步就翻车了测量级运放输出一直在 ±13V 之间来回跳查了半天是反馈电阻的焊盘设计错误把反相端和输出端短路了运放变成了比较器。这种低级错误在分步上电时十分钟就能定位一次全焊上就得花一晚上。5.2 零点校准先短接输入端再谈精度所有量程的零点校准都是在输入端接一个高阻值假负载我用的是 1GΩ 电阻串一个 100MΩ模拟开路的情况下读 ADC 的原始码值存进 MCU 的 Flash 里作为 offset。这里有个细节零点必须在每个量程单独校不能只校一个档然后按比例推算。因为每个档位的失调来源不同——低阻档主要是运放 Vos 和 ADC 失调高阻档主要是 PCB 漏电和运放 Ib。我一开始想偷懒只校了 1mA 档结果 1nA 档的零点偏了 300pA完全对不上。校准时的环境也要控制。我在恒温 25℃ 下校然后把校准值存起来。实际使用时如果环境温度偏离超过 5℃低电流档的零点会有几十皮安的漂移这时候要么重新校要么加温度补偿系数。我在固件里做了简单的线性温度补偿用板载的 NTC 测板温每℃ 补偿 2pA虽然粗糙但把漂移压到了可以接受的范围内。5.3 量程切换后的稳定时间必须实测出来前面说过切档会有电荷注入和 RC 恢复。具体等多久不能拍脑袋得测。方法很直接把输出固定在一个已知电流比如用 1GΩ 电阻加 1V 电压产生 1nA然后让程序在 10nA 档和 1nA 档之间来回切每次切换后以 1ms 间隔连续记录 ADC 值画成曲线。你会看到一条典型的指数衰减曲线从切换瞬间的满幅饱和慢慢回到稳态值。我的实测结果是250Ω 到 25kΩ 这几档稳定时间小于 5ms25MΩ 档约 80ms250MΩ 档约 600ms1GΩ 档约 2.5s。这个数据直接决定了固件里的等待时间——等待时间设为实测稳定时间的 2 倍这样即使有批次差异也留了余量。1nA 档等 5 秒听起来很久但比起读一个错数5 秒完全值得。5.4 用已知电阻做一次闭环校验校准完零点接下来要校增益。最靠谱的办法是用一个高精度、高阻值的电阻作为标准电流源给它加一个精确的电压它产生的电流就是 V/R送进源表读回来比对读数。我用的是一颗 10MΩ、0.01% 的金属膜电阻配合一个 10.000V 的基准产生 1μA 的电流。在 1μA 档读回来误差在 0.05% 以内。然后往下推换 100MΩ 电阻产生 100nA换 1GΩ 产生 10nA。每换一次量程都要重新校增益因为不同档位的增益误差来源不同电阻公差、运放增益误差、ADC 增益误差。最后的 1nA 档是最难校的因为你需要一个 1nA 的标准电流源。我的土办法是用 10GΩ 电阻加 10V 电压产生 1nA。这颗 10GΩ 电阻本身公差 5%所以只能校到 5% 的绝对精度但可以校出线性度。如果只关心相对变化比如测暗电流随时间的变化这个精度就够了。6. 那几次让我怀疑人生的读数6.1 输出级自激容性负载和相位裕度输出级接上长线缆或者容性负载比如 MOS 管的栅极Howland 泵很容易自激。表现是输出端叠加一个几兆赫兹的正弦波幅度几百毫伏用万用表看不出来但会把被测器件搞坏也会让测量通道读到一堆垃圾。根因是运放的输出阻抗和负载电容形成了一个极点把相位裕度吃掉了。解决办法有三个我三个都用了输出串联 100Ω 隔离电阻把容性负载和运放输出隔开反馈回路并联一个小电容10pF做相位超前补偿选增益带宽积适中的运放不要盲目追求高速。第一版我选了一颗 50MHz 的运放结果怎么补偿都不稳换成 10MHz 的立刻就好了。在源表这种场合带宽是敌人不是朋友。6.2 1nA 档读数漂移最后查到是继电器1nA 档调通后我发现读数会缓慢漂移几分钟内从 0 漂到 80pA然后稳定。查了运放、查了电阻、查了清洗工艺都没问题。最后用热成像仪一看干簧继电器的线圈在持续通电温度比周围高 8℃而它就装在高阻电阻旁边 5mm 处。高阻电阻的温度系数哪怕是 100ppm/℃8℃ 的温升也意味着 0.08% 的阻值变化折算到 1nA 就是 0.8pA。但实际漂移远大于这个数说明还有别的机制——后来发现是继电器的绝缘电阻随温度下降线圈和触点之间的漏电流串到了信号上。解决办法继电器改用磁保持型切换后线圈断电不持续发热同时把继电器和高阻电阻的间距拉到 15mm 以上中间加一条接地铜皮做热隔离。改完之后漂移降到 5pA 以内。6.3 切档瞬间 ADC 打出的离谱值这个问题困扰我最久。现象是从 10mA 档切到 1nA 档ADC 会连续输出 3~5 个满幅值0xFFFF然后才回到正常。程序里明明已经加了 500ms 延时为什么还有原因是ADC 的输入保护二极管在运放输出饱和期间被导通内部电荷泵被抽走恢复需要时间。运放在切档瞬间输出冲到 ±13V 轨超过了 ADC 的输入范围保护二极管导通把电荷注入了 ADC 的采样电容。ADC 内部要花好几个转换周期才能把这个电荷泄放掉。解决分两层。硬件上在 TIA 输出和 ADC 输入之间串一个 10kΩ 电阻加一个肖特基钳位到 ±2.5V 基准把过冲限制在安全范围内。软件上切档流程改成关输出 → 延时 100ms → 切档 → 延时稳定时间 → 打开 ADC 但丢弃前 50 个采样 → 正式开始采集。这套流程下来再没出现过离谱值。注意切档期间如果被测器件是敏感的比如某些传感器输出端的电压冲激可能损伤它。我的做法是在输出端加一个继电器切档时把负载断开切完再接通。多一个继电器多一份安心。7. 一些不上台面但很管用的实操经验做完整台机器我最深的体会是源表的精度不是设计出来的是洗出来、等出来、隔离出来的。电路拓扑就那几种书上都有真正拉开差距的是那些不起眼的工艺细节。比如焊接。低电流通道的所有焊点我都用免清洗助焊剂含量最低的焊锡丝焊完立刻用无水乙醇加软毛刷清洗三遍每遍都换新的棉签。听起来夸张但用离子污染测试笔一测清洗前后表面绝缘电阻差了两个数量级。比如走线。信号线绝对不走直角不是玄学是直角处铜箔变宽会导致阻抗突变在高阻节点上容易形成电荷积聚。所有信号走线尽量短从运放反相端到输入端子的路径长度控制在 20mm 以内。比如固件里的滤波。1nA 档我用了 32 点中值滤波加滑动平均采样率 20SPS 时响应时间约 2 秒。这个速度对测暗电流这种慢变量完全够用但如果要测瞬态就得把滤波关掉接受更大的噪声。滤波参数不是越强越好要看你的被测对象是什么。最后一个建议先做一版只有 1mA 和 100μA 两个档位的简化版把架构跑通再往上加档位。我就是一上来做了八个档结果低电流档的问题和高电流档的问题搅在一起排查起来极其痛苦。分阶段做每一阶段都有可验证的成果这才是 DIY 复杂仪器的正确节奏。整台机器最后装进一个 200×150×80mm 的铝壳里成本算下来不到商用机的十分之一性能上除了绝对精度我做到 0.1% 量级商用机是 0.02%和长期稳定性稍差日常测器件漏电、暗电流、休眠功耗完全够用。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑