单片机是现代仪器仪表,家用电器,工业仪器等领域应用十分广泛的可编程器件之一,有着价格低廉、编程灵活、体积小、可扩展性强等优点。由于单片机功能的飞速发展,它的应用范围日益拓广,小到玩具,大到机器人,从数据采集,过程控制.模糊控制等智能系统到人类的日常生活都离不开单片机。
1 系统的硬件设计与实现
1.1 系统硬件的基本组成部分
系统主要可以划分为程序控制模块、电流控制模块、特性测试模块和显示模块等4大部分,系统基本框图如图1所示。
程序控制模块:采用STC89C52单片机为程序控制芯片,接受用户指令,控制各硬件部分协调工作,程控模块为核心控制模块。
电流控制模块:为了获得较高的控制精度,选用12位精度的DAC(Digital-to-AnedIogue Converters,数模转换器)TLV5613加上V/I转换电路输出稳定电流值加载到测量回路,用于控制二极管的工作电流。
特性测试模块:为了提高测量精度,采用12位精度ADC(Analogue-to-Digital Converters,模数转换器)AD574A,AD574A是一种单片高速并行12位逐次比较型ADC,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,因此普遍被应用于微电脑的接口设计上,在该装置中用于测量回路中被测二极管的电压,对二极管的好坏判断、极性判别和特性测试提供数据参考。人机交互:由按键组成,可以手动设置二极管电流、选择是否绘制伏安特性曲线等。预留串口:RS232串口,可通过串口向PC机返回测试数据,方便调试。显示模块:采用MSG—G12232液晶模块,该模块具有122x32的分辨率,功耗低,显示质量高,体积小、重量轻,具有8位数据接口可方便地与单片机连接,很适合用于显示系统的测试结果、伏安特性曲线等信息。
1.2 主要单元电路的设计
1.2.1 电流控制电路
电流控制电路采用数模转换器芯片TLV5613加上V/I转换电路构成稳定电流源,可通过单片机程序控制输出所需要的电流给测量回路供电以满足系统测试对电流的要求。在极性测试环节可给出合适的电流值,便于系统测量二极管电压值并据此判断二极管的好坏及极性;在特性测试环节可根据设定电流值增大或减小回路电流,使其与设定值一致;在伏安特性曲线绘制环节可给出由小到大逐渐增大的电流值便于系统采样绘图。
图2为将TLV5613输出的电压转换为稳定电流源的V/I转换电路,该电路具有恒流作用,TLV5613的输出电压接Vi端,可获得稳定的电流值Iout。当R1~R4精确匹配时,Iout和Vi的关系为:
其中Vi=0~5 V,R6=20 Ω,因此Iout=0~250 mA,可1 mA步进。经实测分析发现该电流源的V-I线性度非常好。若需要更大的电流,可通过修改硬件设计,增大DAC输出电压或减小风即可实现。因测试电流同时流过R6,当Iout=250 mA时,R6的功率为(0.25)2x20=1.25 W,此时R6发热明显从而影响测试精度,在实际电路中应用5只100 Ω电阻并联代替R6,以分散功耗提高测试精度。
1.2.2 特性测试电路
电压测量采用模数转换芯片AD574A,电路中将电流控制电路的Iout引脚接到AD574A的模拟电压输入引脚10VIN即可。
特性测试电路如图3所示,图中左侧为继电器控制电路,当CTRL端为高电平时,三极管VT1导通,VCC通过VT1加载到继电器5引脚,继电器动作,被测二极管接入极性转换,二极管极性匹配后,即可进行特性测试。
2 系统软件的设计
系统软件基于Keil开发,系统主要包括极性检测、特性测试和伏安特性曲线绘制3个模块。
极性检测模块主要用于检测二极管的好坏和极性,并为特性测试前的极性匹配提供极性参考,测试时先由电流控制模块给出合适电流值,再由特性测试模块测量二极管电压值,然后控制继电器动作转换二极管的接入极性再测一次,当被测二极管极性与回路外加电流方向与一致时,二极管导通,此时特性测试模块所测到的二极管电压值在0.6~3.6 V之间,而当被测二极管极性与回路外加电流方向相反时,二极管截止,特性测试模块测得其两端电压为10 V左右,ADC读数满量程(0x0FFF),据此可判断二极管的极性,若两种情况下测得的二极管电压值均为10 V左右或者均接近0 V,可判断为二极管已损坏。
特性测试模块用于测试二极管的伏安特性,即设定二极管的工作电流,测量其电压值,当进入特性测试环节后,先将二极管匹配极性接入测量回路,加载初始设定值(如50 mA),设定值在测量过程中可随时改变,由电流控制模块增大或减小回路电流值使其与设定值一致,然后由特性测试模块测量被测二极管的正向压降,并将测量结果在液晶上实时显示。
伏安特性绘制模块主要用于绘制二极管正向伏安特性曲线,进入程序后,由电流控制模块给二极管加载1 mA初始电流并逐渐增大直至最大,采样并记录二极管的压降,然后将这些值所对应的点依次在显示器上显示,便完成了伏安特性曲线的绘制。绘图过程中或绘图结束后,可随时选择结束绘图或退出伏安特性曲线显示程序。
主程序流程图如图4所示,测试时先将待测二极管接入测量回路并打开电源,程序自动开始检测二极管好坏和极性,检测完毕后根据检测结果进入二极管特性测试环节或报错,特性测试环节可测量和显示二极管的设定工作电流值及正向压降等信息,也可根据实际情况选择进入二极管伏安特性曲线绘制程序。
3 设计中遇到的问题及分析
在软硬件设计全部完成后的测试阶段,发现DA输出的电压值在某些点上与理论值不符,具有较大差异并呈现一定的周期性(且都是输出值比理论值小)。通过初步分析,认为是DA的控制字写入在某些点上不正确,于是将硬件电路上AD的模拟电压输入引脚断开并直接接在DA电压输出脚,并编写了测试小程序,将0~5 V每次递增0.02 V对应的控制字写入DA,用AD测其输出电压值并将结果通过串口返回PC,然后将电压理论值与实测值的差值全部导入Excel,然后在Excel中插入这些值的散点图,散点图如图5所示,0~250 mA电流值分别对应0~5 V的电压值(图中截取了0~45 mA这一段),纵坐标为输出电压理论值与实际值的差异值。
通过观察散点图,发现这些差异值点确实具有周期性,即每组都是8个点的差异值同时较大或较小,从现象上看,由于DA在某些点上能够正常输出电压说明控制端口正常,因而应该是DA数据端口上某一位出现故障,导致该位写到DA中的数始终是0或者1,而因为输出值比理论值小,所以判断是该位始终为零,当DA写数时,若该位本来是0,则电压正常输出;若该位本来是1,则错误的将0写入DA从而导致DA输入电压比理论值小。进一步分析,由于每组大差异值点都是8个,每次步进0.02V,8个点就是0.16V,而二进制数10000000B对应电压值为0.156V≈ 0.16V,因此故障为应该是D7位,从而怀疑D7位是否短路到地,通过测试发现该位连接完全正确,于是怀疑是DA内部寄存器故障或单片机故障,而DA内部寄存器故障无法检测,于是检测单片机是否正常,编写小程序令单片机所以数据引脚全部置1,通过万用表测试发现单片机P1.7口(即D7位)为0,其他引脚均正常,于是确定为单片机损坏,更换单片机重新烧写程序再测试,故障顺利排除。
4 系统测试
被测二极管采用1N4118,用2个优利德数字万用表UT33D作为测量仪器对系统进行测试,其中一个以毫安档(量程200 mA)与被测二极管串联,另一个以直流电压档(量程5V)与被测二极管并联,在不同的设定电流值下测量二极管的实际电流和电压,测试结果如表1。
通过测试结果分析可见,该测试器的测量结果可靠,误差较小,可满足对二极管的一般测试要求。系统误差来源主要有系统误差、DA转换误差和AD转换误差等,另外电流较大时R6虽然由5个电阻并联,但其发热对误差也有一定影响。
5 结束语
本设计以单片机STC89C52芯片为硬件核心部件,利用TLV5613、AD574A、12864液晶显示器等芯片或器件的相应特性,配合一定的软件算法,制作了基于STC89C52单片机的二极管特性测试器,实现了对二极管极性和特性的快速判断和测试。在设计过程中力求硬件电路简单,充分发挥软件编程方便灵活的特点来满足系统设计要求,预留串口可向PC返回测试数据方便分析,可用于一般的二极管特性测试场合。