2020年8月22日土曜日

LTSpice XVIIにOP-AMPを追加

ここんとこ纏まった時間が取れず工房活動が停滞気味で、
この内容でも数日かかってしまっております(T_T)

さて、LTSpiceは、どうやら2013年から使っておりますが、
たま~にしか使ってなくてWidowsXP機にしか入れてませんでした。
2014年にバージョンアップしたっきりないので、これです(-_-;)

で、やっとWindows10のマーティーPCに
Version VII 64bit版をInstallしました。
Install自体はごく普通でトラップもなかったので、記録は割愛です^^;

***2023.8.14追記***
[Windows7、8、10の64ビット版をダウンロード]バージョン17.1.10
から入手して別のMarty-PCに再Installしました。
「モデルの更新日:2023年8月12日」とあるのでホカホカの出来立てでした(^^)

Version情報はこれ
上の画面では「LTspice XVII・・・」は、サポート終了になってて
バージョン表示が「XVII」⇒「17.1.10」に変わっています。
ローマ時代は終わって、アラビア時代になるってことかな?
***追記ここまで***

起動画面はこれです。

ちなみに、WinXPの時のVersion IVは、これ!
違いは背景画像の有無だけで、アイコン類が変わってないので一安心です^^;

使い方は、専門のサイトにお任せするとして
ちょっと、OP-AMPのLM358を使いたくてModelを追加しましたが
案の定、手こずってしまったので記録しておきます(-_-;)

元祖はNS(Natioanl Semiconductor)ですが、今はTI製です。
わけあって、まずはNS製のSPICE Modelで登録します。
ちと探すのに苦労しましたが
ここに「LM358.mod」というファイルがありました。

TEXTファイルにコピペして、1箇所修正します。
変えなくてもいいようなのですが
マーティーは、*.lib名と同じにしたいのと「/」記号が気になるので
赤線部「LM358/NS」を

LM358_NS」に変更して
ファイル名「LM358_NS.lib」で保存します。
元のリンクが切れる可能性が高いので、
このさき登場する追加したModelとシンボルファイルを
Google Driveのここに入れてます。

んで、追加するわけですが~
ここでトラップに引っかかりました(-_-;)
てっきりInstallフォルダに入れるかと思いきや
Documentフォルダ配下に入れるんですね~
マーティーPCでは、
C:\Users\marty\Documents\LTspiceXVII\lib\sub\
配下に「mylib」フォルダを作成して
そこに「LM358_NS.lib」を入れなければならないのでした。
***2023.8.14追記***
LTSpice ver. 17.1.10では、
C:\Users\marty\AppData\Local\LTspice\lib\sub\
配下に「mylib」フォルダを作成する。
***追記ここまで***

次にシンボルを作っていきます。
LTSpice XVIIを起動して、[File]-[Open]で
C:\Users\marty\Documents\LTspiceXVII\lib\sym\OpAmps
の「opamp2.asy」を開きます。
注:これもDocumentフォルダ配下です。
***2023.8.14追記***
LTSpice ver. 17.1.10では、
C:\Users\marty\AppData\Local\LTspice\lib\sym\OpAmps
***追記ここまで***

これが開きます。

[Edit]-[Attributes]-[Edit Attributes]して

各項目に入力します。
■[SpiceModel]:
 先のLM358_NS.libを入れたフォルダを指定して
 「mylib\LS358_NS.lib」と入力します。
■[Value]:
 回路図に表示されるシンボル名(何でも可)
■[Value2]:
 LM358.lib内の「.SUBCKT」の後の名前と一致させます。
■[Description]:説明(何でも可)

シンボルができました。

次は、Pin Assignの確認です。
[View]-[Pin Table]すると

これが、出ます。
LM358_NS.libに記述されている番号なのですが、
In+、In-、V+、V-、OUT1、2、3、4、5順番で並びます。
最初、LM358_NS.libの中のPin番号と勘違いして悩まされました(-_-;)

「LM358_NS.lib」の「.SUBCKT」の行
1  2  99  50  28の意味は、コメントに書いてあり、
順番は、In+、In-、V+、V-、OUTになっいて
上の表と”順番”が一致してないといけないようです。
順番が違っている場合は、上の表の数字を変えて順番を合わせます
1  2  99  50  28の数値を上の表に入力してはダメなんですね(-_-;)
*.lib内の1  2  99  50  28の数値を変えると動かなくなります。
後の方に変えた場合の挙動もやってます(-_-;)

[File]-[Save As...]して

libと同じ名前「LM358_NS.asy」で保存します。
フォルダは、
C:\Users\marty\Documents\LTspiceXVII\lib\sym\OpAmps
になります。
***2023.8.14追記***
LTSpice ver. 17.1.10では、
C:\Users\marty\AppData\Local\LTspice\lib\sym\OpAmps
***追記ここまで***

右上の小さい[X]でシンボルの編集を閉じます。

試しに、5V片電源で非反転増幅器でシミュレーションしてみます。
ここまで随分時間がかかりましたが、上手くいきました\(^o^)/

ここで、設定を間違った体験(-_-;)を記録しておきます。
「LM358_NS.lib」内の「.SUBCKT」の後の数値に合わせて

[Spice Order]の番号を変更すると
シミュレーション時にこのエラーが出ます。

逆に「LM358_NS.lib」の方を
[Spice Order]の番号、1~5に合わせると

シミュレーションのエラーは出ませんが、まともな動作にならず
OUTが一直線で-1.4VのDCになりました。

つまり、*.asy の[SpiceOrder]と *.lib の.SUBCKTの数値は
合わせてはダメで、独立した意味を持っています。
In+、In-、V+、V-、OUT の順番だけを合わせる必要があるようです。
<*.asy の[SpiceOrder]>
<*.lib の.SUBCKT>

