十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

自制100V正向电压控制器:二极管Vf自动测试与IV曲线扫描

自制100V正向电压控制器:二极管Vf自动测试与IV曲线扫描 搞功率器件测试的同行对“正向电压”这四个字应该都不陌生。无论是二极管、整流桥还是MOSFET的体二极管正向导通压降Vf都是最核心的静态参数。我前阵子接手一批100V耐压等级的二极管的来料检验任务要求在不同电流下测量Vf并记录归档。手头虽然万用表、稳压电源、电子负载都有但每个样品都要来回接线、手动切换档位、抄写数据几百只测下来腰酸背痛数据还容易抄错。当时就萌生了一个念头干脆自己动手做一台100V正向电压控制器把可调压、可恒流、可读回电压电流这些功能集成到一台设备里电脑上发个指令就能自动测出一条完整的正向IV曲线。这个项目从需求分析到最终调试完成前后花了三周左右。这篇文章我会把整台设备的软硬件设计思路、关键电路原理、控制策略和实测数据完整记录下来也会把调试中遇到的几个典型坑和排查过程一并分享。如果你正准备做二极管参数筛选、功率器件正向特性测试或者想自制一台简易源表这篇内容应该能给你一些实打实的参考。1. 项目背景与需求拆解1.1 为什么没买现成源表而要自己搭先说清楚我当时的测试场景。样品是100V/1A左右的轴向二极管单批几百只。每种样品要测三个正向电流条件下的Vf100mA、500mA、1000mA要求电流稳定、电压读数精确到mV级别。用实验室现成方案的话就是稳压电源加限流、外串电流表、数字万用表并在二极管两端测压降。听起来不算复杂但实际干起来全是问题。第一接线太多。每次换样品要重新搭电路台面上到处都是线手一抖就容易把正负极碰到一起。第二数据记录靠手写几百个样品录Excel录到怀疑人生而且抄错一位小数点根本发现不了。第三普通稳压电源的电流分辨率不够。很多电源在100mA以下的档位精度差得离谱设1mA测出来的实际电流可能偏了20%这种精度去测小电流条件下的Vf基本没有意义。至于数字源表 Keithley 2400或者B2902A确实好用但价格摆在那里而且我这边的测试只需要单象限正向输出四象限源表的很多功能用不上。综合算下来自研一台专用的正向电压控制器反而是最合理的方案不需要双向输出不需要皮安级电流分辨率只需要稳定输出0到100V、能设定恒流、能精确读回电压和电流带一个串口让电脑自动采集就足够了。1.2 设计指标的边界划分自己定义设备指标的难点在于卡住“够用就行”这个边界。很多人做仪器喜欢什么都往上加最后每个功能都做不精。我一开始就明确列了一张需求表哪些必须做、哪些坚决不做都写得清清楚楚。必须做的功能包括输出电压0到100V电压设定分辨率优于2mV恒流模式分四档量程分别是0.1mA、1mA、10mA、100mA电压测量误差目标为正负0.2%读数正负10mV电流测量误差目标为正负0.5%读数正负半个字必须有软启动防过冲、短路保护和过热保护。暂时不做的功能包括负压输出、四象限工作、300mA以上的大电流、超过200V的高压扩展。把这些边界写清楚之后后面画电路板、写固件的时候就再也不用反复纠结某个功能要不要加整个设计过程顺畅很多。这也是我做这种小型仪器项目的一个经验边界越清晰项目越容易在预期时间内落地。2. 硬件架构与核心电路设计2.1 整体硬件分层设计思路整套设备从架构上分为四层电源层、控制层、模拟输出层和测量层。电源层用外置24V直流适配器供电板内通过DC-DC产生正负15V、5V和3.3V几路电源轨。正负15V给模拟运放和恒流源供电输出级最高需要到100V所以又单独用隔离升压模块把母线电压提升到大约120V给末级调整管供电。控制层选的是STM32F103C8T6主要是便宜、资料多、开发环境成熟。数模转换用了一颗LTC265716位分辨率、4通道、内置2.048V基准SPI接口。模数转换选了ADS125624位、8通道、内置可编程增益放大器在低速精密测量场景下性价比很高。模拟输出层特别注意了一点恒压CV单元和恒流CC单元做成了两个完全独立的环路输出端用继电器做物理切换而不是共用一套功放再切换反馈方式。为什么这么设计因为高压环境下如果CV和CC共用一套输出级模式切换时要同时改变反馈拓扑和环路参数搞不好就会有一个环路进入饱和恢复过程中输出端出现严重过冲。物理上把两套环路彻底隔开虽然多花了两只继电器和一路功放的成本但稳定性和安全性都大幅提升这个取舍我认为非常值得。测量层是电压和电流两路独立的采样链路。电压采样用精密电阻分压电流采样用换档采样电阻两路信号都经过缓冲运放后送入ADS1256。测量链路和控制链路在信号路径上严格分开避免控制环路的动态变化污染测量结果。2.2 高精度程控电压源的实现细节CV单元的信号链路是DAC输出0到2.048V参考电压经过两级放大到0到100V。第一级用精密运放OPA2277构成同相放大器增益固定为5倍输出0到10.24V。第二级是分立元件搭建的高压推挽放大器增益为10倍。有人可能会问为什么不用PA96这类现成的高压运算放大器自己搭推挽电路不是很麻烦吗答案很简单现成的高压运放价格太高而且这类器件通常带宽很宽在直流稳压场景下反而容易引入高频噪声需要额外做补偿。本项目需要的是低频高精度不需要MHz级别的带宽用OPA2277加中功率对管自己搭成本能省一大截性能也完全够用。第二级推挽放大器选用了MJE340NPN和MJE350PNP这对互补管。它们耐压300V最大电流500mATO-225封装便于散热在100V压差下工作很稳妥。输出级存在约0.7V的交越区我通过调节第一级运放的静态工作点给推挽级设置了约20mA的静态电流让放大器工作在接近甲乙类的状态交越失真对输出精度的影响降到了可以忽略的程度。反馈回路从输出端取信号经过由1MΩ和10.1kΩ精密电阻组成的分压网络分压比大约是1比100反馈信号送回第一级运放构成闭环。这里有个细节高压端串联的1MΩ电阻我特意选了大封装因为普通0603贴片电阻在100V电压下长时间工作可靠性和稳定性都堪忧。最终选的是2512封装的金属膜电阻单颗耐压500V余量足够。输出电压与DAC设定值的关系式是Vo Vdac乘以第一级增益5倍再乘以第二级增益10倍。实际使用时我在固件里做了一张多点校准表最终电压设定精度完全能控制到设计指标以内。2.3 数控恒流源与量程自动切换CC单元的核心是一个经典运放恒流源结构。DAC输出电压Vset加到运放同相端运放输出驱动达林顿管被测器件DUT串联在主回路中末端接采样电阻Rs到地。采样电阻上的电压Vs等于输出电流Io乘以Rs这个电压反馈回运放反相端。稳定时有Vset约等于Io乘以Rs所以输出电流由Io等于Vset除以Rs决定。这个恒流源的关键在于运放的共模输入范围和失调电压。我选的是OPA2277的另一个通道失调电压10微伏级别在最小电流档位下也能保证设定精度。达林顿管用MJE340加2N5551组合或者直接用集成的BDX53C视手上物料而定。我最终板子上用的是分立组合因为这样可以单独匹配散热。量程切换用了四只小型继电器切换四个采样电阻1kΩ、100Ω、10Ω、1Ω。配合DAC的0到2.048V设定电压理论上可以覆盖0到2.048A但我通过软件限制最大输出100mA所以1Ω档实际只利用了很小一部分留作设计裕量。采样电阻的选择是这个小项目里最容易踩坑的地方。普通的贴片厚膜电阻温漂普遍在100ppm每摄氏度以上100mA电流流过1Ω电阻产生10V压降、1W功耗电阻自身发热导致的阻值漂移会直接表现为设定电流不准。我全部换成了精密合金电阻温度系数控制在正负5ppm每摄氏度额定功率2W并且采用四线开尔文连接方式。也就是说功率电流从采样电阻的两端流过而运放检测电压从电阻内侧独立引线这样PCB走线上的铜箔压降就不会混入采样信号小电流档位的精度才有保障。2.4 测量采样链路与三级高压保护电压测量链路是并联在输出端的100比1分压网络分压点电压经过运放跟随器缓冲后送入ADS1256的第一通道。ADS1256内置PGA可以设置1、2、4、8倍增益。100V量程对应分压点最大1VPGA用1倍即可此时ADC的满量程约5V理论分辨率非常高。当然实际精度受制于基准漂移和布局噪声但最终做到mV级别完全没问题。电流测量复用恒流源的采样电阻跨在采样电阻上的电压经过缓冲后送入ADS1256的第二通道。这样设计有一个额外的好处恒流模式下电流设定和电流测量共用同一个物理电阻只要这颗电阻够准测量精度天然就有保障不需要再做二次校准。高压保护方面我做了三道防线。第一道是输出端并联TVS管SMBJ150A限制意外过压第二道是输出回路串联一颗500mA自恢复保险丝短路时能快速断开第三道是继电器驱动逻辑采用硬件互锁通过CPLD逻辑门保证任何时刻CV继电器和CC继电器不可能同时闭合。软件上还做了一层过压保护检测到输出电压超过设定值20%以上且持续超过10毫秒立即把DAC输出清零并断开输出继电器。这些保护措施在调试阶段非常重要因为高压电路出现异常时损坏的往往不是单颗元件而是从调整管到ADC的一整条链路。3. 控制策略与软件实现细节3.1 模式切换软启动与环路稳定策略硬件上CV和CC虽然物理独立但在同一个输出端子上做模式切换依然会遇到瞬态冲击的问题。举个实际场景CV模式下输出3.2V给一颗LED此时回路电流可能已经有几十毫安。这时切换到CC模式并把目标电流设为1mACC环路会尝试把电流从几十毫安往1毫安方向拉如果这个变化过程是阶跃式的LED两端的电压会瞬间从3.2V跳到接近3V的位置中间就可能产生一个超过允许范围的电压/电流尖峰。解决办法是我在固件里实现了一个参考输入斜率限制器。切换模式的操作并不是直接把DAC设定值写到目标而是先读取当前输出状态然后把DAC设定值按照预设的步进和间隔分100步逐步从当前值过渡到目标值每步间隔1毫秒。这相当于给CC环路和CV环路都提供了一个平滑的参考输入斜坡而不是一个阶跃信号。实测下来切换过程中的冲击电流被控制在1mA以内基本可以忽略。CV模式的输出电压控制也做了类似的平滑处理。从0V启动到目标电压时如果直接写DAC输出输出端的大电容充电会拉走很大的浪涌电流。我在启动时加了一个500毫秒的斜坡输出电压以约每秒200V的速率缓慢爬升这样即使接的是大电容负载充电电流也能控制在安全范围。3.2 数据采样滤波与准比率测量设计ADS1256是24位ADC但24位分辨率并不等于24位精度。实际能用到的有效位数取决于前端噪声、基准稳定性和布局质量。为了让读数稳定可用我在固件里做了两层处理过采样加滑动平均。ADC的数据率设置为30SPS每读一次大约33毫秒。我连续读取8次去掉一个最大值和一个最小值剩下6次取平均作为一组有效读数。这样单组读数的有效分辨率基本能稳定到亚毫伏级别而且能滤掉大部分工频干扰。实测下来在50Hz工频环境下不滤波时读数可能跳动几十个字滤波之后读数干净非常多。还有一个设计技巧值得展开说DAC和ADC共用同一个2.048V基准源构成了一种准比率测量结构。当基准电压因为温度变化发生漂移时DAC输出端的设定电压和ADC的测量基准会同步变化两者的误差在最终计算结果中会互相抵消一部分。这比单纯去追求一颗超低漂移的基准IC要省成本得多实际效果也非常好。这个思路是我从实验室一位老工程师那里学来的在自研仪表里特别实用。整机校准还是离不开标准仪器。我用的是一台Keysight 34461A六位半万用表做参考在100mA、500mA、1000mA几个电流点校准电流系数在50V和100V两个电压点校准电压系数。校准参数以多点插值表的形式存在EEPROM里掉电不丢失。每次开机自检的时候读取校准表输出的就是修正后的数值。3.3 串口通信协议与Python自动化测量设备通过UART转USB芯片CP2102与电脑通信通信协议设计得非常简单采用ASCII字符串命令。设定电压的命令格式是“VOLT 10.5”回车设定恒流的命令是“CURR 0.1”回车读取当前状态的命令是“MEAS?”回车设备返回一行类似“V:10.5023, I:0.000112”的字符串。Python上位机用pySerial库读写串口配合pandas做数据记录。下面这段代码是扫描一条完整IV曲线的核心循环实测从0V到100V共201个点跑完大约需要10分钟主要耗时在每步的稳定等待上import serial import time ser serial.Serial(COM3, 115200, timeout1) def set_voltage(v): ser.write(fVOLT {v:.3f}\r\n.encode()) time.sleep(0.05) def read_meas(): ser.write(bMEAS?\r\n) time.sleep(0.2) resp ser.readline().decode().strip() v_str resp.split(,)[0].split(:)[1] i_str resp.split(,)[1].split(:)[1] return float(v_str), float(i_str) data [] for v in range(0, 101, 1): set_voltage(v) time.sleep(0.5) v_read, i_read read_meas() data.append((v, v_read, i_read)) print(f{v:6.2f}V - {v_read:8.4f}V, {i_read:12.6f}A)这套自动化流程实测下来非常好用后来我甚至基于它加了一个小批量筛选程序自动判断每颗样品的Vf是否落在规格范围内输出PASS或者FAIL标记。测试报告直接生成CSV文件省去了大量人工整理的工作。4. 实测数据与效果评估4.1 常见二极管正向特性实测记录设备调通之后我先拿一批常见器件做了验证性测量包括1N4007、FR107、SS34以及被测主角一批100V/1A的轴向二极管。下面是在室温25摄氏度条件下测得的正向导通数据器件型号1mA正向压降10mA正向压降100mA正向压降1N40070.538V0.671V0.812VFR1070.562V0.697V0.851VSS340.241V0.342V0.486V100V/1A轴向管0.607V0.742V0.893V这些数据与器件手册给出的典型值对比误差都在20mV以内。SS34作为肖特基二极管正向压降明显低于普通PN结整流管这个差异符合物理规律也从侧面验证了设备测量的正确性。100V/1A轴向二极管作为主角整个批量测试过程中设备连续工作了三个多小时数据一致性很好。4.2 长时稳定性与精度对比验证为了验证设备本身的长期稳定性我在100mA档输出约5V电压给一个0.1%精度的电阻负载然后用34461A六位半万用表并联在输出端连续记录一个小时。结果显示电压读数的最大偏差为正负8mV标准差约1.2mV长时间工作没有出现明显的热漂移。这说明电源层和基准层的设计都经得起考验。电压设定精度方面设定50V时参考表实测为49.998V偏差负2mV设定100V时实测为99.996V偏差负4mV。这个精度水平在自制设备里已经相当不错。电流设定精度方面用精度0.5%的电流表监测10mA档实测10.003mA偏差只有0.03%0.1mA档实测0.101mA偏差约1%。小电流档位偏差较大的原因是采样电阻上的压降只有0.1V量级容易受到周围噪声的干扰这个水平在可接受范围内但还有优化空间。5. 常见问题与排查技巧实录5.1 恒压模式下电流读数无规律跳动现象是设定10V接一个1kΩ电阻负载理论上电流应该是10mA但设备读数一直在8到12mA之间跳动而且是无规律的。我先用示波器挂在输出端发现输出波形上有幅度约几十毫伏的高频纹波频率在几百kHz远超控制环路带宽。排查方向锁定到DAC的SPI通信上当时SPI时钟配置的是18MHz通信过程中数据线上的位跳变可能通过参考电压引脚耦合到了DAC输出。解决方案是把SPI时钟降到1MHz并在SPI通信期间临时屏蔽中断同时在DAC的电源引脚和基准引脚增加100nF加10uF的双级退耦电容。改完之后输出纹波基本消失电流读数稳定在正负0.05mA以内。这个经验说明高速SPI在高精度模拟电路里不一定合适低速、干净、屏蔽好才是第一原则。5.2 输出电压偏低且带载能力差现象是恒压模式设定30V空载时输出正常但接上100Ω电阻负载后电压掉到28V左右明显带不动。第一反应是末级推挽管电流能力不够但计算过应该有足够裕量。用示波器观察发射极波形发现输出电压从满载时的29V慢慢掉到28V且持续缓慢下降这说明不是瞬时压降而是热漂移在起作用。拆开检查后确认是散热片安装问题。MJE340和MJE350的散热片螺丝没拧紧导热硅脂也涂得太厚热阻变大管子温度升高后hFE下降输出能力跟着变差。重新清理硅脂并固定散热片同时加大了散热面积问题解决带载后电压稳定在29.98V。这个教训提醒我TO-225封装中功率管在长时间工作时散热设计不能有任何马虎尤其是在100V压差下哪怕只有20mA电流也是2W的功耗。5.3 模式切换瞬间产生电压尖峰现象是从CV模式切换到CC模式时示波器上能看到DUT两端出现一个约3V、持续几百微秒的尖峰直接把一批对ESD敏感的器件打坏了。排查之后发现问题出在继电器切换时序上。硬件上CV和CC是两个独立环路切换时先断开CV继电器再闭合CC继电器断开的瞬间输出端电容上的电荷没有泄放路径而CC环路进入时又试图建立新的工作点两者叠加就形成了尖峰。解决方案是在输出端增加一个放电电阻支路用CPLD控制逻辑确保切换模式时先让输出端子短暂接地放电约2毫秒再执行继电器切换。同时在继电器驱动逻辑上增加硬件互锁杜绝CV和CC同时导通的可能性。经过这样的修改模式切换时再也观测不到明显的电压尖峰之后的批量测试也没有再损坏过器件。5.4 低压段ADC读数跳字严重现象是输出电压设置在0到2V范围内时ADC读数跳动明显峰峰值大约正负20mV但在高电压段如50V以上读数却非常稳定。排查思路很直接ADS1256的输入是经过100比1分压后的信号0到2V对应分压点电压只有0到20mV这个量级已经接近ADC的地噪声和PCB地弹噪声而高电压段分压点电压高信噪比自然就好。解决方案分三步。第一步在固件里针对低压段使用PGA增益8倍后再采样等效把信噪比提升8倍第二步在ADC输入端增加一级由100Ω电阻和10nF电容组成的RC低通滤波器抑制高频噪声第三步固件中把低于2V的读数单独做加权平均处理。三项措施叠加后低压段的读数跳动被压缩到正负3mV以内达到了可以接受的水平。6. 项目经验总结与后续扩展思路这台100V正向电压控制器做完之后在我手上持续服役了大半年累计完成了上千只二极管的批量测试稳定性和数据一致性都经受住了检验。回顾整个项目有几点体会特别深。第一自制测量仪器最重要的是“可重复性”。同一颗器件上午测和下午测数据要能对得上这比单纯把误差从0.2%压到0.05%更有实用价值。第二高压电路调试必须有防护意识哪怕100V看起来不高在潮湿环境或者误操作条件下也足够造成伤害。第三别迷信高规格元器件把接地、退耦、布线这些基本功做好普通器件也能做出相当不错的性能。后续如果要扩展我计划把设备改成双极性输出或者加入脉冲测试模式给被测器件加几百微秒的窄电流脉冲来测热阻特性。V2版本还打算加入四线制开尔文测试功能彻底消除接触电阻对低压测量的影响。有同样兴趣的朋友欢迎多交流。
返回列表