設計するのが難しい意外な物

トランジスターやFETのペア作るって意外に大変。そこで自動的に静特性を測定するツールを考える。IdssやHFEなんかは割合簡単そうだけど、やはり自動で取るならカーブトレーサのようなものが作れないか考えてみる。

基本的には、ターゲットのトランジスターを壊さないように考えながら、ベースやコレクターに抵抗をつなげて、その抵抗の先にコントロールできる電源を接続、ベース電圧やコレクター電圧を測定しながら与えた電圧を上げてゆく。抵抗は一定なので電流は与えた電圧-トランジスタの電圧で求まる。つまり、2つのDACと2つのADCがあれば作れるはず。
解消しないとならないのは、次の点
1.電力をかける方は簡単だけど、やっぱりやりすぎてトランジスターを燃やしたらやる価値さえなくなるので、保護を考える必要がある。あらかじめ限界電力を求めればいいのか。
2.トランジスターは熱によって変動する素子だから温度を一定にするか、測定を瞬間にする。早くするっていってもNFBがかかっている状態じゃないのであまり早くできない。
3.測定器はパソコンに接続してパソコンの力を借りるので、どこまでをソフト、どこまでをマイコンあるいはFPGAにやらせるか考える必要がある。
4.簡単な回路で、簡単に作れて、安く作れる必要がある。

DAC は PCM1739, ADC は PCM 1804 使うか。すげー贅沢。あ、PCM1804は差動だから面倒PCM1800にしよう。20ビットも使えないだろうけど、うまく電圧回路と電力回路をわけると面白いかもしれない。そうすると差動というのもメリットあるかもなあ。

そうすると、コントローラは少なくともシリアル変換を行わないとならないので、手では作ってられない。そういうわけでカメレオンUSBでも使うか。この規模に収めないと恥という気がしてきた。

なんとか、カメレオンで完結させたいなああ。サイプレスのメモリをバッファーにして。。
こんな感じかなあ。インターフェースとしては

interface->cmd:IC設定(ic=0mA)
return : okay
interface->cmd:IB設定(Vbe=0.2mA, MaxIB Power=100mA)
return: okay
interface->cmd:seepVc(start=0V, end=30V, step=1V, Maxpower=300mW)
return: 0, 40, 42, 45, 47, 48, 49, 50, 50, 50, -1, -1 , -1 ....
ここまで象徴的なのをインターフェースにやらせるのは問題が多いなあ。

では、こうしよう。
interface->cmd:setVc(Vc=10V,LimitIc=300mA)
return:ok
interface->cmd:getIc(void)
return: 40mA

// start_out_vc の初期値に注意
// V の単位 (DAC MAX Volt/ 16bit)
// I の単位 (DAC MAX Vold/16bit) / registor 例:100V MAX / 65535 / 50Ω (A)で1

bool setVc(int vc, int &start_out_vc, int &ic)
{
int out_vc = start_out_vc;
do
{
outC_DAC(out_vc);
wait_system_time(100); // 2chDACが出力しデジタルフィルターを2つ通りトランジスターが安定する時間
int vc_cur = getC_ADC();
int ic_cur = out_vc-vc_cur; // 単位をなおした
if (vc_cur >= vc)
{
start_out_vc = out_vc;
ic = ic_cur;
outC_DAC(0);
return true;
}
out_vc += delta_vc; // さじ加減
} while (ic < ic_cur);
outC_DAC(0); // 超えたらとめる。じゃあ本当はいけないのだが。
return false; // Limit Over
}

考えてみれば電圧作るのは簡単だけど、この抵抗の事を考えると頭痛いな。大体トランジスターで電圧コントロールしているのだから、電流計る為に抵抗というのも無理がある。

そういえば、電圧ってNPNとPNPで逆さまにしないといけないんだった。あーなんか参考回路ないかなあ。

こんな論文を発見
http://www.kochi-tech.ac.jp/library/ron/2003/2003ele/1040174.pdf

そうだよなあ。電流でコントロールすればいいんだよ。OP-AMPやトランジスターの得意な分野だ。

にしても、誰か作らないかなあ。