中村研実験室のCAMACとPCが通信できているかを確かめる最も基本的なテストの手順を書いたおぼえがき。babarl DAQについては、を参照。
(書いたことをあまり見直していないので間違いがたくさんあると考えられる。)
使用する装置は以下のとおり。検出器は用いない。ADCは、CAMAC Crateのステーションナンバー3番(左から3番のところ)に入っていると仮定する。
NBBQのbabarlDAQモードを用いて、CAMAC、PC間の通信テストを行う。NBBQ(Neo bb DAQ)とはRTlinuxでない普通のLinux上でも動くお手軽DAQシステム。検出器のテストなどのDead Timeを気にしないDAQに向く。
メモ)カーネルのバージョン確認は、コマンド: $ uname -r と打つ。
NBBQの使い方はに書いてあるが、ここでは手順を詳しく書く。また、ステーションナンバー3番にADCを入れたと仮定する。
$ cd ~/ $ mkdir test
ファイル名: setup |
---|
# Setup file for nbbq auto setup program. bbrl # Crate Controller CC7700 # setting of LAM source # LAMN : station number(N) of LAM module # LAMA : sub-address(A) for clear, enabel lam, disable lam ... # LAMCF : functoin(F) of module clear # LAMEN : function(F) of enable LAM # LAMDA : function(F) of disable LAM LAMN : 3 LAMA : 0 LAMFC : 9 LAMEN : 26 LAMDA : 24 # setting of output register # if use output register, set OPRN # OPRN : station number(N) of output register # OPBUSYCL : output value for busy clear signal # OPRN : 22 # OPBUSYCL : 1 # setting of ADC,QDC,TDC etc... # max 3 modules, READ1N [READ2N] [READ3N] # READxN : station number(N) # READxL : length of data (channel number) # READxAR : sub-address(A) of read function # READxFR : function(F) of read function # READxAC : sub-address(A) of clear function # READxFC : function(F) of clear function # module 1 READ1N : 3 READ1L : 8 READ1AR : 0 READ1FR : 0 READ1AC : 0 READ1FC : 9 # module 2 # READ2N : 4 # READ2L : 8 # READ2AR : 0 # READ2FR : 0 # READ2AC : 0 # READ2FC : 9 # module 3 # READ3N : 5 # READ3L : 8 # READ3AR : 0 # READ3FR : 0 # READ3AC : 0 # READ3FC : 9 |
ここでファイルの内容についておぼえがく。まず、# で始まる行はコメントでありその行は無視して考える。
ファイルの始めにある下記の文は、データ収集のモードと、使用するクレートコントローラを表している。
bbrl CC7700
bbrlモードでクレートコントローラCC/7700を用いてDAQするという意味。しかし、データ収集のモードはbbrlしか選択できない模様。ちなみに、クレートコントローラとしては、TOYO CC/7700か、Kinetic K3912+K2915の二つからしか選べないかも?Kinetic K3912+K2915を使用する場合は、CC7700の部分をK2915と書き換える。
下記は、LAMモジュールについての設定を書いている。
LAMN : 3 LAMA : 0 LAMFC : 9 LAMEN : 26 LAMDA : 24
(以下、曖昧。)
LAMモジュールのLAMはLook At Meの略で、このモジュールにデータがあるか否かをクレートコントローラが監視し、もしあればPCにデータが送信される。すなわち、モジュールのデータがPCに送信されるタイミングは、LAMモジュールの状態によって決定される。例えば、LAMモジュールにデータがある場合、他のモジュールにデータがなくとも、すべてのモジュールからクレートコントローラを介してPCにデータが送信される。また、他のモジュールにデータがあっても、LAMモジュールにデータがなければ、一切のデータはPCに送信されない。
通常LAMモジュールは、CAMACクレートに挿入されている複数のモジュールの中から一つを選び指定する。(通常は一つだが、複数選べるんだろか?)ここでは、LAMモジュールとして、CAMACクレートのステーションナンバー3番に入れたADCを選択した(選択するも何も、一個しかモジュールを挿入してないけど)。これは、LAMN : 3の部分に対応する。もしADCをCAMACクレートのステーションナンバー4番に入れたならば、LAMN : 4とすればよいかも。
LAMA : 0、LAMFC : 9、LAMEN : 26、LAMDA : 24の部分は、LAMモジュールを操作するときに送信する信号を設定している。例えば、LAMFC : 9の部分は、「モジュールをクリアするときは9という信号をADCに送る」ということを表している。言い換えれば、LAMモジュールは9という信号が送られてきた場合、モジュールをクリアする。この9という数字の持つ意味を調べるには、ADCのマニュアルを読めばよい。マニュアルは、インターネット上にある場合もある。ただし、LAMA : 0、LAMFC : 9、LAMEN : 26、LAMDA : 24の設定は、たいていのADCなら同じかも?つーかLAMFC : 9、LAMEN : 26、LAMDA : 24あたりはCAMAC規格で決まっているかも?
LAMA : 0の意味は、よくわからない。LAMFC : 9は、モジュールのクリア?つーか何をクリアしてるんだろか。LAMEN : 26は、ただのモジュールだったADCを、LAMモジュールとして覚醒させる信号?LAMDA : 24は、LAMモジュールを不能にする?
下記は、ADCからデータを読み込むときの設定をしている。
READ1N : 3 READ1L : 8 READ1AR : 0 READ1FR : 0 READ1AC : 0 READ1FC : 9
READ1N : 3 の部分はADCの入っているステーションナンバーを設定している。READ1L : 8 の部分はADCの入力チャンネル数を設定している。16CHのADCを使用するときは、READ1L : 16とすればよいかも。16CHのADCを使用し、READ1L : 2とすれば、16CHのうち2CHだけが使えるようになるようだ(あんまり確認していないけど)。READ1AR : 0、READ1FR : 0、READ1AC : 0、READ1FC : 9の部分はとくにいじらなくてよいかも?触らぬ神に祟りなし。今回はただの動作確認のため、アウトプットレジスタの設定はコメントアウトした(OPRN : 22、OPBUSYCL : 1の部分)。
以上ごちゃごちゃ設定したが、CAMACとの通信が出来ているかを確認するためだけなら、CAMACモジュールを全部抜き、以下の内容をsetupファイルに書くだけでよいかもしれない。試していないけれども。
bbrl CC7700