Home

アナログ回路屋

トランジスタ技術誌 別冊付録への記事

CQ出版社 トランジスタ技術誌の2011年6月号 別冊付録へ掲載されました。
記事は「電子回路シミュレータ LTspice 部品モデル作成編」です。

macro_model_toragi.jpg

目次は

第1章:SPICEの歴史とデバイス・モデル

第2章:LTspiceへ他社OPアンプのマクロモデルを組み込む

コラム:半導体メーカの設計ツール

第3章:LTspiceへ他社デバイスのマクロモデルを組み込む

第4章:マクロモデルと実デバイスモデルの違い

Appendix:アナログマスタでオリジナルICを作る

多くの半導体メーカで公開されているアナログICのマクロモデルをLTspiceへ組み込む方法、マクロモデルと実デバイスの違いなどを書いています。
Appendixではマクロモデルと相性の良い新日本無線様のアナログマスタを用いた自社ICの開発にも触れました。

アナログICが身近に感じていただければ嬉しいです。

mimetexを使ってブログやWebページへ数式を入れる

  • Posted by: kimi
  • 2010年1月24日 14:28
  • mimeTeX

 拙ブログの中で意外とアクセス数が多いのはMovableTypeで数式を!です。この記事はOSがSolaris10のサーバーでmimetex.cgiを稼働させ、LaTeXライクな入力で数式をgifイメージに変換し埋め込む方法を書いたものです。検索キーワード等より推測すると、アクセス数が多い理由はmimetexの情報が意外と少ないからではないでしょうか。
 毎回の記事が数式を使うようであれば契約されているサーバーでmimetex.cgiを稼働させた方がベターだと思いますが、今だけ使いたいという方もいらっしゃると思います。
 本エントリーは私どものサーバーで動いてるmimetex.cgiを使っていただき、簡単に見栄えのよい数式を生成してWebページやブログへ入れ込む手助けを目的とします。

 使い方は簡単でイメージタグを用い下記を埋め込むだけです。
 <img src="http://www.analib.com/cgi-bin/mimetex.cgi?数式">
私どものサーバーが不運にも未稼働であることも考えられますので、
 http://www.analib.com/cgi-bin/mimetex.cgi?数式 で得られたgifイメージを保存してアップロードという使い方もできます。
 http://www.analib.com/cgi-bin/mimetex.cgi?\Large f(x)=\int_{-\infty}^x e^{-t^2}dt 
という記述をすれば、

 \Large f(x)=\int_{-\infty}^x e^{-t^2}dt

が得られます。

 mimetexの数式例はこのページにあります。数式をクリックすればどのような記述になっているか分かります。

 面白い使い方としてカレンダー表記もできます。
 http://www.analib.com/cgi-bin/mimetex.cgi?\normalsize\calendar
とすると下記が得られます。
\normalsize\calendar

 LaTeXライクの記述法は作者であるJohn氏のWebサイトでLaTeX Tutorialが参考になるでしょう。ここにもフォームが用意されていて記述した数式を確認できます。

 不運にも私どものサーバーが稼働していないときはgifイメージが得られません。この場合はどうぞご容赦ください。

トランジスタ技術への記事

拙著の紹介です。
CQ出版社 トランジスタ技術の2009年8月号に掲載されました。
記事は「高精度OPアンプ 設計の手順と考え方」です

toragi200908.jpg

内容は
バイポーラとCMOSからプロセスを選ぶ
  • 決め手は素子の耐圧
  • 素子の特性のマッチングはプロセスで決まる
  • エミッタ形状によるオフセット電圧の違い
  • 入力オフセット電圧はMOSよりもバイポーラの方が小さい
  • オフセット電流は入力電流がほとんど無いMOSがバイポーラよりも小さい
  • 初段増幅器の利得はバイポーラの方が大きくしやすい
  • バイポーラとMOSの比較のまとめと動向
回路ブロックごとの設計
  • まずは回路全体のイメージをつかむ
  • 初段増幅回路
  • オフセット電圧の検証
  • オフセット電流の検証
  • 初段利得
  • 2段目増幅回路
  • 出力回路
高精度オペアンプといえば優れた直流特性が挙げられますので、特にオフセット電圧/電流について式を交えながら詳しく書きました。

