IoTで使うPython入門 Step5-Python3 VISA⑧DMM Keithley 2000 +電源E3631A 2SC1815のVCE-IC特性

 前回、ベース電流をプログラムを書き換えて変更しながら、トランジスタ2SC1815のVCE-IC特性を測りました。2SC1815は小信号用トランジスタでは一番ポピュラです。

 ここでは、プログラムでベース電流を順次変化させて、1回の実行で、複数のVCE-IC特性グラフを描けるように修正します。

ベースの電圧を変える

 ベースの電圧を約1Vから5Vへ変化させると、下記のベースに100kΩが入っている回路では、4~44uAのベース電流が流れます。室温は29℃くらいです。

 プログラムです。

import visa
from time import sleep
import matplotlib.pyplot as plt

Keithley2000_6_Addr = "GPIB0::6"
Keithley2000_18_Addr = "GPIB0::18"
AgilentE3631A_Addr   = "GPIB1::10"
Keysight34461A_Addr  = "USB0::0x2A8D::0x1301::MY53216054::0::INSTR"
IwatsuVOAC7602_Addr  = "ASRL5::INSTR"

dataIc =[]
dataVc =[]
dataVb =[]
dataIb =[]
g = []
r = visa.ResourceManager()
Ic_keithley2000_6  = r.open_resource(Keithley2000_6_Addr)
Vc_keithley2000_18  = r.open_resource(Keithley2000_18_Addr)

Ib_keysight34461A  = r.open_resource(Keysight34461A_Addr)
Vb_iwatsuVOAC7602  = r.open_resource(IwatsuVOAC7602_Addr)

Ic_keithley2000_6.write("*RST;*CLS")
Vc_keithley2000_18.write("*RST;*CLS")
Ic_keithley2000_6.write(":CONF:CURR; DC:RANG AUTO")
Vc_keithley2000_18.write(":CONF:VOLT:DC:RANG 10")
sleep(1)
Ib_keysight34461A.write("*RST;*CLS")
Vb_iwatsuVOAC7602.write("*RST;*CLS")
Ib_keysight34461A.write(":CONF:CURR; DC:RANG AUTO")
Vb_iwatsuVOAC7602.write(":CONF:VOLT:DC:RANG AUTO")
Vb_iwatsuVOAC7602.write("INIT")
sleep(1)

print('--start--')

agilentE3631A   = r.open_resource(AgilentE3631A_Addr)

for baseVolt in range(1,7):
    agilentE3631A.write(":INST:SEL P6V")
    agilentE3631A.write(":TRIG:SOUR IMM")
    agilentE3631A.write(":VOLTage:TRIG " + str((float(baseVolt)+0.01)/1.0)) # Vb
    agilentE3631A.write(":CURR:TRIG 0.5")  # max 500mA
    agilentE3631A.write(":OUTPut ON")
    agilentE3631A.write("INIT")
    print('Base V', (float(baseVolt/1.0)) )
    sleep(1)

    agilentE3631A.write(":INST:SEL P25V")
    agilentE3631A.write(":TRIG:SOUR IMM")

    agilentE3631A.write(":VOLTage:TRIG 0.0") # Vc
    agilentE3631A.write(":CURR:TRIG 0.5")  # max 500mA
    agilentE3631A.write(":OUTPut ON")
    agilentE3631A.write("INIT")
    sleep(2)
    
    dataIc =[]
    dataVc =[]
    dataVb =[]
    dataIb =[]
        
    for CorrectorVolt in range(0,55):
        agilentE3631A.write(":INST:SEL P25V")
        agilentE3631A.write(":VOLTage:TRIG " + str((float(CorrectorVolt)+0.1)/10.0)) # Vc
        agilentE3631A.write(":CURR:TRIG 0.5")
        agilentE3631A.write("INIT")

        sleep(0.5)

        Ic = Ic_keithley2000_6.query(":READ?")
        dataIc.append(Ic)
        print('Corrector V=', (float(CorrectorVolt/10.0)), ' Ic=', Ic )
        Vc = Vc_keithley2000_18.query(":READ?")
        dataVc.append(Vc)
        Ib = Ib_keysight34461A.query(":READ?")
        dataIb.append(Ib)
        Vb_iwatsuVOAC7602.write("INIT")
        Vb = Vb_iwatsuVOAC7602.query(":FETCh?") ##
        dataVb.append(Vb)

        dataVoltageC = [float(f) for f in dataVc]
        dataCurrentC = [float(f)*1000 for f in dataIc]
        dataVoltageB = [float(f) for f in dataVb]
        dataCurrentB = [float(f)*1000000 for f in dataIb]

    print('\n', dataVoltageC, "V Vc")
    print(dataCurrentC, "mA Ic")
    print(dataVoltageB, "V Vb")
    print(dataCurrentB, "uA Ib")
    
    plt.plot(dataVoltageC, dataCurrentC, marker="o", linestyle='dashed', label=("Vbb=" + str(baseVolt)))
    
plt.xlabel("Corrector Voltage [V]")
plt.ylabel("Corrector Current [mA]")
plt.legend()
plt.grid()
plt.show()

#atoshimatsu
agilentE3631A.write("CURRent:TRIG 0")
agilentE3631A.write("VOLTage:TRIG 0")
agilentE3631A.write("INIT")
sleep(2)
print('--done--')

agilentE3631A.write(":OUTPut OFF")
Ic_keithley2000_6.write(":READ?")
Vc_keithley2000_18.write(":READ?")
Ib_keysight34461A.write(":READ?")
Vb_iwatsuVOAC7602.write("INIT:FETCh?")


 実行結果です。DUTは2SC1815-GRです。

 ベースの100kΩを10kΩに変更して、同じ測定をしました。コレクタの電流がたくさん流れます。

 特徴的なのは、

  • データシートより不飽和領域が大きい
  • Ib=532uAならVce=5V時に70mAぐらいなのが100mAとたくさん流れている

の2点です。

 DUTを2SC1815-Yに変えました。hFEがGRに比べて約半分くらいです。データシートのグラフと、ほぼ同じコレクタ電流になりました。

 DUTを氷水につけて観測しました。測定中の温度は12℃ぐらいです。ほんの少し、コレクタ電流が減少しました。

 温度変化より、hFEの違いのほうが、特性に大きな差が出ることがわかります。

直流電流増幅率hFE

 hFE = Ic / Ib

   (Ic=コレクタ電流、Ib=ベース電流)

 グラフから、読み取って、hFEを計算しました。

  Vce=5V、Ib=130uA Vce=5V、Ib=30uA
2SC1815-GR 308 300
2SC1815-Y 153 167

 データシートに書かれたhFEの分類。 O: 70~140, Y: 120~240, GR: 200~400, BL: 350~700