目次
R3361Dは株式会社アドバンテスト製の9kHz〜3.6GHzの周波数領域をカバーするポータブル・スペクトラムアナライザです。この広範囲において最高分解能30Hz、残留FM20Hzp-p、近傍ノイズ特性-105dBc/Hzという高度な基本性能を有しています。トラッキングジェネレーターは、9kHzから3.6GHzまで掃引可能で、HP8590Eなどと異なり、自動的にトラッキングエラーを較正する機能を有しています。
R3361Dは非常に多くの機能を持っており、それぞれGP-IB経由でコントロールする事ができます。このデバイスサポートでは、ベータトロンチューン測定に必要最低限な機能をサポートしています。
本デバイスサポートは、EPICS R313で開発したものです。EPICSそのものに対する説明、入門出家入道遁世については専門家に帰依するなり、コントロールグループのページをご参照なさるなりしてください。動作はPPC750で確認しています。
GDLコードを以下に示します。SRQ割り込みがかかったとき、ステータスバイトをクリアするEPICSレコードが動作するようにしています。ということで、SRQのあとの動作は、このデータベースからFLINKしたデータベースが行うように、データベース内のリンクを作成する必要があります。
waveform転送はバイナリー転送です(倍しか早くならないけど)。このため、waveform転送の時だけはデリミタをEOIのみにする必要があります。
また、超う×××ったれなことに、ADVANTEST殿のSpectrum Analyzerは
伝統的に
トレースデータは「測定値」ではなく、トレースポジションを出力して
くださるので、一般的にはどこかで使い物になるデータに変換する必要があると
思われますが、その機能をデータベースではなくEPICSシーケンサに
やらせることに
しました。
ステータスバイトクリアのデータベース(FBLAS:SRQREC)のFLINK先のどこかに
calcレコード(FBLAS:SWTRIG)をリンクしておき、これをモニターしてTRACE:Aを
SPECTRUM:AあるいはSPECTRUM:Bに変換します。
dbdファイルの中で次のように定義します。(自動的にできるはず)
#R3361 dbd list
device(ai,GPIB_IO,devAiR3361Gpib,"R3361")
device(ao,GPIB_IO,devAoR3361Gpib,"R3361")
device(bi,GPIB_IO,devBiR3361Gpib,"R3361")
device(bo,GPIB_IO,devBoR3361Gpib,"R3361")
device(stringin,GPIB_IO,devSiR3361Gpib,"R3361")
device(stringout,GPIB_IO,devSoR3361Gpib,"R3361")
device(longin,GPIB_IO,devLiR3361Gpib,"R3361")
device(longout,GPIB_IO,devLoR3361Gpib,"R3361")
device(mbbi,GPIB_IO,devMbbiR3361Gpib,"R3361")
device(mbbo,GPIB_IO,devMbboR3361Gpib,"R3361")
device(waveform,GPIB_IO,devWfR3361Gpib,"R3361")
このデバイスサポートで使うデータベースの例を示します。
DTYP | Record | Signal | Name | Function | Remarks
|
---|
R3361 | ao | 0 | $(USER):SETCF | 中心周波数設定 |
|
R3361 | ai | 1 | $(USER):GETCF | 中心周波数読み取り |
|
R3361 | ao | 2 | $(USER):SETSTARTF | スタート周波数設定 |
|
R3361 | ai | 3 | $(USER):GETSTARTF | スタート周波数読み取り |
|
R3361 | ao | 4 | $(USER):SETSTOPF | ストップ周波数設定 |
|
R3361 | ai | 5 | $(USER):GETSTOPF | ストップ周波数読み取り |
|
R3361 | ao | 6 | $(USER):SETCFSTEP | 周波数ステップ設定 | 要るまい
|
R3361 | ao | 7 | $(USER):SETCFSTEP:AUTO | 周波数ステップ自動 | 要らんじゃろう
|
R3361 | ai | 8 | $(USER):GETCFSTEP | 周波数ステップ読み取り | 要らんわ
|
R3361 | ao | 9 | $(USER):SETSPAN | スパン周波数設定 |
|
R3361 | ai | 10 | $(USER):GETSPAN | スパン周波数読み取り |
|
R3361 | ao | 11 | $(USER):SETRBW | RBW設定 |
|
R3361 | ao | 12 | $(USER):SETRBW:AUTO | RBW自動 |
|
R3361 | ai | 13 | $(USER):GETRBW | RBW読み取り |
|
R3361 | ao | 14 | $(USER):SETVBW | VBW設定 |
|
R3361 | ao | 15 | $(USER):SETVBW:AUTO | VBW自動 |
|
R3361 | ai | 16 | $(USER):GETVBW | VBW読み取り |
|
R3361 | ao | 17 | $(USER):SETSWEEP | sweep設定 |
|
R3361 | ao | 18 | $(USER):SETSWEEP:AUTO | sweep自動 |
|
R3361 | ai | 19 | $(USER):GETSWEEP | VBW読み取り |
|
R3361 | ao | 20 | $(USER):SETAT | attenuator設定 |
|
R3361 | ao | 21 | $(USER):SETAT:AUTO | attenuator自動 |
|
R3361 | ai | 22 | $(USER):GETAT | attenuator読み取り |
|
R3361 | ao | 23 | $(USER):SETCPL:AUTO | coupling auto |
|
R3361 | ao | 24 | $(USER):SETYSCALE | Y軸設定 | 10,5,2,1,0.5,0.2,0.1のみ受け付ける(mbboにしろよ!)
|
R3361 | mbbi | 25 | $(USER):GETYSCALE | Y軸読み出し | 0=10dB,1=5dB,2=2dB,3=1dB,4=0.5dB,5=0.2dB,6=0.1dB
|
R3361 | ao | 26 | $(USER):SETREF | reference level設定 |
|
R3361 | ai | 27 | $(USER):GETREF | reference level読み取り |
|
R3361 | ao | 28 | $(USER):SETTGPWR | TG power設定 |
|
R3361 | ao | 29 | $(USER):SETTGPWR:ON | TG on |
|
R3361 | ao | 30 | $(USER):SETTGPWR:OFF | TG off |
|
R3361 | ai | 31 | $(USER):GETTGPWR | TG power読み取り |
|
R3361 | ao | 32 | $(USER):SETTGCAL:AUTO | TGトラッキング自動調整 | 通常は使用可。manualでないとダメなこともある。
|
R3361 | so | 33 | $(USER):TITLE | TITLE設定 | LON/たいとる/としてくだされ
|
R3361 | so | 34 | $(USER):TITLE:OFF | TITLE off |
|
R3361 | waveform | 35 | $(USER):GETTRACE:A | トレースA転送 | 701点、0から400の値になる
|
R3361 | waveform | 36 | $(USER):GETTRACE:B | トレースB転送 | 701点、0から400の値になる
|
R3361 | ao | 37 | $(USER):SETTRIG:SINGLE | シングルショットトリガー |
|
R3361 | ao | 38 | $(USER):SETTRIG:START | トリガースタート |
|
R3361 | ao | 39 | $(USER):SETTRIG:CONT | フリーラン |
|
R3361 | ao | 40 | $(USER):SETTRACE:CLEARA | トレースAクリア | いらん
|
R3361 | ao | 41 | $(USER):SETTRACE:CLEARB | トレースBクリア | 不要
|
R3361 | ao | 42 | $(USER):SETMARKER:PEAK | マーカーをpeakに |
|
R3361 | ao | 43 | $(USER):SETMARKER:ON | マーカーON |
|
R3361 | ao | 44 | $(USER):SETMARKER:OFF | マーカーをOFF | 要らんかも
|
R3361 | ao | 45 | $(USER):SETMARKER:DELTA | マーカーをdelta modeに | いりませんとも
|
R3361 | ao | 46 | $(USER):SETMARKER:NORMAL | マーカーをnormal modeに |
|
R3361 | ai | 47 | $(USER):GETMARKER:FREQ | マーカー周波数読み取り |
|
R3361 | ai | 48 | $(USER):GETMARKER:AMP | マーカーamplitude読み取り |
|
R3361 | ao | 49 | $(USER):SETVEW:TRA | Trace Aをアクティブ設定 |
|
R3361 | ao | 50 | $(USER):SETVEW:TRB | Trace Bをアクティブ設定 |
|
R3361 | ao | 51 | $(USER):INIT_ALL | SA初期化 | やめて
|
R3361 | ao | 52 | $(USER):SETVEW:WRITEA | A write | ?
|
R3361 | ao | 53 | $(USER):SETVEW:WRITEB | B write | ?
|
R3361 | ao | 54 | $(USER):SETVEW:VIEWA | A view | ?
|
R3361 | ao | 55 | $(USER):SETVEW:VIEWB | B view | ?
|
R3361 | ao | 56 | $(USER):SETVEW:MAXA | A maxhold | ?
|
R3361 | ao | 57 | $(USER):SETVEW:MAXB | B maxhold | ?
|
R3361 | longout | 58 | $(USER):SETAVGA | A avarage回数設定 |
|
R3361 | ao | 59 | $(USER):SETVEW:AVGA:START | A Average start |
|
R3361 | ao | 60 | $(USER):SETVEW:AVGA:STOP | A Average stop |
|
R3361 | ao | 61 | $(USER):SOFTINIT | Status clear | 役に立たないかも
|
R3361 | longout | 62 | $(USER):SETAVGB | B avarage回数設定 |
|
R3361 | ao | 63 | $(USER):SETVEW:AVGB:START | B Average start |
|
R3361 | ao | 64 | $(USER):SETVEW:AVGB:STOP | B Average stop |
|
R3361 | longout | 65 | $(USER):SETTGMAN | TGトラッキングマニュアル調整 |
|
R3361 | so | 66 | $(USER):SRQON | SRQ ON | 掃引終了時(など)にSRQ出る
|
R3361 | so | 67 | $(USER):SRQOFF | SRQ OFF |
|
R3361 | so | 68 | $(USER):SRQREC | ステータスバイトクリア | SRQ後このレコードが起動される
|
R3361 | so | 69 | $(USER):SETDIV8 | 画面8divに設定 | 初期状態
|
R3361 | so | 70 | $(USER):SETDIV12 | 画面12divに設定 | とてものろくなる
|
R3361 | mbbi | 71 | $(USER):GETDIV | 画面div数 | 0=8div,1=12div,2=その他(って何じゃ?)
|
Soft | waveform | N/A | $(USER):SPECTRUM:A | トレースAの値 | シーケンサが変換
|
Soft | waveform | N/A | $(USER):SPECTRUM:B | トレースBの値 | シーケンサが変換
|
Soft | bi | N/A | $(USER):TRACE:SEL | SPECTRUMAB変換選択 | 0ならA、その他はB
|
Soft | calc | N/A | $(USER):SWTRIG | スイープ終了トリガ | シーケンサ使用
|
まだ全部はテストしていません。
データベースファイル本体例は以下をご参照ください。
通常通りのGP-IB設定およびシーケンサ設定をします。
memAddToPool(0x2000000,0x2000000)
enableSlaveA24()
sysA24MallocInit(0x40000)
dbLoadDatabase("dbd/fbppcApp.dbd")
dbLoadRecords("fbppcApp/Db/FBLSAA.db","USER=FBLAS, ADDR=A2")
nigpib_num_links = 1
ht2992_num_cards = 0
iocInit
seq &AD_SA1
EPICSシーケンサを使って波形転送をするためには、FBLSA:SRQONを設定してください。
現在このspectrum analyzerは運転に使用していませんが、現有機のトラブル時に
は代替機として使用する予定です。とはいってもコマンド、トレースデータいずれ
をとっても互換性がないので、簡単にはいきませんけど。
Makoto Tobiyama
28/Apr/2004
Return to FB Home Page...