目次
デジテックス1406シリーズは509MHzで動作する8ビット2タップFIRディジタルフィルターです。VMEバスよりコントロールできます。本デバイスサポートにバグがありますが、実用上問題ないのでとりあえず放置してあります。
- ブロック図
- 制御室の写真
- フィルター内部の写真
- VMEファンクション
- アドレスはA32およびA24をサポートしますが、本デバイスサポートはA32(拡張)用です。
- AMコードは0x0D(拡張特権)と0x3D(標準特権)をサポートしますが、本デバイスサポートは0x0D用です。
- 本システム1台で4,194,304バイト空間を占有します。つまり、0x00400000ごとのアドレス設定となります。このうち下位0x00200000をデータメモリ用に、上位0x00200000をコントロール用に(とはいってもほんの3ロングワードのみ)使用します。
2タップFIRボードのアドレスマップは以下の通りです。
- 0x**000000
データメモリ(R/W)。本システムには表メモリ裏メモリあわせて2Mバイトのっています。通常ここをVMEから読み書きすることは製造時のデバッグを除いてありませんので、本デバイスサポートでは先頭から5120までしか読まないようにしてあります。しかし、これとてもEPICSのwaveformの制限で転送、表示に制限があります。データは非常に込み入った構造をしていますが、ここでは説明を省略します。
- 0x**200000
コントロールレジスタ
mode | 0x0F | 0x0E | 0xD | 0x0C | 0x0B | 0x0A | 0x09 | 0x08 | 0x07 | 0x06 | 0x05 | 0x04 | 0x03 | 0x02 | 0x01 | 0x00
|
---|
write | N/A | 内部delay設定。8nsステップ | 8倍 | 4倍 | 2倍 | 1倍 | N/A | 同期非同期設定(1で同期モード) | 演算可(デバッグ用で通常0) | フィルター動作(0で可)
|
| | すべて1にするとスルーモード |
|
read | N/A | 8倍 | 4倍 | 2倍 | 0:演算モード、1:スルーモード | 1で同期モード | 0でファン停止 | 0でクロック停止 | 0でフィルター動作
|
- 0x**200004
TAP1設定 15ビット 1タップで2ns×32=64ns変わります。スルーモードの時は遅延設定値となります。2タップモードの時はスルーモードの遅延値より1タップ遅れます。ハーモニックナンバー5120の時は次のタップは160先です。
- 0x**200008
writeの時は2タップ目の設定値です。TAP1-TAP2となります。readの時はカウンタ停止アドレスです。15ビットです。
本デバイスサポートは、EPICS R313改訂版で開発したものです。EPICSそのものに対する説明、入門出家入道遁世については専門家に帰依するなり、コントロールグループのページをご参照なさるなり勝手になさってください。動作はPPC750のみで確認しています。
かなり初期のコードでとりあえず動くので不具合箇所たくさんありますが直していません。コードのみを以下に示しますが、longinとlongout以外の動作は保証できません。
dbdファイルの中で次のように定義します。
device(bi,VME_IO,devBiVmeFIR,"VMEFIR")
device(bo,VME_IO,devBoVmeFIR,"VMEFIR")
device(longin,VME_IO,devLiVmeFIR,"VMEFIR")
device(longout,VME_IO,devLoVmeFIR,"VMEFIR")
device(waveform,VME_IO,devWfVmeFIR,"VMEFIR")
初期化ファイルはdevVmeFIRCnfigで、ベースアドレスが0x20000000で3枚使うとすると、
devVmeFIRConfig(3,0x20000000)
の様に指定します。
このデバイスサポートで使うデータベースをまとめると、以下の様になります。
DTYP | Record | Signal | Name | Function | Remarks
|
---|
VMEFIR | longout | 0 | ($USER):TAP1 | TAP1設定 |
|
VMEFIR | longout | 1 | ($USER):TAP2 | TAP2設定 |
|
VMEFIR | longout | 3 | ($USER):STATUS | STATUS設定 |
|
VMEFIR | longin | 1 | ($USER):STATUS_R | STATUS読みとり |
|
その他のデータベースについては聞かないでください。まともにうごきません。
3台のFIRフィルタを使用する時のスタートアップファイル(の関係部分)は次のようになります。
dbLoadRecords("fbppcApp/Db/FB_FIR.db","USER=FBL:FIR:H , CHAN=C0")
dbLoadRecords("fbppcApp/Db/FB_FIR.db","USER=FBL:FIR:V , CHAN=C1")
dbLoadRecords("fbppcApp/Db/FB_FIR.db","USER=FBL:FIR:L , CHAN=C2")
devVmeFIRConfig(3,0x20000000)
iocInit
2タップFIRフィルターボード用のEPICSデバイスサポートおよびデータベースについて紹介しました。
Makoto Tobiyama
6/Mar/2001
Return to FB Home Page...