25 December 2012

LTspiceに2SC1815やLM386等ユーザ定義のコンポーネントを登録する

リニアテクノロジー社が無償公開している電子回路シミュレータLTspice IVに、日本でよく使われているトランジスタやオペアンプなどのコンポーネントを組み込む方法。

■ LTspice IV のダウンロードとインストール

リニアテクノロジー社(日本語サイト)のDesign Simulation and Device Models より LTspice IV (LTspice IV.exe)をダウンロードして、管理者権限でインストールする。

初回起動時に、Tools メニューの Control Panel を開き、フォント設定を行う。
・Drafting Options - Font Properties でフォントサイズ等を設定 (Boldのチェックを外すと画面が見やすくなる)
・Netlist Options - Style/Conversion で Convert 'μ' to 'u' にチェックを入れる (文字化けを防ぐため)

■ トランジスタ 2SC1815や2SA1015 を追加する

LTspiceをインストールしたディレクトリの lib/cmp サブディレクトリ内の standard.bjd ファイルを編集する(定義を追加する)。

トランジスタの SPICE ディレクティブは半導体の仕様書から自分で書くこともできるが、非常にめんどくさいので、Googleで " SPICE 2SC1815 " というようなキーワードで検索すれば見つかるはず。今回は Spice Model というウエブページに書かれている値を採用。

電圧やコレクタ電流値が抜けているので、これは仕様書から自分で書き足した…。さらに、hFEの値(SPICEではBf値)も実際のものと微妙に違うので、こちらも典型的な値に変更。

そして出来上がったのが次のようなSPICE定義


*Low Noise Amp PC=0.4W Ic=0.15A Vcbo=60V Complementary 2SA1015
.model 2SC1815 NPN(Is=2.04E-15 Xti=3 Eg=1.11 Vaf=6 Bf=300 Ne=1.5 Ise=0
+ Vceo=50 Icrating=150m mfg=TOSHIBA
+ Ikf=20m Xtb=1.5 Br=3.377 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=1p Mjc=.3333
+ Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0)

.model 2SC1815-GR NPN(Is=2.04E-15 Xti=3 Eg=1.11 Vaf=6 Bf=300 Ne=1.5 Ise=0
+ Vceo=50 Icrating=150m mfg=TOSHIBA
+ Ikf=20m Xtb=1.5 Br=3.377 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=1p Mjc=.3333
+ Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0)

.model 2SC1815-Y NPN(Is=2.04E-15 Xti=3 Eg=1.11 Vaf=6 Bf=200 Ne=1.5 Ise=0
+ Vceo=50 Icrating=150m mfg=TOSHIBA
+ Ikf=20m Xtb=1.5 Br=3.377 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=1p Mjc=.3333
+ Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0)

ついでに、定番的PNPトランジスタの2SA1015も


*Low Noise Amp PC=0.4W Ic=0.15A Vcbo=50V Complementary 2SC1815
.model 2SA1015 PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=300 Ne=1.5 Ise=0
+ Vceo=50 Icrating=150m mfg=TOSHIBA
+ Ikf=0 Xtb=1.5 Br=10.45 Nc=2 Isc=0 Ikr=0 Rc=15 Cjc=66.2p
+ Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n Itf=0 Vtf=0 Xtf=0)

.model 2SA1015-GR PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=300 Ne=1.5 Ise=0
+ Vceo=50 Icrating=150m mfg=TOSHIBA
+ Ikf=0 Xtb=1.5 Br=10.45 Nc=2 Isc=0 Ikr=0 Rc=15 Cjc=66.2p
+ Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n Itf=0 Vtf=0 Xtf=0)

.model 2SA1015-Y PNP(Is=295.1E-18 Xti=3 Eg=1.11 Vaf=100 Bf=200 Ne=1.5 Ise=0
+ Vceo=50 Icrating=150m mfg=TOSHIBA
+ Ikf=0 Xtb=1.5 Br=10.45 Nc=2 Isc=0 Ikr=0 Rc=15 Cjc=66.2p
+ Mjc=1.054 Vjc=.75 Fc=.5 Cje=5p Mje=.3333 Vje=.75 Tr=10n Tf=1.661n Itf=0 Vtf=0 Xtf=0)

※ 参考 : トランジスタの増幅率

型番増幅率 hFE
2Sx9999-O70 〜 140
2Sx9999-Y120 〜 240
2Sx9999-GR200 〜 400
2Sx9999-BL300 〜 700

2SA : PNP型高周波用、2SB : PNP型低周波用
2SC : NPN型高周波用、2SD : NPN型低周波用

※ SPICEの構文説明
CIRCUIT ELEMENTS AND MODELS (カリフォルニア大学 バークレー校)

また、エクスター大学の解説「CIRCUIT DESCRIPTION」によれば、数値の指数表記は、1.0E-5 という表な表記以外に、次のようなものも可能

