[元件] 用算法进行配对的晶体管图示仪

  [复制链接] 查看: 98013|回复: 330

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
发表于 2019-4-17 21:07 | 显示全部楼层
本帖最后由 suncand 于 2019-4-17 21:16 编辑

构思制作一款比较实用的晶体管图示仪的想法有一段时间了,也参考学习了网上不少前辈制作的。基本思路大致是:
1.        通过产生周期性阶梯电压,经过V-I转换电路产生不同等级的基极电流(Ib)
2.        在每一等级基极电流的期间,再产生另一个阶梯电压,作为集电极和发射级电压(Vce)
3.        测量此时的集电极电流(Ic),通过示波器绘制Ic-Vce@Ib的曲线。
4.        对于NPN,PNP管,只要改变Ib和Vce的极性(通常是通过开关转换)就行。
5.        有些电路甚至省去了Vce的阶梯波电压,直接利用50HZ交流电源经过半波整流后的波动电压作为Vce,也是可行的。

这样的思路简单,直接。可以用示波器看到管子的特性曲线。但是我考虑用图示仪的目的应该不仅是为了看管子的特性曲线,至少应该有以下几个:
1.        相对全面了解一个具体管子的特性。如果是一般特性,看厂家的datasheet就好了。那我们需要了解的特性至少应该包括:输入特性(Ib-Vbe@Vce),输出特性(Ic-Vce@Ib),放大系数(hfe@Ib);如果能再了解到输入/输出电容,温度系数等,那当然就更好了。但对于DIY,可能就太复杂了。这个目的,前面讲的通常的图示仪基本可以做到。
2.        可以进行管子的比较和配对。我想这是最实用的一个目的,也是日常用的最多的。但传统的图示仪,只能看曲线,要用来配对,还是非常繁琐的。如果可以进行同型配对和互补配对,而且不是用肉眼看,而是通过算法实现,那就可以大大减轻配对的工作量。
3.        可以进行动态分析。在特性曲线上,通过设置工作点,负载,可以了解工作点附近小信号和大信号的工作状况。最好能根据需求自动给出工作点建议。这就需要更多的算法和应用软件开发了。

前面两个目的是基础,也最实用。我构思的晶体管图示仪首先是可以测量基本的输入,输出特性。可以测量双极型晶体PNP,NPN,也可以测量P型,N型场效应管。以中小功率管为主。另一个更主要的目的是可以用来配对。包括同型配对和互补配对。考虑到图示仪结构的灵活性和以后的扩展性,采样通用的单片机系统和PC机配合的方式。充分利用单片机的灵活性和PC强大的数据管理和计算能力。下图是目前构思和制作的图示仪系统结构。

图1-1 总体架构.jpg

测试设备的硬件选用Arduino Nano作为核心的控制模块,外围使用成熟的DAC和ADC模块,配合V-I转换电路,Vbe和Ic的采样电路,已经提供Vc测试和外围电路的供电模块。测试设备上软件采样Arduino开发环境,C/C++编程。秉着能让软件做的事,尽量让软件做;能让PC干的活,尽量让PC干。单片机部分尽量运行简单的程序。
选择Arduino NANO的原因主要是简单。Arduino系列模块化程度高,外围接口电路丰富,开发调试环境也比较方便。AD/DA模块都有现成的Arduino开发包,可以减少底层调试的工作量。它的缺点一个是内存比较小,运行复杂的程序,尤其是数据量大的应用力不从心,另一个问题是AD精度只有10bit,比较低,没有现成的DA输出(只有PWM输出)。因此DAC/ADC都选择了独立的模块。好在这些模块都很成熟,应用简单,价格低廉,有现成的软件包。
虽然核心硬件模块比较简单,但还是实验的很多个版本。下图是目前在用的版本。

图1-2 硬件

图1-2 硬件


PC侧的应用软件包括晶体管信息维护和测量控制两套界面。考虑到辛辛苦苦测量的数据,如果不能保存下来,太可惜,而且如果要让计算机通过算法来进行配对,测量数据必须都保存在数据库中。选择了一个最轻量级的数据库-sqlite。不需要复杂的数据库管理系统,但可以实现大部分数据库应用。非常好用。
图形界面,接口控制,配对算法部分都使用Python 3开发。这也算是当前最热门的开发语言了吧。确实非常好用,比C/C++方便多了。
目前的主控制界面如下图:

