[KEKB Bunch Feedback Group]

Internix社製16チャンネル対応16ビットD/A変換ボードPVME-632用EPICS Device Supportの製作(Japanese)


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

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


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

1.はじめに

PVME-632は、インターニックス株式会社殿の16ビットのD/Aを搭載したD/Aボードです。アナログ側とデジタル側はフォトカプラおよび絶縁型DC/DCコンバータにより完全にアイソレートされています。

これから紹介するデバイスサポートは、このボードを「とりあえず」EPICSで使うためにtobiyamaが書いたものです。既に多くの偉大な先達がお書きになったデバイスサポートを参考にしています。本ボードは色々な機能を持っていますが、以下のデバイスサポートは全てのモード変更には対応していません。

上記と違うモードで使用するためには、デバイスサポートを変更する必要があります。

2.VMEバスレジスタ

PVME-321を操作する上で必要な各レジスタについて紹介します。詳しくはPVME-632のユーザーズ・マニュアルをご覧下さい。ベースアドレス(BASE_IO)は省略しますが、あるアドレス(例えば0x01)が書いてある場合、BASE_IO+0x01だと思って見て下さい。特に断らない限り、unsigned charアクセスをしていると思って下さい。

3.EPICS環境

本デバイスサポートは、EPICS R313用です(R312で動かない理由はないと思いますが)。EPICSそのものに対する説明、入門出家入道については専門家に帰依するなり、コントロールグループのページをご参照されるなり、各自ご努力ください。また、IOCはPPC750でのみテストを行っています。
本デバイスサポートについては、あまり目新しいところはありませんので、source fileを示すことで、コードの説明とさせていただきます。

ボードの設定

設定がバイポーラなので、出力コードはオフセットバイナリとなります。このため、 以下の変換ルーチンを使用しています。
static unsigned short inpconv(indata)
     long indata;
{
  if (indata>32767)
    return(65535);
  else if (indata <-32768)
    return(0);
  else 
    {
      return(indata + 32768);
    }
}

4.EPICSデータベース

このデバイスサポートで使うデータベースをまとめると、以下の様になります。
DatabaseNameSfunctionSCANDTYPその他
bi$(USER):DA16:DATAOK0DAC status readPassivePVME632Not used
bi$(USER):DA16:OUTPUT_R1Forced-zero status10 secondPVME632
bo$(USER):DA16:SYNCOUT0Synchronos output triggerN/APVME632
bo$(USER):DA16:OUTPUT1Forced-zero outputN/APVME632
longout$(USER):DA16:CH00CH0 data outputN/APVME632
longout$(USER):DA16:CH11CH1 data outputN/APVME632
longout$(USER):DA16:CH22CH2 data outputN/APVME632
longout$(USER):DA16:CH33CH3 data outputN/APVME632
longout$(USER):DA16:CH44CH4 data outputN/APVME632
longout$(USER):DA16:CH55CH5 data outputN/APVME632
longout$(USER):DA16:CH66CH6 data outputN/APVME632
longout$(USER):DA16:CH77CH7 data outputN/APVME632
longout$(USER):DA16:CH88CH8 data outputN/APVME632
longout$(USER):DA16:CH99CH9 data outputN/APVME632
longout$(USER):DA16:CH1010CH10 data outputN/APVME632
longout$(USER):DA16:CH1111CH11 data outputN/APVME632
longout$(USER):DA16:CH1212CH12 data outputN/APVME632
longout$(USER):DA16:CH1313CH13 data outputN/APVME632
longout$(USER):DA16:CH1414CH14 data outputN/APVME632
longout$(USER):DA16:CH1515CH15 data outputN/APVME632

5.おわりに

汎用16チャンネル16ビットDAC-PVME632のデバイスサポート及びEPICSデータベースの概略を紹介しました。ご質問等はMakoto Tobiyamaまでお寄せ下さい。
Makoto Tobiyama
02/Feb/2001

Return to FB Home Page...