次にTIのModelを追加します。
TIのサイトのここから下の方に行って
「設計と開発」で「設計ツールとシミュレーション」の文字をクリック
下に出てくる
「LMx58_LM2904 PSPICE Model (Rev.A) 」をダウンロードします。
( その後、Rev.C になっています)

どうも、TIのサイトは中身がころころ変わっているようです。
執筆時点では、ファイル名「snom268a.zip」でした。
( その後、Rev.C では「snom268c.zip」でした)
解凍すると「LMx58_LM2904.CIR」がでてきます。
***2023.8.14追記***
LMx58_LM2904 PSpice Model (Rev. A) が
LMx58_LM2904 PSpice Model (Rev. C) にUpdateしてました。
中身の「LMx58_LM2904.CIR」の更新日付は、2021年7月1日で
変更点は、以下でした。
<1、2行目>(なぜかコメントは「Rev.B」)
* LMX58_LM2904 - Rev. A
* Created by Paul Goedeke; November 16, 2018
* LMX58_LM2904 - Rev. B
* Created by Paul Goedeke; November 16, 2018 - Revised by GPAMPS Team; 2021-06-29
<198行目>
C1  81 0 1  ⇒  C1  81 0 100e-9 
(1000000μF ⇒ 0.1μF )
MartyのGoogle DriveのModel は、更新しています。
***追記ここまで***

「LMx58_LM2904.CIR」をエディタで開きます。
.subckt LMX58_LM2904 IN+ IN- VCC VEE OUT
これは、番号ではないですね~
IN+ IN- VCC VEE OUTの順番は、NSと同じです。

LMx58 と LM2904 共通のようですが、分かり難いので
後の名前を「LM358_TI」に変更しました。
.subckt LM358_TI IN+ IN- VCC VEE OUT
で、ファイル名を「LM358_TI.lib」にして保存します。

シンボルは「LM358_NS」の時と同様に「opamp2.asy」を編集して
この様に入力して
「LM358_TI.asy」のファイル名で保存します。

1K~20MHzまでSWEEPして比較すると、違いがありますね~
V(out-ti):TI Model出力、 V(out-ns):NS Model出力
10MHz以上でTIの方、Gain -56dBで横ばいになってるのはなぜだろう?

***2023.8.14追記***
 ちなみに上のシミュレーションを
 「LMx58_LM2904 PSpice Model (Rev. C) 」でやってみましたが
 上の(Rev.A)との差はなさそうです。
 1000000μF ⇒ 0.1μF に修正されていた「C1」とやらは
 たぶんデカップリング・コンデンサなのでしょう。
 今までのシミュレーション結果は使えそうです(^^)
***追記ここまで***

200KHzでもこれだけ違いが出てます。
V(out-ti):TI Model出力、 V(out-ns):NS Model出力、 V(n003):入力
ちなみにマーティーの手持ちは、TIマーク品です。
TI Modelは、NSのに比べシミュレーションに時間かかります。

もう一つ
ANALOG DEVICESのAD822ANZってのを追加しておきます。
ここは、LTSpiceの本家であります。
下の方に行って

4種類あります。
「AD822」はデフォルトで入っているのですが
マーティーのは「AD822ANZ」なので、違いを見たかったのです。
2番目をクリックすると、

新規タブにAGREEMENTがでるのでACCEPTすれば、ダウンロードできます。
ファイル名「ad822a.cir」になってます。
TIのと同じです。

中身を見ると
「.SUBCKT」の行はこれなので、このまま使うことにします。
In+、In-、V+、V-、OUT の順番は、LM358と同じです。


C:\Users\marty\Documents\LTspiceXVII\lib\sub\mylib
にコピーします。
今回、*.cir のまま置いてみたら、*.libにしなくても大丈夫でした。
***2023.8.14追記***
LTSpice ver. 17.1.10では、
C:\Users\marty\AppData\Local\LTspice\lib\sub\mylib
***追記ここまで***

シンボルは、これまでと同様
LTSpice XVIIを起動して、「opamp2.asy」から作成して
この様に設定して、「AD822A.asy」で保存します。

前と同じこの非反転増幅器でテストします。

上:AD822A
下:AD822
意外と差が大きいですね~

実は、Rail To Rail 出力のOP-AMPが欲しくて
3種類(LM358、AD822A、TLC2262)AliExpressから入手してたのです。
LM358は、Rail To Railではないですが、3V動作で安価です。

最後のTLC2262は、TI社のサイトのここです。
「TLC2262, TLC2262A PSpice Model」をダウンロード
執筆時点では、ファイル名「SLOJ078.ZIP」でした。
中に4種類入っていたので
マーティーは、5V Level2 Model2の「tlc2262.5_2」を使ってます。

最後に入手したOP-AMPのAliExpressリンクです。
なかなか骨董品番が並んでますが、LM358は、ここで
US$ 0.72/20個(送料 $0.53)
AliExpress.com Product - 20PCS UA741 LM324 LM393 LM339 NE555 LM358 DIP LM358N LM324N LM339N LM393N NE555P UA741CN Amplifier Circuit new

AD822A
US$ 3.75/5個(送料 $0.53)
AliExpress.com Product - 5pcs AD822ANZ DIP-8 AD822AN DIP AD822 DIP8

TLC2262
US$ 0.59(5% OFF、送料 $0.31)
AliExpress.com Product - TLC2262CP TLC2262 2262 DIP-8 low- op-amp p new original DIP8 1PCS LinCMOS RAIL-TO-RAIL OPERATIONAL AMPLIFIERS

当分はシミュレーションで妄想かな^^;