图1-3 控制界面

图1-3 控制界面

从图中可以看到,编号为8550-1-2的管子和当前管子(编号为8550-1-3),的匹配度为97.9%。从实际特性曲线图上可以看到,两个管子的特性曲线几乎完全重合(实线为8550-1-3,虚线为8550-1-2)。

PC和测试设备之间采用USB虚拟串口进行通信。定义了专门的通信协议,包括握手,发送测试指令,接收测试结果等。也是尽量简单,但又保持了非常大的灵活性和扩展性。

今天先介绍总体部分吧。后续打算分模块陆续介绍。硬件和应用软件也在不断完善中,内容也会持续更新。

关于晶体管图示仪,也是一边制作,一边学习,不论是硬件电路,还是软件,数据库库,几乎把已经放下多年的知识又重新学习一遍。其中有不少弯路和不完善的地方,还希望大家能多提意见和建议。DIY的过程是最重要的。

评分

参与人数 3经验 +10 魅力 +10 收起 理由
TDA-7294 + 3 + 3 支持原创设计开发,做些套件造福大家
wsy888wsy + 3 + 3 很给力!
patch + 4 + 4 赞一个!

查看全部评分

0

主题

0

好友

1296

积分

侠之大者 当前离线

Rank: 6Rank: 6

UID
67302
帖子
1459
精华
0
经验
1296 点
金钱
1287 ¥
注册时间
2008-12-7
发表于 2019-4-17 21:56 | 显示全部楼层
支持楼主,期待结果。

10

主题

0

好友

281

积分
     

业余侠客 当前离线

Rank: 4

UID
73970
帖子
291
精华
0
经验
281 点
金钱
261 ¥
注册时间
2009-1-9
发表于 2019-4-17 22:00 来自手机端 | 显示全部楼层
制作成本能控制在200以下,就很适合业余爱好者了!

28

主题

2

好友

1887

积分
     

侠之大者 当前离线

Rank: 6Rank: 6

UID
815520
帖子
2350
精华
0
经验
1887 点
金钱
1838 ¥
注册时间
2016-6-10
发表于 2019-4-17 22:11 | 显示全部楼层
支持楼主,造福论坛,造福DIY,

2

主题

0

好友

246

积分

业余侠客 当前离线

Rank: 4

UID
618788
帖子
255
精华
0
经验
246 点
金钱
242 ¥
注册时间
2013-9-19
发表于 2019-4-17 22:25 | 显示全部楼层
楼主厉害,我曾准备抄locky_z大大的,但我的水平,上位机是没发搞了,最多能用串口导个excel出来就不错了,
懒,事多,一直搁浅没时间做。。。
没看到楼主用继电器,小电流和大电流切换呢?

0

主题

0

好友

446

积分

业余侠客 当前离线

Rank: 4

UID
273745
帖子
509
精华
0
经验
446 点
金钱
414 ¥
注册时间
2010-12-19
发表于 2019-4-17 22:29 | 显示全部楼层
楼主厉害,造福论坛,造福DIY.

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-17 22:35 | 显示全部楼层
单纯路过 发表于 2019-4-17 22:25
楼主厉害,我曾准备抄locky_z大大的,但我的水平,上位机是没发搞了,最多能用串口导个excel出来就不错了, ...

现在的版本主要针对中小功率管,Ic不超过500mA,用一对功率管扩流实现。Ib不超过5mA,用运放驱动就够了。以前的版本也考虑用继电器,主要是切换Ib,Vc的极性,可以工作,但后来改电平平移,放弃继电器了。总之,过程中纠结,调整的地方很多。这也是DIY的乐趣吧。

12

主题

3

好友

311

积分
     

业余侠客 当前离线

Rank: 4

UID
860497
帖子
270
精华
0
经验
311 点
金钱
258 ¥
注册时间
2019-3-19
发表于 2019-4-18 06:45 | 显示全部楼层
用过某宝买的一款。
冷态和热态会有差异,如果能设定一定的条件,让它热稳定后再测试,是否更好?特别是大功率管

