【ワレコの電子回路講座】LTspiceで他社製SPICEモデルを使う【LM317】

この記事は約20分で読めます。
スポンサーリンク

先日投稿したLTspiceの記事は、なななんと、LTspice公式ツイッターさんにリツイートして頂いた。

さんがあなたのツイートをリツイートしました (2月7日)

大変に名誉な事だ。

 

でも、リツイートは有難いのだが、残念ながら『いいね!』では無かった。

あかん…

何か内容に間違いでも有ったのかと気になって寝られない。

それなら、ここはもう一つ記事を書いてツイッターでつぶやいてみるかなあと思って執筆したのが当記事だ。

多くのLTspiceユーザーが必ず直面する問題、それは他社製のSPICEモデルを使いたいのだが、SPICEモデルは入手したのだが、それをどうしたら良いのか分からない。

 

そんな疑問を解決する記事を書いてみた。

では本題に入ろう。

更新(2018/11/18)

この記事で紹介しているやり方よりも、もっと手軽に出来る方法があった。

それは第三章で紹介しています。

でも、まずは先頭から記事を読んで頂いて、サブサーキットとかネットリストの意味を理解して頂くのが良いだろう。

スポンサーリンク
ワテ推薦のプログラミングスクールで学ぶ
スポンサーリンク
スポンサーリンク

テキサツインスツルメンツのLM317三端子レギュレータをシミュレーションしたい

LM317 1.5A 可変正電圧レギュレータはワテも良く使う。

ここで使った。

【ワレコオーディオ】超多機能アナログ&デジタル再生システムを作成【金田式DAC No.213】
写真 掛け軸を拝見して精神統一を図り、その後で金田式DAC製作に取り掛かる予定の人(イメージ)ワテの場合、電子回路の設計は専門家ではないが、下手の横好きで自作するのがとても好きだ。特にオーディオ系が好きなのだ。「無線と実験」と言う雑誌も、時
LM317の特徴
  • 出力電圧1.2~37V
  • 出力電流1.5Aを供給できる
  • 正電圧可変型3端子レギュレータIC
  • オリジナル設計はナショナル セミコンダクター時代なのかな?

LM337 1.5A 可変負電圧レギュレータもある。

 

 

さて、そのLM317のスパイスモデルが下記のTIのサイトに公開されている。

引用元 http://www.tij.co.jp/product/jp/LM317/toolssoftware

四つのSPICEモデルがあるが、ここは四番目のやつを試してみた。

  1. LM317 PSpice Transient Model
  2. LM317 TINA-TI Transient Model
  3. LM317 TINA-TI Transient Reference Design
  4. LM317 Unencrypted PSpice Transient Model

ダウンロードすると一つのzipファイルが得られる。

slvmc40.zip

解凍すると、拡張子 .LIBのスパイスモデルが得られる。

LM317_TRANS.LIB

なおSPICEモデルの拡張子は、.LIB とか .cir とか、いろんなのがあるが、特に決まりはないみたい。なので .txt などでも良い。

さて、そのLM317_TRANS.LIBの中身は以下の通り。

