ttl.png



バリキャップ (varactor) のカーブフィッティング


LTC\SwCADIII\examples\Educational に Fc.asc という 例があります。 これは capometer という SUBCKT を使ってバリキャップの静電容量と バイアス電圧の関係を調べています。 英語では varactor が一般的のようです が、varicap なる語もあって Web 検索で結構見つかります。

可変容量ダイオード DX を CR 直列回路に置き換えて試すと、capometer 測定の容量値は ともかく直列抵抗値は信用できません。 さらに直列抵抗が小さい場合でも容量が 5pF くらい になると、測定誤差が +10% にもなります。

Capometer の中身を調べようと一度は考えたのですが進んでいません。 ほか にも遅い、値が読みにくい、表示がきたない、などと文句を言いたくなります。

実は最初、{Cjo} / (1 + V(bias)/{Vj})**{m} 式を使い、データシートから 集めた値から Vj と m を決定し、.model としてシミュレートしてみた のです。 しかし capometer で測定した容量値は式と全然一致しませんでした。

Fc.asc 中の B1 式の max() を除いた部分はバリキャップの静電容量とバイアス電圧の 関係を表す数式です。
 {Cjo} / (1 + V(bias)/{Vj})**{m}

B2 の式は、順方向バイアス時のキャパシタンス減少係数 Fc (coeff. for forward-bias depletion capacitance formula) を考慮したもので、順バイアス電圧領域の話になります。
 ({Cjo} / (1 - {Fc})**{1+m}) * ({1 - Fc*(1+m)} - {m/Vj}*V(bias))


そこで、別の測定回路を組んでみました。

1.png

測定周波数は 10MHz です。 開始から 12.1us 後の V(cap), V(res) を読み出すと、接合 容量・直列抵抗が直読できます。

2.png

直列抵抗の値は、やはり正確に求めるのは困難でした。 50Ω を超えるとそれらしい値が 求まりますが、そんなバリキャップは使いたくありませんよね。

B6 の計算式中の係数 0.9997 は、理論でなく実地に試して容量値がほぼ正しくなるように 選んだ値で、直列抵抗 1Ωの場合を基準にしています。

直列抵抗値はあきらめて、{bias} を変えて MV2201 の容量値をプロットしてみま した。 Plot Settings の Mark Data Points 機能を ON にしています。 これなら マウスカーソルの位置を読み取る機能を利用して容量値が読みとれま すし、C1V/C4V などの計算表示もできます。(あまり見栄えはよくありませんが。 次項参照。)

3.png

 varact1.asc varact1.plt



Cjo / (1 + Vbias/Vj)**m 式には単純な比例定数 Cjo のほかに 2 つの係数があります。 したがって 3点の電圧における2つの容量比を定めれば、Vj と M が決まります。

例えば逆バイアス電圧 1, 2, 4V における容量値を c1v, c2v, c4v として、これらが わかっているとすると、
 c1v/c2v = (Cjo/(1 + 1/Vj)**m) / (Cjo/(1 + 2/Vj)**m)
  = ((1 + 2/Vj) / (1 + 1/Vj))**m
 c1v/c4v = ((1 + 4/Vj) / (1 + 1/Vj))**m

 ln(c1v/c2v) = m * ln((1 + 2/Vj) / (1 + 1/Vj))
 ln(c1v/c4v) = m * ln((1 + 4/Vj) / (1 + 1/Vj))

 ln(c1v/c2v) / ln(c1v/c4v) = ln((Vj+2)/(Vj+1)) / ln((Vj+4)/(Vj+1))

ここで Vj が求まります。 そのあと m = ln(c1v/c2v) / ln((Vj+2)/(Vj+1)) 式で m が 求まります。 c1v 等の具体的な容量値から Cjo が決定できます。


具体例を示します。 1SV331 のデータシートから容量値を読み取りました。 C1V/C4V の 標準値は 3.75 とされていますが、グラフから読み取った値は 3.664 程度 でした。 グラフの形がいかにもゆがんでいるのですが、そのまま進みます。
 1V 17.89p
 2V 10p
 4V 4.882p
 6V 3.813p

ln(c1v/c2v) / ln(c1v/c4v) = ln(17.89/10) / ln(17.89/4.882) = 0.4479
 ln((Vj+2)/(Vj+1)) / ln((Vj+4)/(Vj+1)) = 0.4479
 → Vj=0.862
m = ln(c1v/c2v) / ln((Vj+2)/(Vj+1)) = ln(17.89/10) / ln((0.862+2)/(0.862+1))
 → m=1.353
Cjo = 17.89p * (1+1/Vj)**m = 50.72p

検算:
 c1v=Cjo/(1+1/Vj)**m = 17.89p
 c2v=Cjo/(1+2/Vj)**m = 10.00p
 c4v=Cjo/(1+4/Vj)**m = 4.882p
 c1v/c2v = 1.789
 c1v/c4v = 3.664

このパラメーターでシミュレートしました。

5.png