10

主题

0

好友

484

积分

业余侠客 当前离线

Rank: 4

UID
109412
帖子
549
精华
0
经验
484 点
金钱
473 ¥
注册时间
2009-6-4
发表于 2019-4-18 09:39 | 显示全部楼层
这个厉害了,DIY制作最麻烦的事就是管子的配对,希望楼主早日制作成功,

2

主题

0

好友

204

积分
     

业余侠客 当前离线

Rank: 4

UID
861340
帖子
199
精华
0
经验
204 点
金钱
196 ¥
注册时间
2019-4-8
发表于 2019-4-18 11:54 来自手机端 | 显示全部楼层
这个要大赞

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-18 21:36 | 显示全部楼层
2.硬件设计

硬件设计希望在考虑适用性和灵活性的基础上尽量简单。为了可以测试PNP,NPN,P-FET,N-FET类型的中小功率管子,硬件上至少需要考虑以下能力:
1.        对于双极型晶体管(BJT)的PNP,NPN类型,基极采用电流源作为输入,集电极采用电压源作为输入,而且极性是可以变化的。对于PNP和NPN管子,起始的电流或电压都是0;
2.        对于场效应管(FET),栅极,漏极都采用电压源作为输入。电压源可以从负到正,或从正到负连续变化。由于FET栅极基本没有电流,可以不用考虑测试栅电流;
3.        对于中小功率双极型晶体管的Ice或场效应管的Ids,控制在500mA左右应该够用。Vce或Vds控制在+/-30V应该够用;
4.        对于中小功率双极型晶体管的Ib控制在5mA应该够用,场效应管Vg控制在+/-10V应该够用;


2.1测试电源的极性控制
首先考虑的是测试电源的极性控制方案。这对电路的结构影响最大。
以BJT为例,不管是Ib,还是Vc,在测试PNP和NPN管时,正好相反。最简单的方案是通过继电器控制输出电源的极性。同时也通过继电器控制采样电压的极性。这样做的好处主要是:
1)        无论是Ib,Vc的输出电路,还是Vbe,Ic的采样输入电路,只需要考虑单极性信号就可以。通过单片机的控制端口控制继电器的状态,就可以改变加载在被测管上的电源极性;
2)        大多数ADC和DAC只能处理单极性信号。采用继电器控制,同样的AD/DA转换可以有较高的精度(这主要是相对于后面要讲的电平平移电路)
但也有一些明显的缺点:
1)        AD输出信号要增加运放实现反向输出;采样电路也需要额外的电路实现正,反向放大输出。然后再经过继电器切换。电路上看着不那么简洁。
2)        如果需要电源在+,-之间进行快速切换,继电器的方案就不太可行(继电器的切换时间至少几个ms,而且机械开关也不允许快速频繁切换)。这种情况在测试晶体管特性时似乎不存在,但心里总有那么一些别扭。
最终在纠结中先做了一版继电器的电路,后来又尝试了电平平移电路。到目前相对稳定的第5版,一直用的是电平平移。或许以后还会继续完善继电器版本(谁知道呢?)。
目前的电平平移电路的基本思路是,将DA输出的信号减去2.5v的基准电压(DA/AD的参考电压都是5V),使得DA输出的0~5V电压变成-2.5V~+2.5V双极性信号,将采样的信号(需要控制在-2.5V~+2.5V之间)加上2.5v基准电压,使得输入AD的信号为0~5V。
在具体电路实现上,参考了网上的一篇介绍,如下图:

2-1 电平平移

2-1 电平平移


参考这里的介绍,电平平移电路效果比较好的是输入信号反向+基准的方式。这种方式噪声比较低。这个电路还有一定的放大作用。
如果令R1=R3=R, R2=R4=nR,带入Vout的计算公式,可得:
Vout = n(Vref – Vin)
在我的电路里,DA参考电压是5V,电平平移的参考电压是5V的一半,2.5V。因此要保证|Vin|<2.5V,Vref=2.5V。
电平平移电路使得正向电压和负向电压的动态范围从0~5V,压缩到了0~2.5V,对于正向电压,或者负向电压而已,DA/AD的精度相当于降低了一半。这也是考虑采样独立的更高精度DA/AD模块的原因。

