ttl.png



A/D 変換器と D/A 変換器

せっかく デジタル回路のシミュレーションもできるのですから、A/D 変換器と D/A 変換器が欲しくなり ます。 ファンクションモデル (機能モデル) として作ってみました。

A/D 変換器は下位階層の回路とし、D/A 変換器は B 電圧源ひとつで済ませま した。 分解能は 8bit です。 パラメーターの adc_scl が ADC の入力電圧レンジを決め ます。 これが 1.0 のとき ±1V 範囲、2.0 のとき ±2V 範囲になります。 D/A 変換器 の出力電圧レンジは V= の式に係数を乗算して下さい。「I=...」に 変えれば、電流出力の D/A 変換器になります。

1.png

V1, V2 はテスト用のアナログ信号源で、X1 ジャンパーの左側のラベルを編集すれば 切り換えが出来ます。 V3 はサンプリングクロック源です。 B10 が D/A 変換器 です。 (.tran コマンドの Time to Start Saving Data を 1ms にしていることに御注意願います。)

 8bADC の内容
2.png

これはフラッシュコンバーターです。 サンプルアンドホールド回路は不要です。(そう信じています。)

 過渡応答グラフ
3.png

V(daout)-V(in) が誤差電圧です。 入出力の時間遅れがあるために誤差電圧は 0 には ならず、入力電圧の微分に比例した形になります。

データのコードは 2 の補数です。 オフセットバイナリーに変更するなら 8bADC の ND7 出力 を使います。 D/A 変換器の方は B10 の式を、
 V=(128*V(nb7) + 64*V(b6) + 32*V(b5) + 16*V(b4) + 8*V(b3) + 4*V(b2) + 2*V(b1) + V(b0) - 128)/128
に変えます。

 adda1.asc  8bADC.asc  8badc.asy  adda1.plt


 使用法:

LTSpice/SwitcherCAD III が起動中なら一旦終了させます。 ダウンロード したファイル名の余分な .txt を取って適当なフォルダーに置き ます。 adda1.asc、8badc.asc と *.plt は同じフォルダーに置 き、8bADC.asy は LTC\SwCADIII\lib\sym\ 以下のフォルダーに置く必要があり ます。(私はシンボルファイルを LTC\SwCADIII\lib\sym\sym_new\ に置きました。)

adda1.asc をダブルクリックすると LTSpice が起動してトップレベルの 回路が表示されます。 ここで Hierachy → Open this Sheet's Symbol は 使えないし、8bADC のシンボルを右クリックしても特別なダイアログが 出てこないでしょう。

回路図の 8bADC のシンボルを一度 Edit → Delete (F5) で 消して、Edit → Component (F2) からたどって 8bADC のシンボルを選択し、もと 通りの位置に置きます。 これを右クリックすると Navigate/Edit Schematic Block と いう特別なダイアログが出てきます。 Open Schematic ボタンを押す と 8badc.asc が Instance: X2 として読み込まれるはずです。 タブの adda1.asc を クリックすればシミュレーションを開始できます。

その後、もっと簡単な方法を 見つけました。エクスプローラー で adda1.asc と 8bADC.asc の両方を選択して、開くあるいはプログラムから 開く、によって LTSpice/SwitcherCAD III を起動します。 すぐにシミュレーション を開始できます。


もどる
Valid HTML 4.01!