C1V すなわち V(cap)@3/1V は 17.91p と読み出せます。c1v/c4v すなわち V(cap)@3/V(cap)@9 は グラフから 3.668 と読み取れます。 3桁程度の正確さで確認測定ができました。

 varact3.asc varact3.plt
 (シミュレーション終了後、目盛りの範囲や刻みを手動調整する必要があります。)

Vj と M の働きをまとめます。
・ M 増加 → 容量比が大きくなる。
・ Vj 増加 → グラフの横軸を拡大したような効果がある。 容量比は少し減少する。 Vj を小さくすると逆バイアス電圧が大きな領域での容量変化が少なくなる。


1SV331 のデータシートは http://www.semicon.toshiba.co.jp/td/ja/Diode/Variable_Capacitance_Diode/20020111_1SV331_datasheet.pdf にあります。

1pF に近い小さな容量や直列インダクタンスを気にするのなら、 http://www.eetasia.com/ARTICLES/2002SEP/A/2002SEP20_BD_RFD_AN.PDF で紹介されている通り、Cv = Cjo/(1 + Vr/Vj)**m + Cp 式を使い、Rs, Ls も しっかり記述したほうが正確だと思います。

係数 Fc のことを調べているうちに次のページを見つけま した。 http://www.daryan.de/admin/download/file_104.pdf
ダイオードに限らず、各種素子のモデルについて解説されています。 (怪しい URL ですね。)



過渡解析でなく、AC 解析でバリキャップの振る舞いを調べました。 まずは CR 直列回路で試します。

6.png

グラフは上から順に回路電流、キャパシタンス、直列抵抗値、インピーダンスと位相角 (360 分度)、位相角のみ、Q の値です。

7.png

 nl_cap1.asc nl_cap1.plt

測定値の確からしさ (測定周波数 10MHz)
 C / Rser
 0.05
 0.5
 5
 50
 500Ω
 1pF
 1000f / 50m
 1000f / 500m
 1000f / 5
 999.99f / 50
 999.004f / 500
 10pF
 10p / 50m
 10p / 500m
 9.9999p / 5
 9.99004p / 50
 9.09352p / 500
 100pF
 100p / 50m
 99.999p / 500m
 99.9004p / 5
 90.9352p / 50
 9.11772p / 500
 1000pF
 999.99p / 50m
 999.004p / 500m
 909.352p / 5
 91.1772p / 50
 1.00225p / 500

赤字の部分は全く信頼できない値です。 しかし直列抵抗の値はとても正確です。


1SV331 をシミュレーション測定しました。 .model に Rs=0.45 を追加してあります。

8.png
9.png

残念ながら、グラフの横軸を V(b) には変えられませんでした。 しかしグラフの ウィンドウを選択した状態で File → Export し、Format を Cartesian: re,im と指定 して、結果をテキストファイルに書き出すことができます。 ちょっとわかりづらいの ですが、ちゃんと報告されています。

 Freq. im(I(V1)/V(a))/(2*pi*freq)*(1Hz*1V/1A) re(V(a)/I(V1))*(1A/1V)
 Step Information: Bias=1 (Run: 1/5)
 1.00000e+007 -1.78911e-011, 0.00000e+000 -4.50001e-001, 0.00000e+000
 1.01000e+007 -1.78911e-011, 0.00000e+000 -4.50001e-001, 0.00000e+000
 Step Information: Bias=2 (Run: 2/5)
 1.00000e+007 -1.00011e-011, 0.00000e+000 -4.50003e-001, 0.00000e+000
 1.01000e+007 -1.00011e-011, 0.00000e+000 -4.50002e-001, 0.00000e+000
 Step Information: Bias=3 (Run: 3/5)
 1.00000e+007 -6.66751e-012, 0.00000e+000 -4.50006e-001, 0.00000e+000
 1.01000e+007 -6.66751e-012, 0.00000e+000 -4.50006e-001, 0.00000e+000
 Step Information: Bias=4 (Run: 4/5)
 1.00000e+007 -4.88270e-012, 0.00000e+000 -4.50011e-001, 0.00000e+000
 1.01000e+007 -4.88270e-012, 0.00000e+000 -4.50010e-001, 0.00000e+000
 Step Information: Bias=5 (Run: 5/5)
 1.00000e+007 -3.79101e-012, 0.00000e+000 -4.50018e-001, 0.00000e+000
 1.01000e+007 -3.79101e-012, 0.00000e+000 -4.50017e-001, 0.00000e+000

 nl_cap2.asc nl_cap2.plt



コンデンサーに流れる電流は両端電圧の時間微分に比例 する、という根本的な性質を思い出して、次の方法で容量値をシミュレーション測定して みました。 これは直列抵抗は小さくて無視できる、という前提での話になります。

10.png
11.png

グラフを拡大しカーソルを注意深く設定して読み取りました。(これがちょっと やっかい。) かなり正確と言えます。
 c1v = 17.8936p
 c2v = 10.0046p
 c4v = 4.8882p
 c6v = 3.07089p
 c1v/c4v = 3.66057

 nl_cap3.asc nl_cap3.plt


もどる
Valid HTML 4.01!