1.0×10121.0e121.0T
1.0×1091.0e91.0G
1.0×1061.0e61.0Meg
1.0×1031.0e31.0K
1.0×10-31.0e-31.0m
1.0×10-61.0e-61.0u
1.0×10-91.0e-91.0n
1.0×10-121.0e-121.0p
1.0×10-151.0e-151.0f

■ FET 2SK30 を追加する

LTspiceをインストールしたディレクトリの lib/cmp サブディレクトリ内の standard.jft ファイルを編集する(定義を追加する)。今回は Spice Model というウエブページに書かれている値を採用。


*2SK30 id(R 0.3-0.75 / O 0.6-1.4 / Y 1.2-3.00 / GR 2.6-6.5)
.model J2SK30y NJF(vto=-1.8v beta=0.75m lambda=0 cgd=2.6p cgs=8.2p mfg=TOSHIBA dev 10% LOT 60%)
.model J2SK30gr NJF(vto=-2.8v beta=0.75m lambda=0 cgd=2.6p cgs=8.2p mfg=TOSHIBA dev 10% LOT 60%)

■ オペアンプ LM358 を追加する

テキサス・インスツルメンツのLM358のページより、SPICE定義ファイル " LM358, LM358A PSpice Model " をダウンロードする。ダウンロードしたファイルを解凍すると、次のようなファイルが1個取り出される。

LM358.101

* LM358 OPERATIONAL AMPLIFIER "MACROMODEL" SUBCIRCUIT
* CREATED USING PARTS RELEASE 4.01 ON 09/08/89 AT 10:54
* (REV N/A) SUPPLY VOLTAGE: +/-5V
* CONNECTIONS: NON-INVERTING INPUT
* | INVERTING INPUT
* | | POSITIVE POWER SUPPLY
* | | | NEGATIVE POWER SUPPLY
* | | | | OUTPUT
* | | | | |
.SUBCKT LM358 1 2 3 4 5
*
C1 11 12 5.544E-12
C2 6 7 20.00E-12
DC 5 53 DX
DE 54 5 DX
DLP 90 91 DX
DLN 92 90 DX
DP 4 3 DX
EGND 99 0 POLY(2) (3,0) (4,0) 0 .5 .5
FB 7 99 POLY(5) VB VC VE VLP VLN 0 15.91E6 -20E6 20E6 20E6 -20E6
GA 6 0 11 12 125.7E-6
GCM 0 6 10 99 7.067E-9
IEE 3 10 DC 10.04E-6
HLIM 90 0 VLIM 1K
Q1 11 2 13 QX
Q2 12 1 14 QX
R2 6 9 100.0E3
RC1 4 11 7.957E3
RC2 4 12 7.957E3
RE1 13 10 2.773E3
RE2 14 10 2.773E3
REE 10 99 19.92E6
RO1 8 5 50
RO2 7 99 50
RP 3 4 30.31E3
VB 9 0 DC 0
VC 3 53 DC 2.100
VE 54 4 DC .6
VLIM 7 8 DC 0
VLP 91 0 DC 40
VLN 0 92 DC 40
.MODEL DX D(IS=800.0E-18)
.MODEL QX PNP(IS=800.0E-18 BF=250)
.ENDS

このファイルの .SUBCKT LM358 1 2 3 4 5 定義行のLM358という文字列が、定義呼び出しに使われるので、名称を変えたいのであればここを変更しておく。

この定義ファイル LM358.101 を、LTspiceをインストールしたディレクトリの lib/sub/my_lib サブディレクトリ内にコピーする。(my_lib というディレクトリは、他の名前でもいいが、ユーザが格納したファイルをまとめるために新しいディレクトリを作る)

次に

LTspiceをインストールしたディレクトリの lib/sym/Opamps サブディレクトリ内の opamp2.asy ファイルをコピーして、同じディレクトリに LM385.asy として保存する。

この LM385.asy をテキストエディタで直接編集するか、もしくはLTspiceを起動してFile - Open メニューより、ファイルの種類を「Symbols (*.asy)」を指定して LM385.asy を開く。そして、Edit - Attributes - Edit Attributes を開いて

20121225-ltspice-asyattr-edit.jpg

Value に定義ファイルの .SUBCKT で指定された文字列を、ModelFileには lib/sub からの相対ディレクトリ指定で定義ファイル LM358.101 の位置を設定する。

もしくは、シンボルファイル LM385.asy を次のように直接編集してもよい。

lib/sym/Opamps/LM385.asy