2.2 V-I转换电路
由于BJT是电流驱动型元件,因此基极的输入,最好使用电流源。而FET是电压驱动型元件,栅极输入,需要使用电压源。目前使用的AD模块,输出的是电压。因此在测量FET的时候,可以直接将AD输出经过电平平移和放大后,作为栅极电压;而测量BJT时,AD的输出经过电平平移,还要经过V-I转换,将电压转换成电流输出。
下图是V-I转换电路的基本原理:

2-2 V-I转换原理

2-2 V-I转换原理

输入电压Vin经过V-I转换后成为电流源给RL供电。电流大小为Vin/Rs。
这个电路设计的非常巧妙,U1输出电压经过Rs后成为Vo,Vo又被U2缓冲后原样加到了U1的同相输入端,和输入电压Vin相加。因此U1的输出电压V1 = Vin + Vo, 流过Rs的电流Is = (V1-Vo)/ Rs = Vin/Rs。由于U2同相输入端是高阻抗,所以Is只能全部流入负载电阻RL。这里运放的反馈电阻都取一样的值R,Rs决定了输出电流的大小。下图是对V-I电路仿真的结果:

2-3 V-I转换仿真

2-3 V-I转换仿真

用TL074实现V-I转换。
•        TL074最大输出电流10mA,如果输入电压最高4V,则Rs最小为4V/10mA=400欧。
•        在+/-15V工作电压下,TL074最大输出电压幅度为13伏,可以计算出不同取样电阻下的最大电流和最大负载。如下表:

2-4 V-I转换测量数据

2-4 V-I转换测量数据


考虑Rs取1k,则:
•        最大输出电流为4mA
•        最大负载为2.25k
测试中,小功率管应该够用。

在实际应用时,负责产生Ib的DA模块的输出电压范围是0~5V,如果经过放大倍数是1倍的电平平移,输出电压范围为-2.5V~+2.5V,再经过V-I转换,输出的电流只有-2.5mA~+2.5mA。虽说对测量中,小功率晶体管,也够用(目前设定的测量小功率管Ib最大值为0.1mA,测量中功率管的Ib最大值为1mA,可以通过配置文件修改,但不能超过硬件电路允许的上限),但考虑到设计目标是5mA,因此还是采用2倍增益的电平平移电路。这样电平平移输出的范围为-5V~+5V,经过V-I转换,可以输出-5mA~+5mA。而电平平移电路输出再经过一级2倍增益的同相放大,可以得到测量FET的-10v~+10v栅极电压。

2.3 Vbe的采样电路
为了测量BJT的输入特性,在加载不同Ib的情况下,测量Vbe,就可以做出BJT的输入特性(Ib-Vbe)曲线。因此Vbe的采样电路主要就是测量V-I输出的电压值。
Vbe的电压范围一般是0~0.7V左右,考虑到PNP管和NPN管,Vbe的范围大概在-0.7V~+0.7V
在AD采样电平平移电路的输入范围(<|2.5v|)内,为了提高采样精度,可以对采样电压放大2倍,使得AD采样的输入电压在-1.6v~+1.6v范围内。
考虑到V-I转换是电流源。所以,如果没有负载,或者负载较大(前面计算过,Rs=1k情况下,最大负载为2.25k),V-I的输出电压会被钳制在靠近电源电压(实际是13V左右)。如果这个电压经过2倍放大(其实放大电路也放大不了,输出还是13V),再经过电平平移,会输出-10.5V的电压加载到AD模块上,有可能损坏AD电路。因此需要在AD输入端加保护电路。
这样,完整的Ib生成,采样电路如下图。用一片4运放(TL084)和一片双运放(TL082)实现。运放外围电阻(除了R204,R232外)尽量用高精度的,或者需要配对筛选。我的板子上用的是0.1%的金属膜电阻。

2-5 Ib电路

2-5 Ib电路


