Kinoko Module Driver リファレンス |
種別 CAMAC ADC/TDC Tester 製造者 LeCroy (http://www.lecroy.com) 参照名 LeCroy-1976 読み出し read() サービス要求 なし
- selectChargeMode() / selectTimeMode()
- 電荷モードかタイミングモードの選択をする.
- 電荷モードでは,タイミングに 8bit DAC,電荷に 16bit DAC を使用する.
- タイミングモードでは,タイミングに 16bit DAC を使用し,電荷出力は diable される
- setChargeFullScale(int charge_full_scale_pC)
- CHARGE 出力のフルスケールを pC 単位で指定する.
- 指定できる値は,300, 600, 1200 のいずれか
- それ以外(最大1200)を指定すると,amplitude と組み合わせて自動でスケールされる.
- デフォルトは 300 pC
- setTimeFullScale(int time_full_scale_nsec)
- START-STOP 間隔のフルスケールを nsec 単位で指定する.
- 指定できる値は,150, 300, 600, 1200, 2400, 4800, 9600 のいずれか
- それ以外(最大9600)を指定すると,amplitude と組み合わせて自動でスケールされる.
- デフォルトは 9600 nsec
- setGateWidth(int width_nsec)
- GATE 出力の長さを nsec 単位で指定する.
- 指定できる値の範囲は,10 から 9610 まで
- デフォルトは 9610 nsec.
- selectShortPulse() / selectLongPulse()
- START および STOP 信号のパルス幅を指定する.
- Short で 20 nsec,Long で 100 nsec
- デフォルトは 20 nsec
- selectFastTail() / selectSlowTail()
- CHARGE 出力の立ち下がり時間を指定する.実際の時間は ChargeFullScale の値に依存し,15 nsec, 35 nsec, 65 nsec (fast) または 350 nsec, 600 nsec, 1200 nsec (slow) から選ばれる.デフォルトは SlowTail.
- setAmplitude(int amplitude)
- 電荷モードでの出力電荷 Q,時間モードでの START-STOP 間隔 T を指定する.
- Q = ChargeFullScale * (amplitude/65535)
- T = TimeFullScale * (1 - amplitude/65535)
- execute()
- 設定にしたがい,1サイクルを実行する.
- read(int channel_bit_mask)
- read(ReadoutChannelList channel_list)
- 現在の設定値をデータに入れて返す.アドレスの意味は以下のとおり.
アドレス 値 0 Amplitude 1 Full Scale (pC または nsec) 2 Gate Width (nsec) 3 Tail Fall Time (nsec) 4 Pulse Width (nsec)
TDC Tester として使う例
datasource CamacAdcTester { int tester_station = 22; int adc_station = 17; int adc_channel = #0; CamacCrate crate; CamacController controller("Toyo-CC7x00"); CamacModule tester("LeCroy-1976"); CamacModule adc("Generic-Standard"); crate.installController(controller); crate.installModule(tester, tester_station); crate.installModule(adc, adc_station); SoftwareModule timer("IntervalTimer"); Register amplitude; on run_begin { tester.selectChargeMode(); tester.setChargeFullScale(600); tester.setGateWidth(200); tester.selectFastTail(); amplitude.load(0); timer.setInterval(0, 10000); } on trigger (timer) { amplitude.add(0x10); when (amplitude > 0xffff) { //terminate(); amplitude.load(0x10); } tester.setAmplitude(amplitude); tester.execute(); } on trigger (adc) { adc.read(adc_channel); adc.clear(); // read test pulse setting // 0: amplitude, 1: full scale, 2: gate width, 3: tail fall time tester.read(#0..#3); } }
datasource CamacTdcTester { int tester_station = 22; int tdc_station = 15; int tdc_channel = #0; CamacCrate crate; CamacController controller("Toyo-CC7x00"); CamacModule tester("LeCroy-1976"); CamacModule tdc("Generic-Standard"); SoftwareModule timer("IntervalTimer"); Register amplitude; crate.installController(controller); crate.installModule(tester, tester_station); crate.installModule(tdc, tdc_station); on run_begin { tester.selectTimeMode(); tester.setTimeFullScale(4800); tester.setPulseWidth(20); amplitude.load(0); timer.setInterval(0, 10000); } on trigger (timer) { amplitude.add(0x10); when (amplitude > 0xffff) { //terminate(); amplitude.load(0x10); } tester.setAmplitude(amplitude); tester.execute(); } on trigger (tdc) { tdc.read(tdc_channel); tdc.clear(); // read test pulse setting // 0: amplitude, 1: full scale tester.read(#0..#1); } }