Version 4
SymbolType CELL
LINE Normal -32 32 32 64
LINE Normal -32 96 32 64
LINE Normal -32 32 -32 96
LINE Normal -28 48 -20 48
LINE Normal -28 80 -20 80
LINE Normal -24 84 -24 76
LINE Normal 0 32 0 48
LINE Normal 0 96 0 80
LINE Normal 4 44 12 44
LINE Normal 8 40 8 48
LINE Normal 4 84 12 84
WINDOW 0 16 32 Left 2
WINDOW 3 16 96 Left 2
SYMATTR Value LM358
SYMATTR Prefix X
SYMATTR Description Dual Operational Amplifiers LM358
SYMATTR ModelFile my_lib\LM358.101
PIN -32 80 NONE 0
PINATTR PinName In+
PINATTR SpiceOrder 1
PIN -32 48 NONE 0
PINATTR PinName In-
PINATTR SpiceOrder 2
PIN 0 32 NONE 0
PINATTR PinName V+
PINATTR SpiceOrder 3
PIN 0 96 NONE 0
PINATTR PinName V-
PINATTR SpiceOrder 4
PIN 32 64 NONE 0
PINATTR PinName OUT
PINATTR SpiceOrder 5

■ オペアンプ LF356やNJM2904なども追加する

上述の方法と同じように追加できるので、それぞれのメーカーより入手した定義ファイルを参考までに掲載する。

LF356

LF356.MOD

*//////////////////////////////////////////////////////////////////////
* (C) National Semiconductor, Inc.
* Models developed and under copyright by:
* National Semiconductor, Inc.

*/////////////////////////////////////////////////////////////////////
* Legal Notice: This material is intended for free software support.
* The file may be copied, and distributed; however, reselling the
* material is illegal

*////////////////////////////////////////////////////////////////////
* For ordering or technical information on these models, contact:
* National Semiconductor's Customer Response Center
* 7:00 A.M.--7:00 P.M. U.S. Central Time
* (800) 272-9959
* For Applications support, contact the Internet address:
* amps-apps@galaxy.nsc.com
* ///////////////////////////////////////////////////////////////////
* User Notes:
*
* 1. Input resistance (Rin) for these JFET op amps is 1TOhm. Rin is
* modeled by assuming the option GMIN=1TOhm. If a different (non-
* default) GMIN value is needed, users may recalculate as follows:
* Rin=(R1||GMIN+R2||GMIN), where R1=R2,
* to maintain a consistent Rin model.

*//////////////////////////////////////////////////////////
*LF356 Monolithic JFET-Input OP-AMP MACRO-MODEL
*//////////////////////////////////////////////////////////
*
* connections: non-inverting input
* | inverting input
* | | positive power supply
* | | | negative power supply
* | | | | output
* | | | | |
* | | | | |
.SUBCKT LF356/NS 1 2 99 50 28
*
*Features:
*Low input bias current = 30pA
*Low input offset current = 3pA
*High input impedance = 1Tohm
*Low input offset voltage = 1mV
*
****************INPUT STAGE**************
*
IOS 2 1 3P
*^Input offset current
R1 1 3 1E12
R2 3 2 1E12
I1 99 4 100U
J1 5 2 4 JX
J2 6 7 4 JX
R3 5 50 20K
R4 6 50 20K
*Fp2=20 MHz
C4 5 6 1.9894E-13
*
***********COMMON MODE EFFECT***********
*
I2 99 50 4.65MA
*^Quiescent supply current
EOS 7 1 POLY(1) 16 49 3E-3 1
*Input offset voltage.^
R8 99 49 50K
R9 49 50 50K
*
*********OUTPUT VOLTAGE LIMITING********
V2 99 8 2.63
D1 9 8 DX
D2 10 9 DX
V3 10 50 2.63
*
**************SECOND STAGE**************
*
EH 99 98 99 49 1
F1 9 98 POLY(1) VA3 0 0 0 1.5944E7
G1 98 9 5 6 2E-3
R5 98 9 100MEG
VA3 9 11 0
*Fp1=31.96 HZ
C3 98 11 49.9798P
*
*********COMMON-MODE ZERO STAGE*********
*
G4 98 16 3 49 1E-8
L2 98 17 530.52M
R13 17 16 1K
*
**************OUTPUT STAGE**************
*
F6 99 50 VA7 1
F5 99 23 VA8 1
D5 21 23 DX
VA7 99 21 0
D6 23 99 DX
E1 99 26 99 9 1
VA8 26 27 0
R16 27 28 20
V5 28 25 -.25V
D4 25 9 DX
V4 24 28 -.25V
D3 9 24 DX
*
***************MODELS USED**************
*
.MODEL DX D(IS=1E-15)
.MODEL JX PJF(BETA=1.25E-5 VTO=-2.00 IS=30E-12)
*
.ENDS
*$

NJM2904

NJM2904_2.lib

