1. 先算清楚这笔账:自造源表到底图什么
身边做器件测试的朋友,十个里有八个在预算表上被那台进口台式源表的价格劝退过。一台能覆盖 nA 到 mA、精度还像样的源表,报价往往是五位数到六位数,学生党和小团队基本只能靠蹭实验室的。但如果你拆开它看内部,会发现核心并没有那么玄乎——一台源表本质上是"一个闭环控制的电压/电流源"加上"一套高阻输入的量测前端",剩下的钱主要花在校准体系、机箱工艺和软件生态上。我折腾这台±1nA~±10mA 源表前后断断续续用了三个月,中间炸过运放、被漏电流折磨到怀疑人生,最后老老实实把它做到能测二极管 I-V、能测 MOS 管亚阈值区、能测传感器暗电流的程度。这篇就把它拆开讲透,从选型逻辑到走线细节到踩坑记录,全部摊开。
先说清楚它是什么、给谁用。源表(SMU,Source Measure Unit)和普通电源最大的区别是:它一边输出,一边同步测量,而且输出和测量共享同一个闭环节点。这意味着你设定 1V 输出,它内部的反馈环路会持续把实际电压修正到 1V,同时告诉你这一刻流过了多少电流——哪怕那个电流只有几百皮安。适合的人群很明确:做半导体器件表征的、做电化学/传感器微弱信号测试的、做精密模拟电路验证的,以及单纯想搞明白"微弱电流到底怎么测"的硬件爱好者。不适合谁也很明确:需要上百伏高压的、需要安培级大电流的、需要微秒级脉冲响应的,这台机器帮不了你。
1.1 把模糊需求翻译成硬指标
很多人一开始就陷进"我要做一台源表"这个大词里,然后开始找现成方案,越找越乱。我的做法反过来:先把使用场景写成几条硬约束,再倒推电路。
我当时定下的四条底线是:第一,电压输出范围 ±10V,够覆盖绝大多数小信号器件;第二,电流输出/测量范围 ±1nA 到 ±10mA,跨七个数量级;第三,最小电流档的分辨率要做到亚皮安级,至少能分辨 1pA;第四,整机精度目标 0.1% 读数 + 0.05% 满量程,nA 档放宽到 1%。这四条一写下来,后面的所有选型其实就被锁死了。
关键的一步是把电流量程拆成档位,并给每一档配一个"量程电阻"。这是整台机器的心脏,我在纸上算了整整一页:
| 电流量程 | 满量程压降 | 量程电阻 Rs | 差分增益 | 送入 ADC 电压 |
|---|---|---|---|---|
| ±10mA | 0.1V | 10Ω | 10 | ±1V |
| ±1mA | 0.1V | 100Ω | 10 | ±1V |
| ±100μA | 0.1V | 1kΩ | 10 | ±1V |
| ±10μA | 0.1V | 10kΩ | 10 | ±1V |
| ±1μA | 0.1V | 100kΩ | 10 | ±1V |
| ±100nA | 0.1V | 1MΩ | 10 | ±1V |
| ±10nA | 0.1V | 10MΩ | 10 | ±1V |
| ±1nA | 0.1V | 100MΩ | 10 | ±1V |
为什么统一选 0.1V 满量程压降,而不是常见的 1V?这里有个很现实的取舍。压降越大,信噪比越好,但功耗和自热越严重——1mA 档用 1kΩ 电阻,1V 压降意味着电阻上要耗散 1mW,长期下来温漂会毁掉精度,而且被测器件实际拿到的电压会比设定值低一大截,这叫"负载调整率"变差。压降越小越好,但小到 10mV 时,运放的失调电压(哪怕是 5μV 级)占比就到了 0.05%,而且寄生热电势开始咬人。0.1V 是我实测下来最舒服的中间点:失调占比可控,功耗可忽略,后级再放大 10 倍刚好填满 ADC 的 ±1V 输入区间。
1.2 ADC 位数这笔账必须提前算
后级 ADC 我用了 24 位 ΔΣ 型,输入范围设成 ±2.5V。理论上一个 LSB 是 5V / 2²⁴ ≈ 0.3μV。把这条链倒推回电流:0.3μV ÷ 10(差分增益)÷ 100MΩ(1nA 档量程电阻)= 0.3fA。这个数字看着很爽,但它只是"理论分辨率",实际能到多少完全取决于噪声和漏电流,后面会详细讲。这里先记住一个结论:ADC 位数决定的是地板,噪声和漏电流决定的是天花板,而绝大多数 DIY 源表死在天花板上,不是地板上。
2. 整体架构:一台源表其实只有四块板子
把整机拆开,结构非常清晰,四块:数字控制、模拟输出环路、量程电阻网络、电源与屏蔽。我最初想得很复杂,画了七八个模块,后来发现真正影响成败的只有模拟环路和量程网络,数字部分反而是最好搞的。
2.1 数字控制层:别在这上面浪费时间
数字层就三件事:给 DAC 送设定值、从 ADC 读回测量值、控制量程继电器。我用一块通用的 Cortex-M3 核心板,外挂一颗 16 位 DAC 和一颗 24 位 ΔΣ ADC,走 SPI。DAC 输出 0~5V 单极性,后面接一个精密运放做电平搬移和反相,变成 ±10V,这样正负电流都能设定。
这里有个容易被忽略的细节:DAC 的 16 位分辨率在 1nA 档够不够用?算一下就知道了。±10V 范围、16 位,一个 LSB 是 20V / 65536 ≈ 305μV。而 1nA 档的灵敏度是 0.1V 对应 1nA,也就是说 305μV 的设定误差会带来约 3pA 的电流误差。对于目标分辨率 1pA 的档位来说,这个误差占了 3 倍,明显不够。
解决办法有两个:要么换 20 位 DAC,要么在 nA 档做"粗调 + 细调"两级叠加。我选了后者,用一颗 16 位 DAC 做粗调,再用一路 PWM 加 RC 滤波做细调叠加,纹波被后面的环路低通滤掉。成本几乎为零,效果比换 DAC 还稳。这是我在预算有限时最得意的一个小设计。
2.2 模拟输出环路:这台机器唯一需要"调"的地方
输出级我用了最经典的拓扑:一颗运放做误差放大,驱动一个功率缓冲器,缓冲器输出经过量程电阻回到地,量程电阻两端的压降作为反馈信号送回运放的负输入端。整个结构就是一个大的负反馈环,闭环增益由反馈网络决定,输出电流 I = Vset / Rs。
这个拓扑的好处是"源"和"测"共用同一个采样点。你设定的电流和实际流过的电流,在物理上是同一个节点上的同一个电压,不存在"源一套、测一套"带来的系统性偏差。这也是真源表和"电源 + 万用表"组合的本质区别——后者的源和测是两条独立路径,中间任何一个环节漂了,你就永远不知道到底哪个数字是真的。
2.3 量程电阻网络:八只电阻决定成败
八只电阻通过干簧继电器切换。为什么不用模拟开关?因为 MOS 模拟开关在关断状态下的漏电流在 pA 到 nA 级,对 1nA 档是灾难性的。干簧继电器的断开电阻通常在 10¹² Ω 以上,而且触点没有半导体结,不会因为光照或温度产生额外漏电。代价是体积大、有机械寿命、切换时有几毫秒的抖动——但对一台手动或半自动的源表来说,这些代价完全可以接受。
电阻本身的选择也有讲究。10Ω 到 100kΩ 这几档,用 0.1% 的金属膜电阻就够了,注意选低温漂型号(25ppm/℃ 以内)。1MΩ 往上就要认真了:普通厚膜电阻在高阻值段的电压系数很差,加上 0.1V 直流偏置后阻值可能漂移 0.5% 以上。我最后用的是玻璃封装的精密金属膜电阻,虽然贵,但电压系数能压到 5ppm/V 以下,长期稳定性也好得多。
2.4 电源与屏蔽:所有玄学问题的根源
电源用 ±15V 线性稳压,模拟部分再经过一级低噪声 LDO 降到 ±12V 给运放。数字部分独立一路 5V,两边地线在电源入口处单点连接。这个"单点接地"不是我抄来的教条,是被逼出来的:我最初模拟地和数字地混在一起,结果 ADC 读数上叠加了约 50kHz 的周期性纹波,幅值折算到 1nA 档是 20pA,直接把小电流档废掉了。
整机装在一个铝制屏蔽盒里,盒子和模拟地相连。被测器件的接口用同轴插座,屏蔽层接盒子。这一层屏蔽对 1nA 档的意义,比换一颗贵三倍的运放还大。
3. 恒压恒流环路怎么搭才不炸
这是整台机器最需要动脑子的地方,也是最容易翻车的地方。我第一版环路用的是"运放直接驱动 MOSFET"的简单结构,上电三秒钟,运放就冒烟了——因为 MOSFET 的栅极电容在环路里形成了一个额外的极点,相位裕度不够,直接自激振荡。
3.1 为什么必须闭环,而不是 DAC 直推
有人会问:我直接用 DAC 输出电压,串一个精密电阻,不就是一个电流源了吗?从原理上说是的,这叫"串阻恒流",但它有三个致命问题。第一,输出电流完全依赖负载电压,负载变了电流就变,这不是恒流源,是"近似恒流源"。第二,串的电阻本身精度和温漂直接决定了电流精度,1MΩ 以上的电阻温漂很难压住。第三,你无法知道实际流过的电流是多少,因为电阻上的压降没被测量。
闭环结构把这三个问题一次解决:反馈信号就是量程电阻上的压降,环路会自动修正输出,让压降等于设定值;同时这个压降本身就是要测量的量,源和测天然一致。代价是环路必须稳定,这就是下面要讲的核心。
3.2 一个运放 + 一个缓冲器的经典 V/I 变换
最终定下来的结构是这样:误差放大器 A1 的正输入端接设定电压 Vset,负输入端接量程电阻上的采样电压 Vsense,输出驱动一个功率缓冲级 A2,A2 的输出经过量程电阻 Rs 到地,Rs 上端就是 Vsense,同时这个节点也是对外输出的 Force 端。
这里有个关键设计:A2 必须放在反馈环内部,而不是环外。如果 A2 在环外,它的失调、漂移、非线性全部会成为开环误差,直接反映到输出电流上。放进环内,A1 会自动把 A2 的这些误差"吃"掉,整机的精度只取决于 A1 的失调和 Rs 的精度。这是我调试到第二周才想明白的事,之前一直以为是电阻不够准。
A2 的选型要注意两点:一是输出电流能力要覆盖 10mA 加上负载电流的余量,二是它必须能输出到接近电源轨。我用的是通用功率运放,±15V 供电,输出摆幅能到 ±13V,驱动 10mA 负载时压降在 1.5V 以内,够用。如果负载是容性的(比如长电缆),A2 输出端必须串一个 22Ω 到 100Ω 的隔离电阻,否则容性负载会在环路里再引入一个极点,振荡概率极高。这个电阻会带来一点点负载调整率损失,但比起烧运放,这点损失完全值得。
3.3 稳定性:补偿电容怎么试出来
环路补偿是纯经验活。我的做法是在 A1 的输出和负输入之间挂一个可调电容(用拨码开关切换 10pF / 100pF / 1nF / 10nF),然后在不同量程下用示波器看阶跃响应。
实测规律是这样的:低阻档(10Ω~1kΩ)环路增益高,需要较大的补偿电容,10nF 左右才能压住过冲;高阻档(10MΩ 以上)因为量程电阻本身和寄生电容构成了一个低频极点,反而需要减小补偿电容,否则响应慢到要几百毫秒才能建立。最后我给每个量程单独存了一组补偿参数,切换量程时由 MCU 同步切换继电器和补偿电容。这个"分档补偿"的设计,是让这台机器从"能用"变成"好用"的分水岭。
阶跃响应的验收标准我定得很松:从 10% 到 90% 建立时间小于 50ms,过冲小于 5%,无持续振荡。对器件测试来说这个速度足够了,因为大多数测试脚本里每个点的驻留时间都在 100ms 以上。
3.4 四象限与功率预算
四象限的意思是:电压正负、电流正负,四种组合都能工作。这在测二极管、测电池充放电、测晶体管输出特性时是刚需。实现方式其实很简单——只要 A1 的供电是 ±15V,设定电压可以是正也可以是负,A2 能拉也能灌,整个环路自然就覆盖了四个象限。
但功率预算要算清楚。最恶劣的工况是输出 ±10V 同时流 ±10mA,就是 100mW。A2 在这种工况下的自身功耗是(15V - 10V)× 10mA = 50mW,加上静态功耗,总功耗在 200mW 以内。用一小片铝散热片贴着就行,不需要风扇。但如果你的应用需要输出 20V、20mA,功耗立刻翻四倍,这时候就必须重新评估散热和运放选型了。
还有一个保护细节:输出端串一个 100Ω 的限流电阻和一个双向 TVS。这个电阻在正常工作时会因为负载电流产生压降,所以它必须放在 Sense 反馈点之外——也就是采用四线制(开尔文连接),Force 走大电流路径,Sense 单独引一根线回到反馈点。这样限流电阻上的压降不会影响输出精度。四线制这件事,在 10mA 档看着无所谓,在 1nA 档就是生死问题——普通杜邦线的绝缘电阻可能只有 10⁹ Ω 量级,一根 10cm 的线在 1V 下漏个几 pA 毫不稀奇。
4. 1nA 档的真正难点:漏电流、偏置电流和 Guard
前面三章讲的东西,认真一点的硬件工程师花两周都能搭出来。真正让 DIY 源表卡住的,永远是最后那一两个数量级。我把 1nA 档单独拎出来讲,因为这一档的坑最多,而且每一个坑都会让你怀疑自己的电路是不是接错了。
4.1 100MΩ 电阻不是随便买的
1nA 档用的量程电阻是 100MΩ。这个阻值在市面上能买到,但型号很少,而且大部分是厚膜工艺,电压系数很差。我第一批买的是普通 1% 厚膜电阻,装上去一测,同一颗电阻在 0.1V 和 1V 偏置下的阻值差了 0.8%,这意味着你的量程在低电流时是准的,电流一大就偏了,而且偏得毫无规律。
后来换成玻璃封装的精密金属膜电阻,电压系数降到个位数 ppm/V,问题才解决。这类电阻还有个好处:玻璃封装防潮,而潮湿是高阻电路的头号敌人——PCB 表面吸附一层水膜,绝缘电阻能从 10¹⁴ 掉到 10¹⁰,1nA 档立刻失真。
顺便说一句,100MΩ 电阻的热噪声不小。按 4kTRB 算,室温下 100MΩ 在 1Hz 带宽内的噪声约 1.3μV,折算成电流是 13fA/√Hz。如果你把测量带宽限制在 10Hz,总噪声约 41fA rms,相对 1nA 满量程是 0.004%。这个数字说明:噪声不是 1nA 档的主要敌人,漏电流和偏置电流才是。
4.2 运放偏置电流这笔账,很多人算错
误差放大器 A1 的输入偏置电流会直接流过反馈网络,等效成一个电流误差。如果 A1 用的是普通的精密零漂移运放,偏置电流典型值可能在 50pA 到 100pA 量级——听起来很小,但对 1nA 满量程来说就是 5% 到 10% 的固定误差,而且随温度变化。
我的处理方式是分档换运放:低电流档(100nA 及以下)切换到飞安级偏置的 CMOS 输入运放,偏置电流典型值在个位数 fA,最大不超过 100fA;高电流档(1μA 以上)切换回低噪声、低失调的双极型运放,因为这时候偏置电流的影响可以忽略,而噪声和失调才是主要矛盾。
切换用的是小信号继电器,两组运放并联在板上,靠继电器选择哪一组接入环路。这个设计让 BOM 成本增加了不到二十块,但把 1nA 档的误差从 5% 压到了 0.5% 以内。我认为这是整台机器性价比最高的一处设计。
还要提醒一句:飞安级偏置的运放极其娇贵。手上的油脂、焊锡膏残留、甚至呼吸带出的水汽,都会在引脚之间形成漏电通路。焊接完必须用无水乙醇加超声波清洗,然后用压缩空气吹干,再涂一层薄薄的三防漆(高阻档区域要避开,只涂周边)。我第一块板子没洗,1nA 档的零点漂移大到完全没法用。
4.3 Guard 环:把漏电流"短路"掉
高阻节点周围的 PCB 表面漏电,是 nA 级测量的经典难题。解决办法是加 Guard 环:在高阻节点周围画一圈铜箔,用一个低阻抗的缓冲器把它驱动到和高阻节点相同的电位。这样两点之间没有电位差,漏电流自然就没了。
Guard 环的关键是"驱动源必须低阻抗"。我一开始偷懒,直接把 Guard 接到运放的输出端,结果发现 Guard 环上带了一点信号波动,反而往高阻节点耦合了噪声。正确做法是用一个单独的运放做电压跟随器,输入接高阻节点,输出驱动 Guard 环。跟随器的输入偏置电流要足够小,否则它自己就成了新的漏电源。
Guard 环在 PCB 上要双面画,顶层和底层都要,并且用过孔连起来形成立体包围。走线宽度 0.3mm 以上,距离被保护节点 0.5mm 左右。这个间距是权衡出来的:太近了爬电距离不够,太远了 Guard 效果变差。
4.4 热电势和介质吸收,两个看不见的对手
热电势是被最多人忽略的误差源。两种不同金属连接处,每摄氏度温差产生几微伏的电动势。在 1nA 档,100MΩ 电阻上 1μV 的误差就是 10fA,看着不大,但如果你的板子上有继电器、有接插件、有大功率电阻发热,局部温差到 2~3℃ 很正常,累积起来就是几十 fA 的漂移。
对策有三条:一是布局上让高阻节点远离一切发热元件;二是选用同种金属材料做接点,比如全部用铜或全部用金;三是整机加一个薄铝内衬做均温,让板子上的温度梯度尽量小。我加了铝内衬之后,零点漂移从每小时 30pA 降到了 5pA 以内。
介质吸收则会在量程切换后表现为"缓慢爬行":你切换到一个新量程,读数先跳到某个值,然后花几秒钟慢慢漂到最终值。原因是 PCB 基材和电容介质里存储的电荷在缓慢释放。对策是切换后加一段固定的等待时间(我设的是 200ms),并且在软件里做多次采样平均。这个等待时间不能省,省了读数就不准,而且不准得毫无规律。
5. 实操:从零到一台能用的机器
这一章讲具体怎么装。我不打算给你一份"照抄就能用"的清单,因为每个人的器件和预算不同,但顺序和方法是通用的。
5.1 器件选型的优先级排序
如果预算有限,钱应该按这个优先级花:第一位是量程电阻,尤其是 1MΩ 以上的几只;第二位是误差放大器 A1,尤其是低电流档那一颗;第三位是基准电压源,DAC 和 ADC 都靠它;第四位才是 ADC 和 DAC 本身。
很多人反过来,先买一颗 24 位 ADC,然后用普通 1% 电阻和通用运放搭前端,结果测出来的数据全是噪声和漂移,还以为是 ADC 不行。实际上 24 位 ADC 的有效位数能到 18 位就不错了,剩下的 6 位全被前端吃掉。前端精度决定了系统的真实精度,ADC 位数只是给了你一个理论上限。
基准电压源我用的是一颗低温漂的精密基准,初始精度 0.05%,温漂 5ppm/℃。这颗器件不便宜,但它是整机的"尺子",尺子不准,后面所有的测量都没有意义。如果预算实在紧张,可以用两颗普通基准做比例测量来抵消一部分误差,但那样会增加软件复杂度。
5.2 布局走线的几条硬规矩
PCB 布局我返工了三次,总结出几条不能破的规矩:
第一,模拟区和数字区物理分开,中间留 3mm 以上的间隙,地平面在电源入口处单点相连。数字信号线绝对不许跨过模拟区,尤其是 SPI 时钟线。
第二,高阻节点(1MΩ 以上的量程电阻、运放输入引脚)的走线要尽可能短,周围全部用 Guard 环包围,走线下方不允许有地平面以外的任何信号层。
第三,量程电阻尽量贴近继电器和运放,减少走线长度。100MΩ 电阻的走线每长 1cm,寄生漏电通路就多一条。
第四,所有接插件都用同轴或三同轴,屏蔽层接到机壳地。普通排针在 1nA 档就是漏电天线。
第五,电源走线和信号走线严格分层,交叉处尽量垂直,减少耦合。
这些规矩听起来繁琐,但每一条都是我用实际故障换来的。尤其是第二条,我第一次画板时把高阻走线拉得很长,结果 1nA 档的读数和被测电流几乎无关,全是环境干扰。
5.3 分阶段调试,别想一次点亮
整机调试我分四个阶段,每个阶段都有明确的验收标准,不达标绝不往下走:
第一阶段,只焊电源和基准,测量各路输出电压的纹波和噪声。验收标准:模拟电源纹波小于 1mV,基准输出在半小时内的漂移小于 20ppm。
第二阶段,焊输出环路和低阻档(10Ω~10kΩ),用假负载测试恒压和恒流模式。验收标准:设定 1mA 输出,实测误差小于 0.1%,阶跃响应无振荡。
第三阶段,焊高阻档和测量前端,先不接被测器件,测量零点。验收标准:1nA 档零点在 10 分钟内漂移小于 5pA。
第四阶段,接实际器件测试,和一台可信的台式表做比对。验收标准:在 100nA 到 10mA 范围内,误差小于 0.5%;1nA 档误差小于 2%。
这个分阶段的方法救了我很多次。有一次第三阶段零点怎么都压不下去,排查了两天才发现是某个继电器的线圈驱动线和信号线走得太近,切换时的反向电动势耦合进了高阻节点。如果一上来就整机联调,这个故障会淹没在一堆现象里,根本定位不到。
5.4 标定:没有标准器就得想办法
个人做源表最大的短板是标定。理想情况是找一台六位半以上的台式表做比对,但很多人没有这个条件。我的折中方案是"分段标定 + 交叉验证":
低电流段(1nA~100nA)用一只高阻值精密电阻做"电流发生器"——加一个已知电压,产生一个已知电流,然后看源表读数。这个方法的精度取决于那只电阻和电压源的精度,但至少能保证量级正确。
中高电流段(1μA~10mA)用一台普通的五位半台式表就能比对,因为这些量级的电流对万用表来说很容易测。
电压测量部分用一只精密分压电阻网络,配合已知电压源做两点标定,线性和零点各标一次。
标定数据存在 MCU 的 Flash 里,每个量程存一组增益和偏置系数,测量时实时修正。这套流程走完,整机的绝对精度能达到 0.2% 左右,重复性能到 0.05%,对绝大多数器件测试够用了。
6. 踩坑记录:那些让人怀疑人生的现象
这一章是这篇东西里我最想写的部分,因为网上讲源表原理的文章很多,讲"为什么你的源表不工作"的几乎没有。
6.1 现象、原因、对策速查表
| 现象 | 最可能的原因 | 排查与对策 |
|---|---|---|
| 1nA 档读数随手指靠近而变化 | 高阻节点未屏蔽,人体感应耦合 | 加 Guard 环 + 金属屏蔽罩,罩子接模拟地 |
| 切换量程后读数缓慢爬行 | 介质吸收,PCB 或电容储电荷 | 切换后固定延时 200ms,软件多次采样平均 |
| 小电流档零点随时间单向漂移 | 热电势,板上有温度梯度 | 高阻区远离发热件,加均温铝板 |
| 输出阶跃时振荡 | 环路相位裕度不足,容性负载 | 输出串隔离电阻,分档调整补偿电容 |
| 大电流档正常、小电流档完全无响应 | 继电器未吸合或触点氧化 | 换干簧继电器,或增加触点清洁脉冲 |
| 读数有 50Hz/100Hz 周期性纹波 | 地线环路,模拟数字地混接 | 单点接地,模拟区独立地平面 |
| 长时间工作后精度变差 | 量程电阻温漂,机内温升 | 换低温漂电阻,加通风或降低功耗 |
| 换一块板子读数就不同 | 焊接残留、助焊剂漏电 | 无水乙醇 + 超声波清洗,涂三防漆 |
| 运放发热甚至烧毁 | 环路自激,或输出短路 | 检查补偿,加限流和 TVS 保护 |
| 测量值与台式表差一个固定比例 | 量程电阻实际值与标称值不符 | 逐档实测电阻值,写入标定系数 |
6.2 几条不成文的经验
第一条:出问题时,先怀疑脏,再怀疑线,最后才怀疑电路。我遇到的小电流异常,七成以上是 PCB 表面污染或接插件接触不良。拿无水乙醇擦一遍就能解决的问题,不要一开始就去改电路。
第二条:不要迷信仿真。环路稳定性在仿真里看着很好,实际装出来照样振。因为仿真里没有 PCB 寄生电容、没有继电器的分布参数、没有电源的等效串联电感。补偿参数必须在实物上试。
第三条:每个量程单独标定,不要相信"线性"。理论上量程之间是严格的比例关系,实际上每只电阻的误差、每个继电器的接触电阻、每条走线的寄生都不一样。老老实实八档各标一次,比事后找规律省事得多。
第四条:给整机足够的预热时间。我这台机器上电后前 20 分钟的零点漂移明显,30 分钟后才基本稳定。如果你的测试脚本要求高精度,测试前先让它空转半小时。
第五条:保留一路"调试输出"。我在板上留了一个缓冲后的采样点,可以直接接示波器看环路波形。这个不起眼的设计在调试阶段救了无数次命,强烈建议你也留一个。
7. 这台机器能干什么、不能干什么
装好之后我拿它测了一批东西,说几个真实的场景,你能大致判断它值不值得你花时间做。
测二极管正向 I-V 曲线,从 1nA 到 10mA 全程扫下来,曲线光滑,拐点清晰,和台式表比对误差在 0.3% 以内。测 MOS 管的亚阈值区,1nA 到 1μA 这段的斜率能稳定测出来,重复性很好——这一段恰恰是很多便宜源表测不准的地方。测光电传感器的暗电流,1nA 档能分辨出几十 pA 的变化,配合遮光盒做重复测量,数据可信。
不擅长的也很清楚:测高阻材料(10¹² Ω 以上)超出了它的能力,因为量程电阻只有 100MΩ;测大电容负载时环路响应慢,不适合做瞬态测试;没有内置的脉冲模式,做不了器件的脉冲 I-V;绝对精度受标定条件限制,不要拿它当计量标准用。
如果你要做的是低噪声、高阻、小电流这一类静态或准静态测试,这台机器的性价比相当高——物料成本控制在一台入门级台式表的零头,性能在常用量程上够用。但如果你需要的是产线级的重复性、或者需要严格的计量溯源,那还是老老实实攒钱买成品,DIY 的东西在一致性和可维护性上永远比不了工业化产品。
最后分享一个我在调试后期才想明白的道理:源表的精度不是靠某一颗贵器件堆出来的,是靠整条链路上每一个环节都不拖后腿。运放偏置电流大了 10 倍,量程电阻再准也没用;PCB 漏电大了 10 倍,运放再贵也没用;地线没处理好,前面所有的努力都白费。所以真正有效的做法不是找"最好的方案",而是找到那条链路上最弱的一环,把它补上,然后再找下一个最弱的,如此反复。我断断续续折腾三个月,大部分时间其实都花在这件事上。