用NI的数据采集卡实现简单电子测试之3——绘制二极管V-I特性曲线图
本文从本人的163博客搬迁至此。
接下来用USB-6009和LabVIEW实现对二极管最重要的特性曲线“V-I特性曲线”的测试和绘制。
一、什么是二极管V-I特性曲线
康华光版的《电子技术基础——模拟部分》这样介绍二极管的V-I特性:在二极管正向特性(在PN结两端施加N正P负的电压时的特性)的起始部分,由于正向电压较小,外电场还不足以克服PN结的内电场,因而这时的正向电流几乎为零,二极管呈现出一个大电阻,好像一个门坎。硅管的门坎电压Vth(又称死区电压)约为0.5V,锗管的Vth约为0.1V,当正向电压大于Vth时,内电场大为削弱,电流因而迅速增长。所谓“V-I特性曲线”是指正向电压和正向电流之间的关系。
二、测试电路
V-I特性曲线是二极管电流I和压降V之间的关系,只有一个自变量和一个因变量,是二维平面上的曲线。测试电路需要通过USB-6009的DAC控制流过二极管的电流,同时通过ADC测量其上的压降来绘制V-I曲线。和绘制三极管的输出特性曲线一样,可以通过由运放构成的反馈控制电路来控制流过二极管的正向电流,但测试普通二极管的V-I曲线时,一般要求测试电流达到100mA以上,无法由运放直接产生,需借用晶体管放大输出电流。我设计了图1所示的测试电路。

图1 二极管V-I特性测试电路
其中DI_CTL是由USB-6009的DAC输出的电流控制电压。D_test是被试二极管,采用常见整流二极管1N4007,其两端连接的AI3和AI7是USB-6009的ADC的一对差分输入端,用于测试D_test两端的电势差Vdt。Rd1是电流测试电阻,其作用是将流过被试二极管的电流ID转换为电压VD1,从而形成电流负反馈通路。为防止Rd1上功耗过大造成损毁,Rd1取值较小,仅为0.1欧姆。在500mA电流条件下,其上的压降也仅为50mV,很难与USB-6009的DAC输出的控制电压形成比较,因此需要先通过运放OP_dA构成的同相放大电路来将Rd1上的测试电压VD1放大成VD2。其增益G=(Rd3+Rd2)/Rd2=31.3倍,可将流过Rd1的500mA电流转换为1.56V输出电压。运算放大器OP_dB构成整个负反馈电路的误差放大环节,其作用是放大实际电流与USB-6009的DAC输出的控制电流的电压之间的误差,并将放大后的误差用于控制功率P沟道MOS管MOSP输出电流。根据负反馈系统的分析方法来分析图1的工作原理。
1、对运放OP_dB应用“虚短”的原则:OP_dA输出的VD2应该等于USB-6009输出的控制电压DI_CTL,当改变DI_CTL时,就可以改变流过D_test的电流ID。电流ID和电压DI_CTL之间的关系为:
ID=VDI_CTL/Rd1 (1)
2、上述电路使用虚短的前提之一是,整个系统是电流负反馈系统:但ID增加时VD1和 VD2也将增加,将使OP_dB的同相端电压增加,从而将使P欧沟道MOS管的栅极电压上升,并减少其打开的程度从而降低ID,并最终构成负反馈系统。
3、上述电路使用虚短的前提之二是,整个系统的稳定性。Cd1具有保证闭环稳定的作用,它可以降低高频信号的开环增益,从而整个系统在高频段发生自激振荡。
另外,这个电路值得注意的地方还在于,这是一个单电源电路,但电路的参考点却是“地电势”。具体体现在:
1、从Rd1上端得到的VD1是一个很小的电压,可能仅有几个mV,要使用只有单电源的运放拾取这个电压是有一定困难的,但LM358的共模电压可达负电源电压,因此能够拾取和放大VD1。
2、由于电流测试电阻Rd1安装在被测二极管和地之间,就不可能采用单端测量方式测量二极管上的压降,正好USB-6009提供了差分测量方式,将两个差分输入端分别连接在被测对象的两端,可以将两个输入端之间的共模电压抑制掉,从而直接得到被测对象两端的电势差。
三、测试程序
1、测试程序流程图如图2所示

图2 测试程序流程图
2、测试电流ID的设置
DACDI_CTL实现对测试电流ID采用公式节点实现DI_CTL和ID之间的换算,如图3所示:

图3 实现测试电流ID和控制电压换算的公式节点

图4 差分模式采集电压的程序框图

图5 设置测试电流程序框图

图6 读取二极管压降程序框图

