
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などのデータを一旦コントローラが受け取って、その値によって、プログラマブル電源(この場合リスナ)の電圧を制御するような場合です。
(JF1VRR)