テクニカルリファレンス< GPIB-F-LPE,GPIB-FL-LPE,
GP-IB(PCI)F/FL,GP-IB(LPCI)F/FL,GP-IB(CPCI)F, GP-IB(CB)F/FL >
7/9
2007 年 5 月 7 日
4.3. 被シリアルポール設定 (+Ch - +Dh)
uPD7210 では、シリアルポールを受けたときに、ステータスバイトを 1Byte のみ送出します。
しかし、場合によっては 2Byte 以上のステータスを送出する必要があります。
このレジスタにアクセスすることで、複数 Byte の送出が可能となります。
+Ch 被シリアルポール設定
X X X X X X ESPAS ESTB
+Dh 未使用
X X X X X X X X
ESTB :マルチステータスバイト出力の有効化(1) /無効化(0)。デフォルト 0。
(0 にセット) ステータスバイトは 1 バイトしか送信されません。
(1 にセット) ステータスバイトを複数送信可能。
複数バイトのうち最初に OUT したデータにより、一連のステータスバイト出力において SRQ ライ
ンが有効になるかどうかが決定されます。
1 バイト目の rsv(40H)を有効にして OUT した場合、その後のステータスバイトにはすべて rsv が付加
されます。
ESTB を有効にしている場合にはステータスバイトは自動的に出力されないため、割り込みステータ
ス SPAS の確認後、1 バイト目を含めてステータスバイトを出力する必要があります。
合わせて、SPAS 確認後出力するデータには rsv を付加しないでください。
SPAS 確認後の送信タイミングには DO を使用し、データの出力はシリアルポールモードレジスタに
対し行ってください。
この際、SRQ ラインは 1 バイト目のステータスバイト出力時に落とされます。
ESPAS :SPAS 割り込みステータスの条件設定。SRQ 送出時のみ(1)/すべてのシリアルポール(0)。デフォルト 0。
(0 にセット) すべてのシリアルポールで SPAS 割り込みステータスが有効になります。
(1 にセット) SRQ を送出(rsv を有効にしてシリアルポールモードレジスタへ OUT)した後のシリアルポール実行
(1 バイト目のステータスバイト送信)で SP
AS 割り込みステータスが有効にります。
<プログラム例>
6 バイトのステータスバイトを送出する場合(ESTB は設定済み、Base=7210 部の先頭 I/O アドレス)
_outp(Base+0x03, Stb[0]); // 1 バイト目のデータを出力(SRQ 送出の決定)
For(n=0:n<=6:n++) //6 回繰り返す。
{
Sts = _inpw(Base+0x36);
While(sts != 0x01){ } // SPAS ステータス変化待ち
Sts = _inp(Base+0x01);
While(sts != 0x02){ } // DO 待ち
_outp(Base+0x03, (Stb[n] & 0xBF));
// 1 バイト目を含めシリアルポールモードレジスタへ任意のデータを OUT
} //(rsv ビットはマスクする)