アナログICが身近に感じていただければとても嬉しいです。

Analog EN (技術者ネットワーク)

  • Posted by: kimi
  • 2009年6月22日 01:27
  • Analog EN
CQ出版さんの伝手で 6/19(金)に都内でアナログに関係する方々と交流する機会を得ました。
その名もAnalog EN(アナログ エン)
ホームページの言葉を引用すると、
「Analog ENはアナログにエン【縁】のある技術者のネットワークです」

群馬県/群馬大の「ぐんまアナログ技術立県事業/群馬アナログカレッジ」の有志から始まったとお聞きしました。
アナログ技術に関する話題で大いに盛り上がり、とても有意義な時間を過ごさせていただきました。
カメラを持っていったのですが話しに夢中になり1枚も写せなかったのが残念です。

参加された皆様、ご苦労様でした。
またお会いできることを楽しみにしております。

テキストブラウザ lynx

  • Posted by: kimi
  • 2009年4月28日 10:05
  • linux | lynx
 googleさんのガイドラインに書かれていたテキストブラウザのlynxをubuntuへ導入・使用してみました。私はホームページの確認 alt属性やlinkタグの確認などに用いました。Windows環境の方はこちらのサイト様:lynxでアクセシビリティチェックに詳しく書かれています。
 lynxはブラウザの他にファイル管理などにも使われるようで、まるでDOS時代のFDのような感じで使えることにビックリしました。操作も簡単なのでとても使い易いです。