2.4 生成Vc的电路
Vc的电压摆幅要接近+/-30V,电流摆幅要接近+/-500mA,而单片机的工作电压只有5V,外围运放的工作电压设定在+/-15V,所以一定需要扩展输出电压和电流的电路。
参考了一些功放设计的资料,通过仿真,确定了以下电路结构。电路中电源电压VCCO+为+30V,VCCO-为-30V,运放工作电压+/-15V

2-6 Vc扩展电路

2-6 Vc扩展电路


运放U101D负责信号放大,Q101和Q102是两个工作在共发射极模式的互补电路,分别把正压扩展到+30V,负压扩展到-30V,然后再驱动Q103和Q104组成的扩流电路。R106和R105组成反馈网络,控制整个电路的放大倍数为(100K+10K)/10K=11倍。
从图中看,虽然是从运放的(-)端输入,但因为Q101和Q102是共发射极,输出信号被反向了,所以从整体来看,Vc电路是同相放大电路。
图中C101和C102要在调试中尝试。在输入10K方波的情况下,以不产生寄生振荡,又最大限度保留高频信号为准。

2.5 考虑Ic采样电路
Ic采样电路的确定也是比较纠结的部分。看其他前辈的制作,Ic通常是在高电位取样,然后通过下拉电阻,测试取样电阻两端的电压,计算电压差,再计算Ic。典型电路如下图:

2-8 Ic采样-2

2-8 Ic采样-2


好一点的设计是采样仪表放大电路,消除共模电压。我在之前的版本里,也采用了上图所示的电路。对采样电阻两端的电压分别采样,AD转换后,计算电压差,再计算电流。在电流比较小的时候,误差比较大。采样仪表放大电路,又比较复杂。在当前的版本里,我将取样电阻放在了地端。取值只有0.5欧。如下图所示:

2-7 Ic采样-1

2-7 Ic采样-1

一般情况下,取样电阻放在发射极似乎是不被推荐的。因为Ib,Ic都会流过采样电阻,会影响Ic的计算,而且采样电压还会影响Vb的测量。但经过仔细估算后,我觉得在发射极采样还是可以考虑的。
1.        在知道Ib的情况下,通过计算Ic = Vrs/Rs – Ib,可以消除Ib对Ic的影响;
2.        Rs取值非常小,只有0.5欧。假设Ic达到最大值500mA,在Rs上形成的压降为0.25V。也就是说Vb最多被提升0.25V,加上Vbe电压,不会超过1.1V,这样还在Vb的测量范围内(|Vb|<2.5V),不会导致Vb无法测量。
3.        在测量出采样电阻Rs的压降Vrs的情况下,可以通过计算Vbe=Vb-Vrs消除Vrs对Vbe的影响。
4.        测量Vrs之前,先对采样电压放大10倍。假设Ic的最小分辨率为1mA,则Vrs经过放大后=0.5*0.001*10=5mV; Ic最大为500mA, 则Vrs经过放大后=0.5*0.5*10=2.5V。刚好达到电平平移允许的范围。还是可接受的。

在发射极采样还有几个方面的好处:
1.        就是简单。比高电位采样电路简单很多,而且没有共模电压干扰;
2.        可以比较简单的实现Vrs自动增益控制。目前是固定的10倍,如果需要,可以改成自动量程,增加测量的精度。只需要通过电子开关(或FET)控制运放(-)端落地电阻的大小即可。
3.        现在的Rs可以提供一定的负反馈能力。在测量的时候有利于稳定Ic
4.        还有一个好处。在测量的初始状态,一般是管子截止的状态下,AD电路采样,计算出的Vrs值,基本就是运放的失调电压。利用这个值可以对计算结果进行自动修订。在小信号测量的时候非常有用。而且可以降低对运放的要求。

把电平平移电路加进来,就形成了完整的Vc输出和Ic采样电路。考虑Vc生成电路和AD采样电路尽量分开,采用两片双运放TL082实现。如下图:

2-9 Vc-Ic电路

2-9 Vc-Ic电路


今天先到这里吧,下次再继续完成硬件电路的其他部分。

评分

参与人数 1经验 +4 魅力 +4 收起 理由
patch + 4 + 4 很给力!

查看全部评分

4

主题

6

好友