*$
* PART NUMBER:NJM2904
* MANUFACTURER: NEW JAPAN RADIO
* All Rights Reserved Copyright (c) Bee Technologies Inc. 2007
.Subckt NJM2904 OUT1 -IN1 +IN1 V- +IN2 -IN2 OUT2 V+
X_U1 +IN1 -IN1 V+ V- OUT1 NJM2904_SUB
X_U2 +IN2 -IN2 V+ V- OUT2 NJM2904_SUB
.ends NJM2904
.subckt NJM2904_SUB 1 2 3 4 5
c1 11 12 13.6603E-12
c2 6 7 29.000E-12
dc 5 53 dy
de 54 5 dy
dlp 90 91 dx
dln 92 90 dx
dp 4 3 dx
egnd 99 0 poly(2) (3,0) (4,0) 0 .5 .5
fb 7 99 poly(5) vb vc ve vlp vln 0 100.84E6 -1E3 1E3 100E6 -100E6
ga 6 0 11 12 47.124E-6
gcm 0 6 10 99 2.5472E-9
iee 3 10 dc 15.050E-6
hlim 90 0 vlim 1K
q1 11 2 13 qx1
q2 12 1 14 qx2
r2 6 9 100.00E3
rc1 4 11 21.221E3
rc2 4 12 21.221E3
re1 13 10 17.714E3
re2 14 10 17.714E3
ree 10 99 13.289E6
ro1 8 5 50
ro2 7 99 25
rp 3 4 503.0
vb 9 0 dc 0
vc 3 53 dc 2.2879
ve 54 4 dc .79791
vlim 7 8 dc 0
vlp 91 0 dc 20
vln 0 92 dc 20
.model dx D(Is=800.00E-18)
.model dy D(Is=800.00E-18 Rs=1m Cjo=10p)
.model qx1 PNP(Is=800.00E-18 Bf=333.70)
.model qx2 PNP(Is=870.6645E-18 Bf=276.50)
.ends
*$

NJM4558

NJM4558.lib

*$
* PART NUMBER:NJM4558
* MANUFACTURER: NEW JAPAN RADIO
* All Rights Reserved Copyright (c) Bee Technologies Inc. 2004
.Subckt NJM4558 OUT1 -IN1 +IN1 V- +IN2 -IN2 OUT2 V+
X_U1 +IN1 -IN1 V+ V- OUT1 NJM4558_SUB
X_U2 +IN2 -IN2 V+ V- OUT2 NJM4558_SUB
.ends NJM4558
*$
.subckt NJM4558_SUB 1 2 3 4 5
c1 11 12 7.7942E-12
c2 6 7 27.000E-12
dc 5 53 dy
de 54 5 dy
dlp 90 91 dx
dln 92 90 dx
dp 4 3 dx
egnd 99 0 poly(2) (3,0) (4,0) 0 .5 .5
fb 7 99 poly(5) vb vc ve vlp vln 0 7.0736E6 -1E3 1E3 7E6 -7E6
ga 6 0 11 12 575.49E-6
gcm 0 6 10 99 18.198E-9
iee 3 10 dc 30.051E-6
hlim 90 0 vlim 1K
q1 11 2 13 qx1
q2 12 1 14 qx2
r2 6 9 100.00E3
rc1 4 11 1.7684E3
rc2 4 12 1.7684E3
re1 13 10 44.035
re2 14 10 44.035
ree 10 99 6.6553E6
ro1 8 5 50
ro2 7 99 25
rp 3 4 1.8032E3
vb 9 0 dc 0
vc 3 53 dc 1.7979
ve 54 4 dc 1.7979
vlim 7 8 dc 0
vlp 91 0 dc 2.9500
vln 0 92 dc 2.9500
.model dx D(Is=800.00E-18)
.model dy D(Is=800.00E-18 Rs=1m Cjo=10p)
.model qx1 PNP(Is=800.00E-18 Bf=519.03)
.model qx2 PNP(Is=1.008900E-15 Bf=666.67)
.ends
*$

■ オペアンプのテスト回路を作成する

作成した回路は次のようなもの

20121225-ltspice-opamp-cir.png
この回路図のSchematicファイル(20121225-lm358-lf356-test.asc)をダウンロードする


File - New Schematic で新しい回路図を開き、図面上に部品や配線を配置していく。

20121225-ltspice-toolbar.png

部品を配置する前に Ctrl+R で部品を回転させることが出来る。また、配置された部品上で右クリックすると、部品の属性(抵抗値など)を設定できる。

全ての部品を配置し終えたら、Simulate - Edit Simulate Command で最低限 Stop time(解析を終了する時間)を設定する。0.1秒後であれば"0.1"もしくは"0.1sec"と入力する。
この条件を設定した後に、Simulate -Run を実行すると波形観察画面が開くので、波形観察画面上で右クリックして Visible Traces より観察したい値を選択すれば画面上に(オシロスコープの画面のような)波形が表示される。

20121225-ltspice-opamp-wave.jpg