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