* PSpice Model Editor - Version 16.2.0
*$
* LM317
*****************************************************************************
* (C) Copyright 2014 Texas Instruments Incorporated. All rights reserved.
*****************************************************************************
** This model is designed as an aid for customers of Texas Instruments.
** TI and its licensors and suppliers make no warranties, either expressed
** or implied, with respect to this model, including the warranties of
** merchantability or fitness for a particular purpose. The model is
** provided solely on an "as is" basis. The entire risk as to its quality
** and performance is with the customer.
*****************************************************************************
*
** Released by: WEBENCH Design Center, Texas Instruments Inc.
* Part: LM317
* Date: 11DEC2014 
* Model Type: TRANSIENT
* Simulator: PSPICE
* Simulator Version: 16.2.0.p001
* EVM Order Number:
* EVM Users Guide:
* Datasheet:SLVS044V亡EPTEMBER 1997乏EVISED FEBRUARY 2013
*
* Model Version: Final 1.00
*
*****************************************************************************
*
* Updates:
*
* Final 1.00
* Release to Web
*
*****************************************************************************
.SUBCKT LM317_TRANS IN ADJ OUT_0 OUT_1
R_R1         VXX IN  {RINP}  
R_R6         N242982 VYY  10 TC=0,0 
R_R5         VZZ VYY  {ROUT}  
E_ABM1         N242982 0 VALUE { MIN(V(VXX), (V(Vzz)+(ILIM*ROUT)))    }
R_R2         N222524 VXX  {PSRR*RINP}  
R_U1_R2         0 U1_N26728  1G  
E_U1_ABM5         U1_N31197 0 VALUE { MIN(V(U1_N26728),  
+ MAX(V(IN) - {DROP}, 0))   }
C_U1_C2         0 U1_N26728  1n  
R_U1_R1         0 U1_N08257  1G  
R_U1_R4         U1_N28933 U1_N26728  10 TC=0,0 
R_U1_R5         U1_N31197 N222524  10 TC=0,0 
C_U1_C3         0 N222524  1n  
X_U1_U2         IN U1_N12783 U1_N12664 U1_UVLO_OK COMPHYS_BASIC_GEN PARAMS:
+  VDD=1 VSS=0 VTHRESH=0.5
C_U1_C1         0 U1_N08257  {1e-6*SQRT(TTRN)}  
V_U1_V4         U1_N12783 0 {UVLO}
V_U1_V3         U1_N12664 0 {UHYS}
E_U1_ABM6         U1_EN_OUT 0 VALUE { IF(V(U1_UVLO_OK)> 0.6, {VREF}, 0)    }
R_U1_R3         U1_EN_OUT U1_N08257  {3.333e5*SQRT(TTRN)} TC=0,0 
E_U1_ABM4         U1_N28933 0 VALUE { V(U1_N08257)*
+  (ABS(V(OUT_0))/(ABS(V(OUT_0)-v(ADJ))))    }
X_U2         0 OUT_0 d_d PARAMS:
X_F1    VZZ OUT_0 IN VYY LM317_TRANS_F1 
C_C1         VXX IN  {1/(6.28*RINP*POLE)}  
C_C2         VXX N222524  {1/(6.28*PSRR*RINP*ZERO)}  
C_C3         0 VYY  1n  
.PARAM  psrr=7.9432e-4 uvlo=0 ilim=2.2 pole=15k rinp=1e7 zero=100e6 rout=0.4m
+  ttrn=1e-4 vref=1.25 uhys=0 drop=.5
.ENDS LM317_TRANS
*$
.SUBCKT LM317_TRANS_F1 1 2 3 4  
F_F1         3 4 VF_F1 1
VF_F1         1 2 0V
.ENDS LM317_TRANS_F1
*$
.SUBCKT COMP_BASIC_GEN INP INM Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5	
E_ABM Yint 0 VALUE {IF (V(INP) > 
+ V(INM), {VDD},{VSS})}
R1 Yint Y 1
C1 Y 0 1n
.ENDS COMP_BASIC_GEN
*$
.SUBCKT COMPHYS_BASIC_GEN INP INM HYS OUT PARAMS: VDD=1 VSS=0 VTHRESH=0.5	
EIN INP1 INM1 INP INM 1 
EHYS INP1 INP2 VALUE { IF( V(1) > {VTHRESH},-V(HYS),0) }
EOUT OUT 0 VALUE { IF( V(INP2)>V(INM1), {VDD} ,{VSS}) }
R1 OUT 1 1
C1 1 0 5n
RINP1 INP1 0 1K
.ENDS COMPHYS_BASIC_GEN
*$
.SUBCKT COMPHYS2_BASIC_GEN INP INM HYS OUT PARAMS: VDD=1 VSS=0 VTHRESH=0.5	
+ T=10
EIN INP1 INM1 INP INM 1 
EHYS INM2 INM1 VALUE { IF( V(1) > {VTHRESH},-V(HYS)/2,V(HYS)/2) }
EOUT OUT 0 VALUE { IF( V(INP1)>V(INM2), {VDD} ,{VSS}) }
R1 OUT 1 1
C1 1 0 {T*1e-9}
RINP1 INP1 0 10K
RINM2 INM2 0 10K
.ENDS COMPHYS2_BASIC_GEN
*$
.SUBCKT D_D 1 2
D1 1 2 DD
.MODEL DD D (IS=1E-015 N=0.01 TT=1e-011)
.ENDS D_D
*$

LM317のスパイスモデル(引用元 テキサツインスツルメンツのサイト)

さて、LTspice初心者の人は上記のLM317のスパイスモデルを見ても何のこっちゃさっぱり分からないと思う。

実はワテも良く分かっていない。

いわゆるネットリストと言う形式で、LM317のデバイスモデルが記述されている。

