[KEKB Bunch Feedback Group]

株式会社デジテックス研究所社製14ビット4チャンネルログレシオビーム位置モニタ18K07用EPICS Device Support(MV5500用)の製作(Japanese)


by とびやま まこと(Makoto Tobiyama)/KEKB ビームモニターグループ

警告
以下の記述に関しては、意図する、しないに関わらず多くの誤り、誤解が含まれていると思われますので、決して信用してはいけません。これを信じて起きた損害に関しては、当方は一切責任を持ちません。


If you want to contact with the author, please E-mail to makoto.tobiyama@kek.jp.
目次

1.はじめに

18K07は、4点のビーム位置モニター信号を508MHz帯域濾波器及びログアンプ を通過した後、14ビットAD変換しメモリーにセーブ出来るVME 1幅のモジュールです。ここで紹介するデバイスサポートはEPICS R314で動作するMV5500用です。

2.VMEバスレジスタ

18K07ボードのI/Oマップは以下の通りです。
アドレスWrite/Readデータ
313029282726252423222120191817161514131211109876543210
0x**(**00)00000(R/W)****CH3:ADデータ****CH1:ADデータ
****Ch3****CH1
0x**(**00)0FFFC****CH3:ここまで(32kワード時)****CH1:32k
****Ch3****CH1
0x**(**00)FFFFC****CH3:ここまで(256kワード時)****CH1:256k
0x**(**01)00000(R/W)****CH4:ADデータ****CH2:ADデータ
****CH4****CH2
0x**(**01)0FFFC****CH4:ここまで(32kワード時)****CH2:32k
****CH4****CH2
0x**(**01)FFFFC****CH4:ここまで(256kワード時)****CH2:256k
0x**(**10)00000R/W*AD_START
0x**(**10)00004R/W*AD_MEMORY
0x**(**10)00008R/W*TRG_POS
0x**(**10)0000CR/W*IRQ_ENB
0x**(**10)00010R/W*Reserved
0x**(**10)00014R*AD_STATUS
0x**(**10)00018R*IRQ_NO
0x**(**10)0001CR*IRQ_ID
0x**(**11)*****R*トリガポインタレジスタ(R)
0x**(**11)FFFFFN/A*(NOT USED)

ADCのデータフォーマットは、
入力電圧ディジタル出力
(MSB)(LSB)
2V0011111111111111
1V0010000000000000
0V0000000000000000

です。

3.EPICS環境

本デバイスサポートは、EPICS R314のVxWORKS(MV5500)用に開発したものです。EPICSそのものに対する説明、入門出家入道遁世については専門家に帰依するなり、コントロールグループのページをご参照なさるなりの自活努力が必要です。現時点で、MV5500用のデバイスサポートはabco3(呪われたSun OS)でしか開発出来ません。abco3とLinuxマシンとの相性は極めて麗しくないので、開発には相当の覚悟が必要です。

4.コードの概要(変更点)

コードを以下に示します。

5.EPICSデータベースサンプル

サンプルファイルは以下を参照してください。 mbbiDirectのsignal=1をI/O Intrに設定し、これのFLINKに waveformレコードを指定、そのFLINKにFanoutを指定して、 EVENT確認用のレコード及び各subArrayをプロセスします。なお、現在の所この環境ではcompactSubarrayはまだサポートされていませんので、残念ながらsubarrayで受けるしかありません。こちらも、Makefileにちゃんと登録して gmakeをしておく必要があります。なお、subarrayのNELMが32kワードになって いますので、R313環境ではcagetできません。R314でもEPICS_CA_MAX_ARRAY_BYTESの設定が必要です。

6.スタートアップファイルサンプル

/cont/bootp/iocの所には
# Example vxWorks startup file
#Following must be added for many board support packages
</cont/bootp/ioc/kekb_mv5500.cmd
putenv "EPICS_CA_MAX_ARRAY_BYTES=1048576"
# put your startup script below
</users/tobiyama/epics_M5/iocBoot/iocfbppc/st.test2.cmd
kekBootLog
printTime(60)
のように、自分の所のブートファイルを読みに行くように設定します。 なお、EPICS_CA_MAX_ARRAY_BYTESはクライアント側も設定しておかないと 長いwaveformを読む事が出来ません。
9枚の18K07ボードを使用する時のスタートアップファイル(の関係部分)は次のようになります。

dbLoadRecords("db/FB_DRMON.db","USER=FB41, CHAN=C0")
dbLoadRecords("db/FB_DRMON.db","USER=FB42, CHAN=C1")
dbLoadRecords("db/FB_DRMON.db","USER=FB43, CHAN=C2")
dbLoadRecords("db/FB_DRMON.db","USER=FB44, CHAN=C3")
dbLoadRecords("db/FB_DRMON.db","USER=FB45, CHAN=C4")
dbLoadRecords("db/FB_DRMON.db","USER=FB46, CHAN=C5")
dbLoadRecords("db/FB_DRMON.db","USER=FB47, CHAN=C6")
dbLoadRecords("db/FB_DRMON.db","USER=FB48, CHAN=C7")
dbLoadRecords("db/FB_DRMON.db","USER=FB49, CHAN=C8")

dev18k07Config(9,0x24000000,0x4,0xf0)

dbpf "FB41:ADC4:MEMSIZE","0"
dbpf "FB41:ADC4:TRGPOS","4"
dbpf "FB41:ADC4:IRQENB","3"
dbpf "FB41:ADC4:START","1"
dbpf "FB42:ADC4:MEMSIZE","0"
dbpf "FB42:ADC4:TRGPOS","4"
dbpf "FB42:ADC4:IRQENB","3"
dbpf "FB42:ADC4:START","1"
dbpf "FB43:ADC4:MEMSIZE","0"
dbpf "FB43:ADC4:TRGPOS","4"
dbpf "FB43:ADC4:IRQENB","3"
dbpf "FB43:ADC4:START","1"
dbpf "FB44:ADC4:MEMSIZE","0"
dbpf "FB44:ADC4:TRGPOS","4"
dbpf "FB44:ADC4:IRQENB","3"
dbpf "FB44:ADC4:START","1"
dbpf "FB45:ADC4:MEMSIZE","0"
dbpf "FB45:ADC4:TRGPOS","4"
dbpf "FB45:ADC4:IRQENB","3"
dbpf "FB45:ADC4:START","1"
dbpf "FB46:ADC4:MEMSIZE","0"
dbpf "FB46:ADC4:TRGPOS","4"
dbpf "FB46:ADC4:IRQENB","3"
dbpf "FB46:ADC4:START","1"
dbpf "FB47:ADC4:MEMSIZE","0"
dbpf "FB47:ADC4:TRGPOS","4"
dbpf "FB47:ADC4:IRQENB","3"
dbpf "FB47:ADC4:START","1"
dbpf "FB48:ADC4:MEMSIZE","0"
dbpf "FB48:ADC4:TRGPOS","4"
dbpf "FB48:ADC4:IRQENB","3"
dbpf "FB48:ADC4:START","1"
dbpf "FB49:ADC4:MEMSIZE","0"
dbpf "FB49:ADC4:TRGPOS","4"
dbpf "FB49:ADC4:IRQENB","3"
dbpf "FB49:ADC4:START","1"

7.おわりに

4チャンネル同時サンプルの 14ビットログレシオADCモジュール、18K07ボードのMV5500用 EPICSデバイスサポートおよびデータベースについて紹介しました。
Makoto Tobiyama
13/Jun/2011

Return to FB Home Page...