251

积分

业余侠客 当前离线

Rank: 4

UID
17465
帖子
206
精华
0
经验
251 点
金钱
169 ¥
注册时间
2007-1-15
发表于 2019-4-19 13:09 | 显示全部楼层
记号,支持楼主,期待结果。

41

主题

0

好友

281

积分
     

业余侠客 当前离线

Rank: 4

UID
50069
帖子
1109
精华
0
经验
281 点
金钱
256 ¥
注册时间
2008-8-6
发表于 2019-4-19 14:39 | 显示全部楼层
实用的东西,期待量产

50

主题

13

好友

3565

积分

罗宾汉 当前离线

Rank: 7Rank: 7Rank: 7

UID
836217
帖子
3688
精华
0
经验
3565 点
金钱
3415 ¥
注册时间
2017-8-4
发表于 2019-4-19 14:55 | 显示全部楼层
你有多少管子要测啊,居然用到数据库存储?如果你真有那么多的数据,Python只能靠边站,SELECT一下会长时间没响应吧。
一般用Excel就足够好了,简单还直观。

172

主题

5

好友

4173

积分
     

罗宾汉 当前离线

DIY数据党

Rank: 7Rank: 7Rank: 7

UID
1244
帖子
5020
精华
0
经验
4173 点
金钱
3379 ¥
注册时间
2004-8-18
发表于 2019-4-19 17:34 | 显示全部楼层
这个好,等待楼主的商业化的成品,肯定搞一个。
头像被屏蔽

7

主题

0

好友

721

积分
     

禁止访问 当前离线

UID
820726
帖子
684
精华
0
经验
721 点
金钱
677 ¥
注册时间
2016-10-6
发表于 2019-4-19 18:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-19 20:18 | 显示全部楼层
本帖最后由 suncand 于 2019-4-19 20:24 编辑

继续硬件部分

2.6 参考电源的选择

在当前的电路里,DAC模块的参考电压就是其工作电压。标称值为5V。因此电平平移参考电压为2.5V。这个5V电压的稳定性决定了DA转换的稳定性,而2.5V的稳定性会影响电平平移电压的0点电压。
在试验过程中,尝试了几种方案:

方案一:利用单片机的5V电源给DAC供电,用一片高精度的基准电压LM4040做2.5V参考电压
这个方案有些问题。首先单片机的5V电源是通过电脑USB口提供的。本身的稳定度就不够高。其次,也不能保证这个5v就是LM4040产生的2.5V的两倍。这个方案很快放弃。
还有一个无奈的原因。我不敢保证从某宝上买的LM4040是真货。越是好的东西越可能是假货。所以我的电路里尽量采用不值得造假的普通元件。

方案二:利用TL431制作5V并联稳压源,经过电阻分压产生2.5V参考电压
这个方案是最简单的方案。只需要一片TL431,一个限流电阻,两个分压电阻就可以搞定5V电源和2.5V参考电源。当然2.5V参考电源要通过一个运放进行缓冲。电路原理如下图。
图2-10 TL431 电路.jpg
这个电路本来被我寄予厚望。但实际测试的时候,发现当给5V电压加100欧负载电阻时,电压下降幅度有50mv左右,2.5V参考电压也有30mv的下降。虽然电路中5V的负载不会那么重(2片DA和一片4通道AD),但还是对TL431的性能表示担心。换了一片试,结果差不多。难到TL431也有假?

方案三:利用7805+有源伺服产生高稳定的5V电压,再通过电阻分压产生2.5V电压
考虑到5V电压和2.5V电压对电路的重要性,继续尝试了比较复杂的电路。就是7805+运放有源伺服,再通过电阻分压。分压后的2.5V经过运放缓冲后作为电平平移的参考电压。电路如下图:
图2-11 5V-2.5V基准.jpg

这个电路在驱动能力比较强,比TL431的稳定性高一个数量级。电源的波纹可以控制在1~2mv。目前电路里用的就是这个电路。用一片7805和一片TL082实现。其中R012和R013采用高精度电阻。

