SIS 3301 8ch 100MHz Flash ADCを使ってみる

Back / Up / Next


最近SIS 3301 FADCを数台購入したので、その機能を紹介し、その今後の可能性とテスト結果を紹介します。

特徴 / 機能
収集モード
Event
[Single Event]と[Multi Event]モードを選べる。 [Multi Event]ではTriggerがかかる度に自動的にSamplingを行なう。

Sampling
Samplingを開始するのに、外部からTrigger信号を入力させるか、あらかじめ Thresholdを設定しておき、Threshold 以下/以上の場合にSamplingを開始させる ことができる(autostart)。
通常使うと思われる、外部からTrigger信号を入力する場合は、[Start/Stop]と [Gate]の2種類がある。 [Start/Stop]はNIMのLogic PulseをStart時とStop時に2発入れる。Startと StopのPulseの間中Samplingしている。 [Gate]は一般的なADCのGateと同じようにNIMのGateが入っている間中 Samplingします。
また、[Start delay] / [Stop delay]の機能があり、 Start Pulse(Gate leading edge)、Stop Pulse(Gate trailing edge)を指定し たClock数だけ実際の入力よりもそれぞれ遅らせることもできます。

Memory
データをMemoryに蓄える時に[Single shot]と[Wrap]モードが使えます。 [Single shot]では最大128Ksample取ると自動的にSamplingが終了します。 [Warp]ではMemoryをring-bufferのように使い、Memoryの最後までたどり着くと 自動的にMemoryの先頭からどんどんデータを上書きしていきます。


便利なこと
WrapモードでTrigger後入れ
[Warp] + [Start/Stop]モードで、あらかじめStart Pulseを入れておき常に Samplingしている状態で後からStop Pulseを入れてる方式を使うと、 欲しい波形よりも後からTrigger(Post Trigger)を入れることが可能です。 ようするに、欲しい信号とTriggerの時間差がMemoryが上書きされる時間よりも 短ければ、Analog Delayが必要ありません。 また、[Stop delay]も組み合わせると、 Triggerの前後の波形を読みだすこともできます。 このページの最後にテストの結果があります。

Multi Event / Double Buffer
SIS3301は各chごとに2つのmemory bankを持っている。 [Multi Event]で、1つのmemory bankに入れる最大イベント数を設定し、 さらにauto bank switch機能で自動的にbankを切替えることができる。 また、bankが一杯になった時にIRQを発生させることができるので、 それを期にCPUでデータを読みだすと、読み出しさえおいつけば、 dead time lessのデータ収集が可能であるはず。 (テストはしてません)


テスト結果
セットアップは写真(図1)のとおり、Function Generatorから適当な Pulseを発生させて、SIS3301に入力しました。 SIS3301の他にRPV-130 I/O RegisterのInterruptとOutputの機能を使いました。
図1 : セットアップ 図2 : 入力波形とStart/Stop Pulseの例で、黄がStart、青がStop、紫が入力波形

普通にとる
Function GeneratorでPulse波形を出力させ、 よく使われるADCと同じようにGateを作ってその間に欲しい波形がくるように調 整してデータをとった。 [Gate]と[Start/Stop]モードで特に違いはないです。 (図3と図4では単にGate、Start/Stopと入力波形との時間関 係が違うだけで、本質的に違いはないです。)
図3 : Gate mode 図4 : Start/Stop mode

WrapモードでPost Trigger
ここでは、Function GeneratorでSin波を発生させて、1周期の波形を取り込ませ ようと思います。

あらかじめ適当な時刻にStart Pulseを入れ、Samplingを開始しておきます。 次に図5のように波形に同期させてStop Pulseを入力します。 図5はStop Pulseより800 clock (8 us) 前の波形からデータを 読みだしたもの。 これで、Post Triggerが使えていることがわかります。
図5 : 波形とStop Pulseの時間関係 : 黄が入力波形で青がStop Pulse、 Start Pulseはこれより以前の適当な時刻に入力してある 図6 : Stop Pulseより8 us 前の波形を読み込んだ

さらに[Stop Delay]の機能で、Stop Pulseを400 clock (4 us)遅らせて図 6と同じように800 clockデータを読み出すと図7になります。 Stop Pulseが遅らされていることがわかります。 遅らせた400 clock分も考慮して1200 clock (12 us) データを読み出すと図8 になります。 これでめでたくSin波が1周期とれました。
図5 : Stop Delayを4 us 入れて、8 us前の波形を読み込んだ 図6 : Stop Delayを4 us 入れて、12 us 前の波形を読み込んだ

September 4, 2003
Hidetada Baba <baba@daq.rikkyo.ac.jp>