ubuntuへlynxのインストールです。端末にて、
sudo apt-get install lynx-cur
その後 /etc/lynx-cur/lynx.cfg を日本語が表示できるように編集します。以下の3行を検索して修正します。
#CHARACTER_SET:iso-8859-1
#ASSUME_LOCAL_CHARSET:iso-8859-1
#PREFERRED_LANGUAGE:en
コメントを外し(#をとる)、下記のようにします。
CHARACTER_SET:utf-8
ASSUME_LOCAL_CHARSET:utf-8
PREFERRED_LANGUAGE:ja
 コマンドなどは多くのサイトさんが紹介されていますのでここでは割愛します。例えばwww.example.com のブラウジングだけなら端末で、
lynx http://www.example.com
 あとは↑↓矢印キーで前のアンカー、次のアンカーです。操作に困ったときは Ctrl+Gで切り抜けます。?を押せばヘルプ画面が出てきます(英語)

ubuntuでの表示例を載せておきます。
lynx.png

analib.comのサイトをリニューアルしました

 analib.comのサイトを全面リニューアルしました。SEO対策の目的が主ですが、デザインも変えました。
 今回のリニューアルが3回め。analib.comのドメインを取得したのが 2002年9月ですから少しサボり過ぎだと反省してます。これからも少しづつですが更新していこうと思います。

 ブログに書き忘れていましたが、やまなし産業支援機構様の1社1テクノというページがあります。今年の1月末〜2月頃だと思うのですが弊社を紹介していただきました。
やまなし産業支援機構様、ありがとうございました。

ボーデ線図

 負帰還の安定性などを検証する場合ボーデ線図を用います。このエントリーではボーデ線図について計算をしながら概要を示したいと思います。
 伝達関数G(s)が演算子sの関数である場合G(s)の周波数特性を求めるためにs→jωと置換すると交流理論の複素表記になります。
 G(jω)の絶対値と偏角を考えると、

\left\{|G(j\omega)|=\frac{|V_o|}{|V_i|}\\ \varphi=argG(j\omega)=argV_o -argV_i}\right.


 |G|は入力電圧と出力電圧の大きさの比を表し、ψは入力電圧に対する出力電圧の位相差を表しています。

time domain.png


図1


 |G|とψはいずれも角周波数の関数でありωを0〜∞へ変化させたとき|G|、ψがどのように変化するかを知ることが回路の特性を理解するのに重要です。角周波数ωが広い範囲にわたって変化したときG(jω)がどのように変化するか図式で表現するひとつの方法にボーデ線図があります。

 ボーデ線図による方法ではG(jω)は2本の曲線で表します。横軸には対数目盛でω(実際は周波数f)をとり、縦軸には利得|G|のデシベル値をとって表した利得曲線と、縦軸には位相ψを度の単位で表した位相曲線の2本です。
例として1次遅れ伝達関数のボーデ線図を図2へ示します。

freq domain.png


図2


一時遅れ関数は、G(s)=\frac {K}{1+s\tau}で表し、s\to j\omegaと置換して

G(j\omega)=\frac {K}{1+j\omega \tau}

絶対値をとると

|G|=\frac {K}{\sqrt{1+\omega^2 \tau^2}}

これより、

|G|\text{[dB]} =20\log_{\tiny {10}} K-10\log_{\tiny {10}} (1+\omega^2 \tau^2) ...(1)

\varphi=-\tan^{\tiny{-1}} \omega \tau ここで\omega=2\pi f

これが図2の利得曲線と位相曲線です。

(1)式の利得曲線は2本の漸近線で表せます。
f \ll \frac {1}{2\pi \tau}のとき
\tau =\frac {1}{\omega_c}とおいて(1)式を書き直すと

|G|\text{[dB]} =20\log_{\tiny {10}} K-10\log_{\tiny {10}} (1+\frac {\omega^2}{\omega_c^2}) ...(2)

f \ll \frac {1}{2\pi \tau}\omega \ll \frac {1}{\tau} \to \omega \ll \omega_c

したがって(2)式は、

\begin{eqnarray}&nbsp;&nbsp;&nbsp; |G|\text{[dB]} &amp;=&amp;20\log_{\tiny {10}} K-10\log_{\tiny {10}} 1 \hspace{40}&nbsp; (1 \gg \frac {\omega^2}{\omega_c^2})\\ &amp;=&amp;20\log_{\tiny {10}}K&nbsp;&nbsp; \end{eqnarray} ...(3)


f \gg \frac{1}{2\pi\tau}のとき
同様に
\omega \gg \frac {1}{\tau} \to \omega \gg \omega_c
(2)式は

\begin{eqnarray}&nbsp;&nbsp;&nbsp; |G|\text{[dB]} &amp;=&amp;20\log_{\tiny {10}} K-10\log_{\tiny {10}} (\frac{\omega}{\omega_c})^2 \hspace{40}&nbsp; (1 \ll \frac {\omega^2}{\omega_c^2})\\ &amp;=&amp;20\log_{\tiny {10}}K - 20\log_{\tiny {10}}\omega \tau&nbsp;&nbsp; \end{eqnarray} ...(4)


この2本の漸近線はf_c = \frac{1}{2\pi \tau}で交わります。
この点における利得と位相は

|G|\text{[dB]} =20\log_{\tiny {10}} K-10\log_{\tiny {10}} (1+\frac {\omega^2}{\omega_c^2})

周波数f_c \hspace{20} (=\omega_c)になった時を考えると

\begin{eqnarray}&nbsp;&nbsp;&nbsp; |G|\text{[dB]} &amp;=&amp;20\log_{\tiny {10}} K-10\log_{\tiny {10}} (1+1^{\tiny 2})\\ &amp;=&amp;20\log_{\tiny {10}}K - \text{3.01}&nbsp;&nbsp; \end{eqnarray}


 この点はカットオフ周波数で低周波利得から3.01dB下がった点です。カットオフ周波数が低周波利得より-3dB下がった周波数というのはこの式から理解することができます。
このときの位相は

\begin{eqnarray}&nbsp;&nbsp; \varphi_c &amp;=&amp; -\tan^{\tiny -1} \omega \tau \\ &amp;=&amp; -\tan^{\tiny -1} 1 \hspace{10}=-45&nbsp; \end{eqnarray} ...(5)




 次に(4)式20\log_{\tiny {10}}K - 20\log_{\tiny {10}}\omega \tauの利得が減少する傾きについて考えてみます。
2つの周波数f_1 \hspace{10},\hspace{10} f_2の比を考え、

\frac {f_1}{f_2} = 10 → f_1f_2は1dec(デケード)離れている

\frac {f_1}{f_2} = 2 → f_1f_2は1oct(オクターブ)離れている

といいます。これは、

\begin{eqnarray}&nbsp;&nbsp;&nbsp; x\text{[dec]} &amp;=&amp;\log_{\tiny {10}} \frac {f_1}{f_2} \hspace{10} \text{dec}\\ y\text{[oct]} &amp;=&amp; \log_{\tiny {2}} \frac{f_1}{f_2}&nbsp; \hspace{10}\text{oct}&nbsp; \end{eqnarray}

(4)式の-20\log_{\tiny {10}} \omega \tauの項は角周波数\omegaの変化に対し-20\text{dB}/\text{dec}(周波数が10倍になると-20dB減る)で減少する傾きであることがわかります。
また\frac {\log_{\tiny {10}} x}{\log_{\tiny {2}} x}= \frac {1}{3.32}より

-20\log_{\tiny {10}}= -6.02\log_{\tiny {2}}

と書き直せるので、-6\text{dB}/\text{oct}(周波数が2倍になると-6dB減る)で減少するとも言います。

(5)式のψは周波数が0 \le \omega \le \inftyとすると-\tan^{\tiny{-1}}より

0 \le \omega \le \tau

0 \le \varphi \le -90

となります。

f_c =\frac {1}{2\pi \tau} \hspace{10} (\omega_c = \frac {1}{\tau})の周波数の\frac {f_c}{10}10f_cを考えると
\frac {f_c}{10} \hspace{10} (=\frac {\omega_c}{10})の場合

\varphi_1 =-\tan^{\tiny{-1}} \frac {1}{10\tau} \cdot \tau =-5.7

10f_c \hspace{10} (=10\omega_c)の場合

\varphi_1 =-\tan^{\tiny{-1}} \frac {10}{\tau} \cdot \tau =-84.3


以上より簡略化したボーデ線図を図3のように書けます。


bode.png

図3

立ち上がり速度とカットオフ周波数

 前回のエントリーに引き続き、本エントリーではパルス波の立ち上がり・立ち下がり速度とそれを通過させるために必要な増幅器のカットオフ周波数(電力半値周波数)を考えたいと思います。パルス波の立ち上がり・立ち下がり速度は多くの場合 振幅(Y軸)の10%〜90%区間の時間です。

\left\{\left.{0.1\times v(t)=V(1-e^{\frac{-t_1}{CR}})\\0.9\times v(t)=V(1-e^{\frac{-t_2}{CR}})}
v(t)で式を整理すると
V(1-e^{\frac{-t_1}{CR}})=\frac{V(1-e^{\frac{-t_2}{CR}})}{9}

 両辺の\lnをとり、更に式を整理します。
\ln 9=\ln e^{\frac{-t_1}{CR}}-\ln e^{\frac{-t_2}{CR}}
\ln 9=\frac{t_1 -t_2}{CR} \times \ln e

 カットオフ周波数(電力半値周波数)は f_c=\frac{1}{2\pi CR} 、立ち上がり速度は t_r=t_1 -t_2ですので、立ち上がり速度とカットオフ周波数の関係は以下のようになります。
t_r =\frac{\ln9}{2\pi f_c}

 以下は上式の関係を関数電卓を用いずにブログ内で計算するためのスクリプトです。お役にたてれば嬉しいです。

Web Calculator


立ち上がり時間、立ち下がり時間を[s]の単位で入力してください。"1e-6"等の指数表記が使えます。

立ち上がり/立ち下がり時間 [s]:



カットオフ周波数 [MHz]:



正弦波とSlew Rateの関係

 少しづつブログにも慣れてきました。仕事の合間をみて回路の計算によく出てくるものをまとめていこうと思います。今回のエントリーは増幅器のSlewRate(一般にSRと記します)と正弦波入力信号についてです。

 回路設計する上で小信号振幅における配慮だけでなく大振幅信号についても考えなければならないことは多々あります。大振幅時の信号はSRによって制限を受けるためオペアンプの選定でSRの規格に目がいく設計者も多いのではないでしょうか。以下はとても簡単な計算ですが 案外役に立つことがあるので参考になれば幸いです。

 利得"1"の回路にピーク値:Ep [V]、周波数:f [Hz]の正弦波:e(t)=Ep\cdot\sin(2\pi f)を印加した場合のことを考えます。この正弦波の傾きを調べるために微分すると、

\frac{de(t)}{dt}=2\pi f\cdot Ep\cdot\cos(2\pi ft)

 最大電圧変化率は\cos(2\pi ft)=1の時ですから

\frac{de(t)}{dt}=2\pi f\cdot Ep

 信号周波数をMHzの単位で表すと 2\pi f\cdot EpV/\mu sになります。これより回路利得が"1"で信号振幅:Ep、周波数:MHzの信号を歪み無く通過させるには2\pi f\cdot Ep以上のSRが必要になります。

 以下は上記の関係式を電卓をたたかずに このブログで計算するためのスクリプトです。お役にたてれば嬉しいです。


Web Calculator [SR]

入力周波数 [MHz]

入力電圧最大値 [V]



SR [V/μs]



数式処理システム Maxima

 Maxima(マキシマ)はGNU GPLライセンスの下に配布されているフリーな数式処理システムです。作者さんはマサチューセッツ工科大学のWilliam F.Schelter氏です。プログラミング言語はLispを使い作られました。Schelter氏が他界されてからも後継者の開発者さん達が受け継ぎ、現在も開発が進んでいるシステムです。
 数式処理システムといえば有償のMathematicaが有名ですが、Maximaはそれに劣らないと思います。オープンソースなのでフリーというところが魅力のひとつです。"数式処理システム"という言葉で尻込みをしないでください。Maximaを家庭で使えばお子さんの算数/数学の課題なども簡単に検算できます。お父さんの腕の見せどころかもしれません。
 僕は仕事で使っています。解くのに時間がかかる微積分やラプラス変換などです。またソルバーとして使うこともあります。回路の計算にはついてまわる様々な数学は紙と鉛筆で時間をかけて解いても褒めてもらえません。計算の解を得るのが仕事ではなく、その解から回路の善し悪しを検証するのが目的だからです。
 MaximaのGUIはwxMaximaを使っています。使う環境がUbuntu Linuxなので"アプリケーションの追加と削除"から簡単にインストールできるのが理由です。GUIにはまだ種類があるようです。使用する方が使いやすいGUIを選択するといいでしょう。
 Windows版もあるようです。本家ダウンロードページでSourceforge download pageに実行ファイルがあります。Windowsの環境でも使えそうなのでご興味あれば試しては如何でしょうか。

 Maximaを回路設計の支援として使う一例をご紹介します。前回のエントリーで感度関数についてを書きました。これをMaximaを使って計算してみます。

画像1.gif
 diff(式1,x);は"式1"を"x"で微分するの意味です。画面の例では\frac{A}{1+A\beta}Aで微分しています。xthru()は通分するという意味で、"%"は前回計算した結果、ここでは先ほどの微分した計算式"(%o1)の行"を指しています。この微分で得た計算結果を通分して"(%o2)の行"に評価された結果が出てきました。


画像2.gif
 次の例はG=g(A,\beta)=\frac{A}{1+A\beta}とし、感度関数:S_A ^G=\frac{A}{G}\cdot\frac{dG}{dA}を解き、得た解:\frac{1}{1+A\beta}A=10000\beta=0.1を代入して感度関数の値:9.99ppmが得られた結果です。前のエントリーでは紙と鉛筆で時間をかけて解きましたが、Maximaを使うと あっという間に答えが求まります。


画像3.gif 次の例は先ほどの手順でAを100〜10000まで可変しながらグラフを出力したものです。Maximaはこのようなこともできます。ひとつの値だけ注視するのではなく変動させた場合のグラフを見れますので最終出力への影響が出るかがひとめで分かります。この機能は大変便利なので使わない手はないでしょう。


感度.png Maximaのグラフ出力を他のグラフ作成ソフトで読み込ませ整形することもできます。今回用いたグラフソフトは同じくフリーのQtiPlotというソフトウェアです。報告書などに使用する場合便利だと思います。

 Maximaの数式入力は慣れだと思います。またお呪いのような関数の記述(今回は微分のdiffなど)は覚える必要はなく、情報量の多いWebサイト様で検索して使うのがよいでしょう。下記のサイト様(日本語)をご参照ください。


Index of all entries

Home

Search
Feeds
Tag Cloud
About Me

山梨県韮崎市生まれ

玉川大学情報通信工学科を卒業後 アナログIC設計開発に従事

2002年故郷へ戻り起業

Links
Tag Cloud

Return to page top