その中で、今は以下の部分だけを注目しておけば良い。

.SUBCKT LM317_TRANS IN ADJ OUT_0 OUT_1

サブサーキット定義の開始行だ。

 

LM317_TRANS がサブサーキットの名前

四つの端子(ノード)があり、その順番の情報がこの後で必要になる。

ノード名 Net List Order
IN 1
ADJ 2
OUT_0 3
OUT_1 4

表 LM317のノード名とNet List Orderの対応表

例えば、ノードINはネットリストで1番目の端子と言う情報だ。

 

LM317を使った典型的な定電圧回路の例

LM317のマニュアルから典型的な応用例を以下に引用する。

引用元 http://www.tij.co.jp/product/jp/LM317/datasheet/application_and_implementation#SLVS0445165

今回は、上の回路図をLTspiceでシミュレーションしてみる。

 

LM317のパッケージは沢山ある

ワテの場合、三端子レギュレータは以下に示すような従来からあるタイプ(TO-220)が好きだ。

TO-220 (KC)

引用元 http://www.tij.co.jp/jp/lit/ml/msot007b/msot007b.pdf

単位はミリでカッコ内はインチだ。

上のやつは上部の金属部分も出力端子(OUT)に接続されているのでヒートシンクに取り付ける場合には、絶縁体のマイカとかゴムシートを挟む必要がある。

あるいは、フルモールド型もあるので、そう言うのを買うと使い易い。

 

DCY (R-PDSO-G4)

最近では、こう言う表面実装に向いている小さな形状のパッケージも有る。

引用元 http://www.ti.com/lit/ml/mpds094a/mpds094a.pdf

ワテの場合、こう言うやつの半田付けは苦手なので、昔ながらのTO-220タイプのパッケージが好きだ。

TIのページを見るとLM317のパッケージはこれら以外に何十種類もある。

よくそんなに沢山の種類のパーツを在庫管理出来るもんだと感心する。

さすが、半導体メーカーの老舗、テキサスインスツルメンツだ。

まあ、世間では半導体メーカーと言えばインテルなんかの方が有名だが、ワテの場合、テキサツインスツルメンツ派だ。

なんのこっちゃ。

 

さて、さっそくこのLM317のスパイスモデルを使う手順を紹介したい。

LM317のスパイスモデルを使う手順

以下で示す手順は、あくまでワテ流の方法なので、正統派な手法かどうかは未確認だ。

それと、以下では、既存のDIP8シンボルを流用して使っているが、ゼロからシンボルを自分で描画してやるやり方でも良い。

とりあえず既存のDIP8シンボルを流用するほうが手軽なので、ここではそのやり方でやっているだけだ。

 

DIP8.asyファイルを今から作業で使うフォルダにコピーする

例えば、デフォルトのインストール先にあるファイルを

“E:\MyDocuments\LTspiceXVII\lib\sym\Misc\DIP8.asy

を、今から作業で使うフォルダ

“E:\2018-02-08-TIのLM317のSPICEテスト\DIP8.asy

などにコピーする。

DIP8.asyをダブルクリックで開く

あるいはLTspiceの空キャンバスにドラッグ移動でも良い。

さて、このDIP8.asyは汎用の8ピンDIPパッケージのシンボルだ。

 

以下では、これを4ピンに変更して使う。

下図が開くので、ハサミ(✂)アイコンを使って 8, 7, 6, 5 の四つの端子を削除する。

図 LTspiceのDIP8シンボルを4端子化する

中央の赤いアイコンも不要なので削除する。

なお、この赤い図形は単なる図形なので、シミュレーションには何ら影響しない。なので残していても影響はないが。

上図のようにまず赤い図形を手アイコンで空地に移動すると削除し易い。

 

下図のように長方形の右下の小さい赤丸を選択すると、任意の場所に移動出来る。

上図のように適当な大きさに変形する。

 

下図のように 1, 2, 3, 4 の四つのノードを適当な位置に移動する。 

 

同様に、Unnnや<Value>も移動する。

上図で数字の1の辺りで右クリックすると下図が開く。

 

Pin/Port Propertiesと言うウインドウだ。

図 Pin/Port Propertiesウインドウ

上図において、BOTTOMを選択して[OK]をクリックする。

この時、ついでにNetlist Order=1を確認する。

LM317のノード名とNet List OrderとLabelの対応を確認する

上の方で出て来たサブサーキット定義を再び掲載する。

.SUBCKT LM317_TRANS IN ADJ OUT_0 OUT_1