2.7 单片机及AD/DA模块
这部分电路非常标准。和搭积木类似。电路本身对转换速率要求不高,主要就是选择性价比了。
单片机模块选用Arduino NANO。采用ATmega328微处理器。结构简单,开发容易,外围模块丰富。是Arduino系列里几乎是最小巧一个。通过mini USB仿真串口和PC通信。
图2-12 Arduino Nano.jpg

Arduino有丰富的I/O端口。在之前的版本里,用这些端口控制继电器,控制开关非常方便。但在目前的电路里几乎都没有用。留着以后扩展使用吧。

Arduino自己的DA端口是脉宽调制输出,可以用来控制电机,灯泡等功率型的外设。但不支持模拟电压输出。为了生成Ib和Vc,必须单独配DA模块。我在电路里选择的是12位的MCP4725单通道DA模块。通过I2C接口与Arduino通信。这个其实不是理想选择,主要是这个模块的地址选择是要在模块上焊接不同的引脚实现,一旦选择,就不能动态改变。这是不够灵活的地方。但考虑到它非常小巧,精度也可以,还有就是性价比很高。因此,还是一直在用。电路里选用了两片MCP4725,一片输出Vg/Ib,另一片输出Vc
图2-13 MCP4725.jpg

Arduino自带8路模拟输入,可以进行AD转换。但精度只有10bit。以内部5V为参考电压,分辨率为5/1024=4.89mv。在使用电平平移电路后,正负方向只有512等级。分辨率怕不够用。无意间看到Arduino一款常用的AD模块ADS1115,16bit,4通道,也是I2C接口。某宝商的价格又非常便宜(一片不到10元)。感觉不用白不用。所以AD部分就选用了ADS1115模块。
图2-14 ADS1115.jpg

AD1115的四路通道用了三路。一路采集Vbe,一路采集Ic,另一路采集2.5V参考电压。这样在应用程序里可以自动判断电平平移的0电位电压,乘以2就是DA模块的参考电压。参考电压除以2的12次方,可以计算出实际的DA分辨率。

2.7 电源部分
最后是电路的电源部分。这部分没有什么特殊的。
1.采用双24V的电源变压器,通过LM317和LM337电路输出+/-30V的工作电压;这个电压主要是供Vc的输出使用。
2.+/-30V的电压通过限流电阻,接到LM7815和LM7915组成的电路,输出运放工作的+/-15V工作电压。
3.从+15V电压,经过限流电阻接入LM7805+主动伺服电路,生成5V工作电压,供2片MCP4725及一片ADS1115工作。5V电压经过电阻分压,运放缓冲后,成为2.5v电平平移的参考电压;
4.Arduino NANO的工作电压由PC机通过USB接口提供。

2.8 硬件整体电路
最后,上完整的电路原理图和印刷版图:
图2-15 电路图.jpg
图2-16 PCB 电路图.jpg


头像被屏蔽

30

主题

37

好友

3077

积分
     

禁止发言 当前离线

UID
717420
帖子
3287
精华
0
经验
3077 点
金钱
2970 ¥
注册时间
2014-6-23
发表于 2019-4-19 20:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-19 20:26 | 显示全部楼层
wsy888wsy 发表于 2019-4-19 20:23
这可解决了DIY晶体管配对的难题,楼主还有多余的板吗?

多余的板有,但还没有定型,每个版本都有些调整。
硬件电路只是这个图示仪的一部分。关键的还是应用软件。

14

主题

5

好友

467

积分
     

业余侠客 当前离线

Rank: 4

UID
174202
帖子
306
精华
0
经验
467 点
金钱
289 ¥
注册时间
2010-2-17
 楼主| 发表于 2019-4-19 20:42 | 显示全部楼层
chipset0418 发表于 2019-4-19 14:55
你有多少管子要测啊,居然用到数据库存储?如果你真有那么多的数据,Python只能靠边站,SELECT一下会长时间 ...

用数据库的好处是操作简单,扩展性好。在测量过程中,经常会对一个管子反复测量,配对计算,涉及到对数据库里数据的增删改查。
当然,目前考虑的方案主要是操作性要好,扩展性好。性能还不是首要考虑的。其实sqlite也不适合大量数据。真有这方面问题的时候再优化吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc.

返回顶部