图7 实际测试得到的二极管VI特性曲线
用NI的数据采集卡实现简单电子测试之3——绘制二极管V-I特性曲线图的更多相关文章
- 用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图
本文从本人的163博客搬迁至此. 想设计几个实验,既能展示NI的LabVIEW和数据采集卡的功能特点,又能够让普通电类专业本科学生可以理解,自然首先想到了<电子技术基础>课程的内容.第一个 ...
- 用NI的数据采集卡实现简单电子测试之6——数字I/O及测试平台
本文从本人的163博客搬迁至此. 前面几个例子介绍了NI数据采集卡的模拟输入和输出功能,本例则集中介绍USB-6009的数字输入输出功能.本例包括基本数字IO电路及在LabVIEW中控制USB-600 ...
- 用NI的数据采集卡实现简单电子测试之1——USB-6009简介
本文从本人的163博客搬迁至此. 几年以来,一直担任学校“虚拟仪器”课程教师.以前上课都以介绍LabVIEW编程为主,硬件实验一直没有开展.这次借“西部高校实力提升工程”的机会,学院采购了一批NI的数 ...
- 用NI的数据采集卡实现简单电子测试之5——压控振荡器的测试
本文从本人的163博客搬迁至此. 为了展示连续信号采集的方法,以其外部触发采集功能.我用运算放大器实现了一个最简单的低频压控振荡器(VCO),作为USB-6009采集的信号源.在LabVIEW下编写的 ...
- 用NI的数据采集卡实现简单电子测试之4——半导体温度传感器
本文从本人的163博客搬迁至此. 为了展示NImax(Measurement & Automation explorer)的强大配置功能,做了一个半导体温度传感器测试的示例. 一.半导体温度传 ...
- 简单理解ECMAScript2015中的箭头函数新特性
箭头函数(Arrow functions),是ECMAScript2015中新加的特性,它的产生,主要有以下两个原因:一是使得函数表达式(匿名函数)有更简洁的语法,二是它拥有词法作用域的this值,也 ...
- ? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作。那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别是fork、source和exec。 1. fork 即通过sh 脚本名进行执行脚本的方式。下面通过一个简单的例子来讲解下它的特性。 创建father.sh,内容如下: #!/bin/bas
? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作.那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别 ...
- 【转】linux设备驱动之MMC SD卡——核心层简单分析
原文网址:http://blog.chinaunix.net/uid-28685940-id-3889878.html /*************************************** ...
- python3 练手实例5 做一个简单电子时钟
import time,sys,os while(1): t = time.strftime('%Y-%m-%d\n%H:%M:%S',time.localtime(time.time())) pri ...
随机推荐
- redis介绍(7)高级用法
redis的过期策略以及内存淘汰机制 分析:这个问题其实相当重要,到底redis有没用到家,这个问题就可以看出来.比如你redis只能存5G数据,可是你写了10G,那会删5G的数据.怎么删的,这个问题 ...
- Django Redis存储session会话
通常redis都是用来保存session.短信验证码.图片验证码等数据. 在django上使用redis,先要安装一个包: pip install django-redis==4.8.0(我用的dja ...
- python匿名函数 高阶函数 内置函数 文件操作
1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...
- CCSUOJ评测系统
队名: BUGG 团队信息与分工: 开发: 周斌 B20150304221 舒 溢 B20150304209 测试: 许嘉荣 B20150304213 唐 浩 B20150304316 Product ...
- 使用Reflector反编译并提取源代码
Reflector是一个强大的.net 反编译工具,有时我们不止需要反编译源代码,更需要提取源代码. Reflector本身不自带提取源代码功能,不过可以借助插件Reflector.FileDisas ...
- 计算机网络通信、线程、tcp、udp通信及信号量等读书笔记
一.计算机网络 1.什么是计算机网络:把分布在不同地理位置的计算机与专门的网络设备用通信线路互相连成一个规模大.功能强的系统,从而使众多计算机可以方便地互相传递信息.共享软件.硬件.数据信息等.简单来 ...
- amazon interview
I'll be sitting for an Amazon interview in 3 months. Which website should I use to practice: SPOJ, H ...
- symfony学习笔记2—纯的PHP代码和symfony的区别
Symfony vs 纯PHP为啥symfony比普通的php文件访问要好?这一章我们写一个简单的php文件项目,然后组织它,你会发现为什么web应用会发展到现在这个样子.最后我们将学习symfony ...
- 关于for...in和for...of的思考
关于for...in和for...of的思考 在编写js代码的时候,我们经常性的要对数据集合进行遍历,Array.Object.以及ES6新属性Map.Set,甚至String类型都是可遍历的. 我们 ...
- redis key/value 出现\xAC\xED\x00\x05t\x00\x05
1.问题现象: 最近使用spring-data-redis 和jedis 操作redis时发现存储在redis中的key不是程序中设置的string值,前面还多出了许多类似\xac\xed\x00\x ...