これらの情報をまとめると以下の表のようになる。

SUBCKT ノード名 Net List Order Label
IN 1 1
ADJ 2 2
OUT_0 3 3
OUT_1 4 4

表 LM317のノード名とNet List OrderとLabelの対応表

この表を見れば、今作成しているLM317図形にある四つのLabel(1, 2, 3, 4)がサブサーキットのノード名(IN, ADJ, OUT_0, OUT_1)のどれに対応しているかと言う事が分る。

もしPin/Port Propertiesと言うウインドウでNetlist Orderの順番を間違えると、当然だがシミュレーションを実行しても正しい結果にならない。

 

Label文字の配置を整える

1と言うLabel文字の配置をBOTTOMに変更すると下図のようになる。

同様に 2, 3 もBOTTOMに変更する。

4はRIGHTに変更する(下図)。

 

その結果、下図のように出来た。

Label文字列は自由に変更しても良い

上図において

1, 2, 3, 4

と言うLabel文字列は、単にこのモデルの端子に付けた名前なので、自由に変更しても良い。

INPUT, ADJUST, OUTPUT0, OUTPUT1

などとしても良い。

重要なのはLabel文字列では無くて、そのNetlist Orderなのだ。

Labelが2でもADJUSTでも良いが、そのLabel文字列を付けた端子はLM317のAdjust端子であるが、それはSUBCKT行のノードリストの二番目に相当するので、Netlist Order=2 に設定しておく必要がある。

.SUBCKT LM317_TRANS IN ADJ OUT_0 OUT_1

それさえ間違えなければLabel文字列は好きな名前で良い。

一方、上記の.SUBCKTの定義行における IN, ADJ, OUT_0, OUT_1 などの文字列は勝手に変えてはいけない。それらのノード文字列はSUBCKTの他の部分でも参照されているからだ。

勝手に変えるとSUBCKTで記述しているネットリスト定義が支離滅裂になる事は言うまでも無い。その結果、誰も考えた事が無い新しい回路の発見につながるかも!?

まあ、そんな事はまず有り得ないだろう。シミュレーションを実行したとたんに異常終了する可能性の方が高い。

DIP8.asyにSPICEモデルファイルとサブサーキット名を割り当てる

上図のようにデバイス上で右クリックする。

Attributes -> Edit Attributes (Ctrl+A)

を開くと下図が出る。

上図で Model File のところで左クリックすると入力可能になる。

その部分に ファイル名 LM317_TRANS.LIB を入力する(下図)。

同様に、Valueの部分にサブサーキット名 LM317_TRANS を入力する(下図)。

[OK]をクリックすると下図に戻る。

上図で文字列がはみ出しているので下図のように移動する。

また、部品中央のU字の線も不要なので削除しておく。

これで3端子レギュレータ(実際は四端子あるが)の作成が完了した。

作成した三端子レギュレータのシンボルファイルを保存する

ファイルの保存を実行する(下図)。

ファイル名は任意なので適当に付ける(下図)。

ここでは、LM317.asy とした。

これで、現在の作業フォルダ、

E\2018-02-08-TIのLM317のSPICEテスト\

の中身は以下の通り。

上図のように、二つのファイルが有れば良い。

さて、LM317.asyのファイル保存も完了したのでここで一旦LTspiceも全部終了する(まあしなくても良いのだが、終わるほうが分かり易いから)。

 

LM317.asyをダブルクリックでLTspiceで開く

先ほど作成したLM317.asyをLTspiceで開く。

次に、通常通りに空の描画キャンバスを開く。

そこで画面右上の[Select Component Symbol]アイコンをクリックする。手のアイコンの左隣りだ。

上図において、Top Directoryを変更する。

E:\MyDocuments\LTspiceXVII\lib\sym   デフォルト

E\2018-02-08-TIのLM317のSPICEテスト   今の作業フォルダ

の二つが選択出来るので、LM317.asyを保存した今の作業フォルダを選ぶ。

そうすると、LM317が選べるので選択すると下図が出る。

これで無事にLM317を描画キャンバスに配置する事が出来た。

 

あとは、普通に回路図を描画する。

上図のように描画した。

なおOUT0とOUT1は上図でも接続しておいたが、どちらか一方を使えば十分だと思う。

なぜならスパイスモデルの内部的にもOUT0とOUT1は接続されているようなので、上図でつながなくても良いのだ。

 

入力信号は

SINE(0 15 50)

