CYRIC Hyperball2 technical memo FERA関連
FERAとは First Encoding Readout ADCの略 CAMACモジュールを高速で読み出すためにLeCroyが開発 CAMAC読み出しではCAMACサイクルというものがあり、1chの読み出しに~10 msかかるため(Block readなしで)dead timeが多大 ⇒FERAで読めばモジュールのconversion timeのみでdead timeが決まるので、高速conversionモジュールの特性を最大限に生かせる CAMAC busはモジュールのイニシャライズにのみ使用し、FERAbusを通してデータを転送する 専用のドライバーモジュールにFERA対応のモジュールを接続する ドライバーさえ接続し、triggerやクリア、各種応答信号を正しく入れれば、自動的にデータサイクルを繰り返す
4301 FERA driver Ctrl bus LeCroy社製 Control bus、Data busをFERA対応のモージュールにデイジーチェーンで接続する Data出力portからメモリにdataを送る 主なinput、output GAI : ADC gate CLI : FERA clear ⇒ passを入れる REO : read enable out ⇒ FERA対応モジュールのREN (read enable)に入力 WAI⇒WSOを接続(輪っかにする) input, output 色々 Data出力 port Data bus
Hyperball2で使用するモジュール AD413a Pulse height ADC 3377 TDC 4300B QDC 13 bit ch resolution, 6 ms conversion time/ch, good linearity, dynamic range 10 V ADC input 4 ch, Pileup rejection input 4 ch 3377 TDC 8 ns-32 ms range, 1-16 hits, 1.8 ms+0.2 ms/hit conversion time for double word mode (2 ms-8.4 ms) 32 ch input 4300B QDC 11 bit ch resolution, 50-500 ns gate range, 8.5 ms conversion time+2.5 ms encoding time Pedestal subtraction (0-255 ch) 16 ch input
Connection TDC common stop 4301 FERA ADC ADC ADC TDC TDC TDC Control bus ADC gate Pass Pass ⇒ Clear ・・・・ ・・・・ data Data bus メモリへ WSO 4301 FERA ADC TDC 配線には細心の注意を払うべし 特にREN-PASS接続が間違いやすい 2 pinの接続は極性に注意 REN REN 次へ RQO PASS PASS
基本的な流れ 各モジュールがready Trigger発生 ⇒ ADC gate, TDC common stop発生 Data収集 各モジュールのconversion Conversion終了後、各モジュールがREQ (read request)信号を出す FERA driverがモジュールからのREQ信号を受付け、REO (read enable out)信号を出す (同時に出るRQO信号はREOに対応する) FERA driverに一番近いモジュールがREO信号をRENで受け、dataをFERA driverに送る。(一番目よりも後のモジュールは先にREQを出していても待ち続けることになる)この時、data転送しているモジュールはWSO (write strobe out)信号をFERA driverのWSI (write strobe input)に送る。WSOのやり取りが行われている間は、dataを転送しているモジュール以外はdata転送が禁止されていることになる 最初のモジュールのdata転送が終わると、FEAR driverはWAK (write acknowledge)信号をモジュールに返し、そのモジュールはpass信号を出し、次のモジュールがRENでpass信号を受け取るとdata転送を開始する。この時も7.と同様にWSO信号が出る 以下、最後のモジュールまでdata転送とpass信号のやり取りが行われる 最後のモジュールから出たpass信号をFERA driverのclearに入れることで、全体がresetされ、1.の状態に戻る (ちなみに3377 TDCはresetという概念が存在せず、circular bufferの一部を切り出して、FEAR driverからの信号に合わせて延々と送り続けている)
信号のタイミング 1 FERAにAD413a一台をつなげた一番シンプルな場合でADCが1 hitのとき AD413aのdata構造はHeader + dataの2 wordなのでWSOが2つ出て、conversion time分遅くなる 2 chにhitがあるとWSOは3つになる (Header + 1ch data+ 2ch data)。もちろん3 ch hitだと4つで、conversion time分遅れる AD413aは複数hitではRQO信号が出るタイミングもconversion time分遅くなり、転送時間だけ幅が長くなる AD413aの数が増えてると、上記の信号のタイミングや幅が変動する Trigger ADC gate Conversion RQO WSO Pass *以後、信号の幅とタイミングはスケールしてありません
信号のタイミング 2 FERAにAD413aと3377 TDCを一台ずつつなげた場合 Trigger ADCとTDCのconversionの終了を考えると、実際の場合でも図のようにRQOがADCとTDCで別々に出る このRQOのタイミングに合わせて、適切にRENに信号を入れなければならない この状態でRENをADC→TDCの順で入れると、ADCのRQOが無いのでFERAでADCにdataがないと見なされ、TDCのみのdataが転送されることになる ADCのconversion(もしくはgate?)中にTDCのRQOが来るとダメ TDC→ADCの順だとdataが適切に送られる Trigger ADC gate TDC stop ADC Conversion TDC Conversion ADC RQO TDC RQO
信号のタイミング 3 Trigger 3377 TDCにはdelay timeというのが設定でき、RQOがでるタイミングを2 msずつ遅らせることが出来る(最大32 ms) 例えば図のようにTDCを待たせてやると、RQOはADCの後につながり、ADC→TDCの順にRENに信号を入れても適切にdataが送られる *ADC→TDCの読み出し順はFirst clearのためには必須 ADC gate TDC stop ADC Conversion TDC Conversion ADC RQO TDC RQO Delay
信号のタイミング 4 ADC RQO ADCとTDCともに1 hitの場合 ADC : 2 words (Header + data) TDC : 3 words (Header + data-up + data-down) ①の場合、TDC→ADCの順でRENに信号を入れると、TDC→ADCの順でdataが送られる ②の場合、ADC→TDCの順でRENの信号を送りかつTDCのRQOをdelay timeでADCの後になるようにすると、ADC→TDCの順でdataが送られる このように、RQOとWSOを見ながらFERAのdata転送のタイミングを調節する TDC RQO RQO① W/o delay WSO① TDC ADC RQO② W/ delay WSO② ADC TDC
信号のタイミング 5 Trigger FERAにAD413aと3377 TDC、4300B QDCを一台ずつつなげた場合 3つ使用するとややこしくなる QDCにdelay timeの機能がないので、3377 TDCのdelay を使って上手く合わせる必要がある TDCが最も早くconversionが終わり、QDCのconversion timeが一定時間、ADCが最も時間がかかり、そしてQDCとTDCのconversion timeの差が微妙なので QDC→TDC(delayed)→ADCで、読むことにする ADC gate TDC stop QDC gate ADC Conversion TDC Conversion QDC Conversion
信号のタイミング 6 ADC RQO QDC、ADC、TDCが1 hitの場合 ADC : 2 words (Header + data) TDC : 3 words (Header + data-up + data-down) QDC : 2 words (Header + data) QDC→TDC (delayed)→ADCで読む 実際にWSOを見てみたところ、図のようにQ→T→Aが並んで見える モジュールを複数にしてどう見えるか検証していないので、今後も調節は必要 TDC RQO QDC RQO RQO W/ delay WSO QDC TDC ADC *WSOはRQOの間にくるので、絵ではみ出ているのは 気にしないで下さい
3377 TDCの癖 Q→T→Aと読み出すときにdelay timeを調節しても、RQOのタイミングに関係なくTDCのheaderだけがQDCのdataの直後に送られる その他、読み出し方を問わずheaderの移動がある おそらく悪さはしないとは思われる メモリモジュールとの相性があり、メモリモジュールからTDCに渡される信号幅が適切でないと、passの出るタイミング等がおかしくなる場合がある 新規モジュールの使用の際はテストしてみる必要あり TDCにはFERAのclearはない。よって、trigger (TDC stop)をvetoしないと、FERAのサイクルが崩れ、data takingが停止してしまう
注意点 どのFERAモジュールも型番が違う系統(製作時期が異なる)どうしは一緒にしないほうが良い(らしい) 例:3377 TDCで型番B5~~~~とB3~~~~で同じinitializeプログラムで異なる動作になる B5~~~~はdelay timeが”0”設定で2 msなのに対し、B3~~~~は”0”設定で0 msのような感じである(offsetが異なる) 4300Bも太字と細字は、一緒にしないほうが良いらしい(全部確認したがFERAの挙動は同じようである)
ADC Register設定 Registerは2つ。一つ目は全体の設定。二つ目は各チャンネルのgate設定 ADC413aは”0”でon、”1”でoffになり、CAMAC関連は逆でon/off Register 1 B16 :overflow-suppression B15 :CAMAC LAM B14 :CAMAC random access B13 :Coincidence gate B12 :なし B11 :なし B10 :ECL port enable B9 :Zero-suppression B1~8:VSN設定(0~255) 「0x0000+VSN」で使用 Register 2 B16~B6:なし B5 :Enable Mater gate B4 :Enable ch4 gate B3 :Enable ch3 gate B2 :Enable ch2 gate B1 :Enable ch1 gate 「0x0000」で使用 Register 2はRegister 1でcoincidence gateを選択している場合はmaster gateのみがenable Registerの他にADCでdiscriがかけられる⇒F(17)・A(0~3)で設定値を書き込み
QDC Register設定 Registerは2つ。一つ目は全体の設定。二つ目は各チャンネルのpedestal設定 4300B QDCは”1”でon、”0”でoffになる Register 1 B16 :overflow-suppression B15 :CAMAC LAM B14 :CAMAC random access B13 :Date compression for CAMAC B12 :CAMAC pedestal subtraction B11 :ECL port enable B10 :ECL pedestal subtraction B9 :Date compression for ECL B1~8:VSN設定(0~255) 「0x8700+VSN」で使用 Register 2 Pedestal subtractionの設定 →0~255 chまでpedestalを引ける 各chの値を0x00XXで書き込む →F(17)・A(0~15)で書き込み →F(1)・A(0~15)で読み込み 4300Bはjumper pinの変更で8~11 bit(256~2048 ch)でrangeが変更できる 通常は11 bitモードで480 pC @ MAX
TDC Register設定 1 Registerの数と使用法はCommon start/stopモードで異なる。 読み出しもSingle wordとdouble wordモードがあり、rangeが異なる Common stop、Double wordモードで使用 Common stopモードの時 全体の設定 Clockやtrigger outputの設定(使用していない) Multi-hit数とtime rangeの設定 Requestのdelay timeの設定 Common startモードの時 全体の設定 MPIモードの設定(良く分からない) Multi-hit数の設定 Time rangeとRequestのdelay timeの設定 Clockやtrigger outputの設定
TDC Register設定 2 Common stop、double wordモードでの設定 com-stop-single、com-start-single、com-stop-double、com-start-doubleで それぞれ0(00)、1(01)、2(10)、3(11)とRegister 1のB16とB15で設定する Register 1 B16 :Common start/stop設定 B15 :Common start/stop設定 B14 :W/ (0) or W/o (1) header B13 :Buffer mode, Multi(1), single(0) B12 :ECL port (1) or CAMAC (0) B11 :Reading edge select, Both(1), Rise(0) B10 :なし B9 :なし B1~8:VSN設定(0~255) 「0x8800+VSN」で使用 Register 2 Clockやtrigger outputは使用しないので、すべてoffにする 「0x0000」で使用
TDC Register設定 3 3と4は実験や接続するFERAのモジュールの応じて設定を変更する必要がある 計算例を載せる B16 ~5 :Time scale設定 8 nsごとに設定できる N bitが2N-5に対応し例のように計算される 例:B16、B9、B6がonのとき (211+24+21)×8 ns = 16.53 ms B4~1 : Multi-hit数 (1~16 hit) 0設定で16 hitになる 2.0 ms、4 hitだとすると「0x1004」となる Register 4 TDCのRequest delay timeを決める B4~1のみを使用 0設定でも0 msにはならずに2 ms (1設定で2 ms) 計算は「Bit数×2 ms」 10 msとすると「0x0005」
Register設定まとめ ADC QDC TDC Reg1 :0x0000+VSN Reg2 :0x0000 Reg2 :0x00XX (XXは0~255) TDC Reg1 :0x8800+VSN Reg3 :0x1004 (2.0 ms, 4 hits) Reg4 :0x0005 (10 ms request delay)
Data format ADC TDC QDC