目次
PVME-321は、インターニックス株式会社殿が開発した広範囲なユーザーに対応出来るよう設計された、低価格、高性能なVMEバス対応のDAコンバータです。
これから紹介するデバイスサポートは、このボードを「とりあえず」EPICSで使うためにtobiyamaが書いたものです。既に多くの偉大な先達がお書きになったデバイスサポートを参考にしています。本ボードは色々な機能を持っていますが、以下のデバイスサポートは全てのモード変更には対応していません。
- インターバルタイマー及び割り込みは使用しない。
- アクセスモードはA24 Supervisor-Dataのみ。
上記と違うモードで使用するためには、デバイスサポートを変更する必要があります。多分簡単です。
PVME-321を操作する上で必要な各レジスタについて紹介します。詳しくはPVME-321のユーザーズ・マニュアルをご覧下さい。ベースアドレス(BASE_IO)は省略しますが、あるアドレス(例えば0x01)が書いてある場合、BASE_IO+0x01だと思って見て下さい。特に断らない限り、unsigned charアクセスをしていると思って下さい。
- function registor 0(0x00)
ユーザー・タイマにカウント値を設定するレジスタです。1回目に16ビットのカウント値の下位バイトを、2回目に上位バイトを書き込みます。使用しませんので、0xffでも書き込んでおきます。
- function registor 1(0x06)
カウント条件を決めるレジスタです。0x34を書き込むことになっているそうです。
- control registor 0 (0x19)
8つのチャンネルの出力のenable/disableを指示します。0がenableです。D0がチャンネル0でD7がチャンネル7です。
- control registor 1(0x22、short)
ユーザ・タイマにより割り込み動作を行うときのROAK用レジスタです。使用しません。
- control regisotr 2(0x25)
ユーザータイマーのスタート、ストップをコントロールするレジスタです。0x01でタイマースタート、0x00でストップです。タイマーは使用しないので0x00を書き込みます。
- data registor 0(0x30、short)
チャンネル0用レジスタです。ユニポーラ時はストレート・バイナリ、バイポーラ時はオフセットバイナリです。以下同。
- data registor 1(0x32、short)
- data registor 2(0x34、short)
- data registor 3(0x36、short)
- data registor 4(0x38、short)
- data registor 5(0x3A、short)
- data registor 6(0x3C、short)
- data registor 7(0x3E、short)
本デバイスサポートは、EPICS R313用です(R312で動かない理由はないと思いますが)。EPICSそのものに対する説明、入門出家入道については専門家に帰依するなり、コントロールグループのページをご参照されるなり、各自ご努力ください。R312とR313はディレクトリ構造、ライブラリ構造とも大きく変わっていますのでご注意下さい。また、IOCは68k40及びPPC750で動作確認を行っています。
本デバイスサポートについては、目新しいところは何もありませんので、source fileを示すことで、コードの説明とさせていただきます。
このデバイスサポートで使うデータベースをまとめると、以下の様になります。
Database | Name | C | S | function | SCAN | DTYP | その他
|
---|
mbbiDirect | status | 0 | 0 | status read | 10 second | PVME321 |
|
mbboDirect | ch_cntrl | 0 | 0 | channel enable | Passive | PVME321 |
|
longout | ch0〜ch7 | 0 | 0〜7 | D/A data | Passive | PVME321 |
|
capfastで書いたデータベースを下に示します。
汎用8チャンネル12ビットADC-PVME331のデバイスサポート及びEPICSデータベースの概略を紹介しました。ご質問等はMakoto Tobiyamaまでお寄せ下さい。
Makoto Tobiyama
15/Sep/98
Return to FB Home Page...