だ。

振幅15VACで50ヘルツ。

それをダイオードと電解コンデンサで整流してINに入れる。

 

遷移解析を0.3秒行う

.tran 300m

 

いよいよシミュレーションを実行する。

遷移解析シミュレーションを実行する

人アイコンをクリックするとシミュレーションが実行出来る。

正常に実行出来るとエラーメッセージも何も出ずにグラフが開く。

任意の配線(ノード)を電圧プローブで触るとその部分の電圧波形をモニター出来る(上図)。

上図では、

赤色 入力信号15VAC(50Hz)

緑色 整流ダイオードD1の出口(C1 470uFのプラス極)

青色 OUT端子

の三つの波形をモニターしている。

 

100Ω負荷を入れてみる

適当に負荷を入れてみた。

出力電圧が9VDCくらいなので、100Ωだと90mAくらい流れる。

上の回路図を実際に作ったとして、90ミリアンペアも流せるのかどうかは未確認だ。

 

10Ω負荷だと出力電圧がガタガタ

抵抗が燃えるかも知れない。

各自いろいろ実験してみると良い。

もっとお手軽に他社製のモデルファイル(Netlist)を利用する方法

自称、LTspice初心者のワテであるが、先日、ふと見付けたのがこの記事だ。

アナログデバイセズ公式サイトの記事だ。リニアテクノロジー社を買収した親会社だ。

LTspice: Simple Steps to Import Third-Party Models | Analog Devices
It is possible in LTspice IV to create a new symbol from scratch for a third-party model but who has the time? Follow these easy steps to generate a new symbol ...

さて、この記事では、Create Symbolと言う機能で、ネットリストファイルからシンボルを自動生成する機能が説明されている。

こんな便利な機能が有るなんて、ワテは最近まで知らなんだ。

あかんがな。

兎に角、このCreate Symbol機能を使うと一瞬でネットリストファイルをシンボル化出来るがな。

面倒なポートの定義なども、ネットリストファイルの中にある .subckt行のノード名から自動生成される。
なんちゅう便利な機能なんだ。

まとめ

当記事では、テキサツインスツルメンツのサイトから入手したLM317三端子レギュレータのスパイスモデルをLTspiceで使う詳細な手順を紹介した。

既存の汎用DIP8パッケージのシンボル定義ファイルを流用して4端子のシンボルを作成した。

そのシンボルにLM317のスパイスモデルファイルとサブサーキット名を割り当てた。

そのシンボルをLM317.asyとしてファイル保存する。

あとは、そのデバイスを使って普通にLTspiceで回路図を作成すれば良い。

今後の予定

今回やった手法では、以下の三つのファイルは一つの作業フォルダに保管している。

ファイル 説明
LM317_TRANS.LIB スパイスモデルのファイル
LM317.asy LM317.asyファイル(シンボルファイル)
LM317実験回路.asc 三端子レギュレータの動作実験回路のファイル

しかしながら、一般にはスパイスモデルファイルやシンボルファイルはどこか共通のライブラリフォルダに保管しておいて、LTspiceで新たに回路図を描画する時に自由に利用出来るようにしたいだろう。

次回はそう言う手法を解説したい。

また、今回の回路図では、R1とR2の二つの抵抗値が固定値だったので、出力電圧も固定だ。

次回は、可変抵抗モデルを利用して、出力電圧を可変とするシミュレーションを実行する手法も紹介したい。

楽天、Yahooショッピングで電子部品をかなり安値で買う人向け

ワテ自作の便利サイト、

最安価格サーチ

クリックで開く

初回起動時のみ3秒くらい掛かりますがご了承下さい。

 

何が出来るかと言うと、

Amazon.co.jp

楽天市場

ヤフーショッピング

の三つのショッピングサイトを同時検索して、商品を価格の安い順に表示出来ると言う、お買い物支援サイトだ。

「最安価格サーチ」で、

「電解コンデンサ」をかなり安値で探したい人は こちらから >

「東芝 トランジスタ」をかなり安値で探したい人は こちらから >

ワテ渾身の力作のかなり安値ショッピングサイトです。

スポンサーリンク
ワテ推薦のプログラミングスクールで学ぶ
コメント募集

この記事に関して何か質問とか補足など有りましたら、このページ下部にあるコメント欄からお知らせ下さい。

Spiceシミュレーションエレクトロニクス
スポンサーリンク
warekoをフォローする
スポンサーリンク
われこ われこ

コメント