NAT7210を動かす①

投稿日 2010/07/18

NAT7210のリファレンス・マニュアルを読むと、さまざまな動作モードを示す記号(LACSなどの英略語)と、レジスタの多さ、設定項目の多さに幻滅してしまいます。

 

GPIB IEEE 488.2のスペックもまともに勉強するとなると大変です。市販のGPIB関連の本に助けを求めても、ほとんどは絶版となっています。中古本が手に入れば運がいいほうです。

 

私もGPIBについて全てを知った訳ではないし、NAT7210のリファレンス・マニュアルを完読した訳ではありませんので、以下の内容はあくまでも、「これでうまくいった」というレベルですので、参考程度とお考えください。この情報を鵜呑みにせずにNAT7210リファレンス・マニュアル等で確認してください。

 

関連記事:
「GPIBインターフェースの使い方」
「NAT7210 GPIBチップをリスナで動かす 」
「NAT7210 GPIB回路図」


 

●NAT7210のPower on message(PON)

 

NAT7210はトランシーバなどを介してGPIBバスに物理的につながっていますが、論理的にGPIBバス上に存在するかしないかという動作モードがあります。

 

電源を入れた直後でリセットされた状態は、論理的に存在しない状態です。この状態をPower on message(PON)と言い、コントローラなどからの信号は一切無視します。このPON状態の間、さまざまなレジスタ等の設定を行って動作モードを決定したあと、PONを解除して(論理的にGPIBバスにつないで)、初めてGPIBバス・デビューとなります。

 

   電源ON
   RESET(PON)

 

    この間にさまざまな設定を行う

 

   PON解除

 

●NAT7210のエミュレーション・モード(7210モードと、9914モード)

 

NAT7210はその名が示すとおり、NECのμPD7210をエミュレートしていますが、もうひとつTIのTM9914もエミュレートできるようになっています。今回は7210モードで使用しましたが、RESET後に、9914モードに切り替えるコマンド(sw9914)を発すれば、それ以降は9914モードとなります。リファレンス・マニュアルには両モードの使い方が説明されています。


 

●複雑なレジスタ構造

 

NAT7210には多くのレジスタがあります。それらのレジスタの値やビット値によって、動作モードを決めたり、GPIBバスの状態を知ることができます。また、トーカからのデータを受け取ったり、リスナにデータを送ったりすることができます。

 

レジスタはアドレス(オフセット)が付いており、READレジスタ、とWRITEレジスタに分かれています。同じアドレスのレジスタでも、READでアクセスするか、WRITEでアクセスするかで別のレジスタとなります。

 

○すぐにアクセスできるレジスタ

 

0から7までのアドレスが付いており、READレジスタが8個、WRITEレジスタが8個 計16個あります。(正確には後述のADRレジスタが2個ありますので、WRITEレジスタは9個です。)
アドレスは、信号線RS2,1,0でアクセスします。(アドレスとレジスタの機能は7210と9914モードとでは異なります)

 

以下に7210モードにおけるレジスタ名とそのアドレスを示します。

 

READレジスタ
アドレス  レジスタ名
 0     DIR
 1     ISR1
 2     ISR2
 3     SPSR *
 4     ADSR 
 5     CPTR *
 6     ADR0 *
 7     ADR1 *

 

WRITEレジスタ
 0     CDOR
 1     IMR1
 2     IMR2
 3     SPMR *
 4     ADMR
 5     AUXMR (Hiddenレジスタを参照)
 6     ADR (アドレス・レジスタ・マップを参照) *
 7     EOSR *

 

*印はPage-inモードがあるアドレス

 

○Page-inモードにしてからアクセスするレジスタ

 

WRITEレジスタAUXMRにPage-inモードに切り替えるコマンド(page-in)を指定し、その後以下のアドレスでアクセスします。Page-inモードにしてから最初の1回だけのREAD/WRITEでアクセスできます。

 

アドレス R/W  レジスタ名
 3     R    VSR
 5     R    SASR
 6     R    ISR0
 7     R    BSR
 3     W    ICR2
 6     W    IMR0
 7     W    BCR

 

○Hiddenレジスタ(隠されたレジスタ)

 

Hiddenレジスタは、AUXMRと同じアドレスでPage-inモードにする必要もなく、そのままアクセスできます。AUXMRとどのようにして区別するかというと、セットするデータのビットパターンです。AUXMRは値の決められたさまざまなコマンドを指定するレジスタですが、そのビットパターンは以下と重ならないようになっています。(Xは設定データ)

 

ビットパターン  レジスタ名
011XXXXX     PPR
100XXXXX     AUXRA
101XXXXX     AUXRB
1100XXXX     AUXRE
1101XXXX     AUXRF
0100XXXX     AUXRG
1110XXXX     AUXRI
0010XXXX     ICR

 

○アドレス・レジスタ・マップ

 

アドレス6のWRITEレジスタ ADRは、MSB(Bit7)が0か1によってADR0,ADR1となります。(Xは設定データ)

 

ビットパターン  レジスタ名
0XXXXXX      ADR0
1XXXXXX      ADR1

 

以上のレジスタの値やビット値をセットすることによりNAT7210を所定の動作モードにすることができます。


 

●リスナには2つある

 

リスナに設定する方法は2つあります。

 

①コントローラの居ないシステムで自分からリスナを宣言する方法。

 

②リスナアドレスを設定して、コントローラからリスナに指定されるまで待つ方法。

 

①は、例えばオシロスコープの画面などを、単にプロッタにコピーするような使い方を想定しています。このような場合、わざわざコントローラが介在する必要はなく、垂れ流されたデータ(正確な表現ではない)を、単に受け取るだけです。

 

②はPCなどのコントローラが介在するシステムで、コントローラからの指示によって、トーカ、リスナが指定され、さまざまな組み合わせでのデータ転送が行われます。DMMなどのデータを一旦コントローラが受け取って、その値によって、プログラマブル電源(この場合リスナ)の電圧を制御するような場合です。



 

「NAT7210を動かす②」



 

(JF1VRR)