EMICTL

EMICTL( EMI Control )レジスタは外部メモリーへのアクセス方法を制御します。

レジスタの構造

このレジスタは16ビット整数レジスタです。初期値は0x0060です。

図1 レジスタの構造

E_BL : Bus Lock

バスをロックします。ロック状態ではバスは外部ホストによるバス・リクエストや、外部デバイスによるDMAリクエストに対して許可を与えなくなります。

  • 0 : バスをロックし、外部要求に応答します。
  • 1 : バスをロックし、外部要求に応答しません。
E_BHE : Bus Hold off Enable

バスリクエストが行われたとき、16サイクル遅らせてバスを開放します。

  • 0 : 遅延させずすぐにバスを開放します。
  • 1 : 開放する前に遅延させます。
E_CRL : Control Register Lock

MSxCTL、BMSCTL、IOSCTLレジスタへの書き込みをロックします。。

  • 0 : 各レジスタへの読み書きが許されます。
  • 1 : 各レジスタは読み込み専用です。
E_BWS : Bus Width Select

メモリーアクセスバス幅を指定します。

  • 0 : バス幅は8ビットです。
  • 1 : バス幅は16ビットです。
E_WLS : Write Sense Strobe Logic Select

/WRピンの極性を設定します。

  • 0 : 正論理です。
  • 1 : 負論理です。
E_RLS : Read Sense Strobe Logic Select

/RDピンの極性を設定します。

  • 0 : 正論理です。
  • 1 : 負論理です。
E_ASE : Access Split Enable

あるDMAが外部メモリーデバイスのアクセスを長時間待っているときに、他のDMAが内部メモリーアクセスを行ったときの挙動を指定します。

  • 0 : 内部メモリーDMA要求は外部メモリーDMAが完結するまでまたされます。
  • 1 : 外部メモリーDMAは分離され、外部メモリーのアクセスが完了する前に内部メモリーDMAが処理されます。

API

C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hで行われています。EMICTLにアクセスする前には必ずIOPGにExternal_Memory_Interface_Pageを設定してください。

// #include <sysreg.h>
// #include <def2191.h>

sysreg_write(sysreg_IOPG, External_Access_Bridge_Page)   // ENIページに設定

io_space_write(EMICTL, 値)         // EMICTLに値を設定
変数 = io_space_read(EMICTL)       // EMICTLの値を取得

アナログデバイセズが配布しているmcmの中のビット定義ファイルdef2191bit.hから関連するビット定義部分をここに引用します。

//Definition for EMICTL (HR B-93)
#define E_ASE                   BIT_6
#define E_RLS                   BIT_5
#define E_WLS                   BIT_4
#define E_BWS                   BIT_3
#define E_CRL                   BIT_2
#define E_BHE                   BIT_1
#define E_BL                    BIT_0

参照情報

項目 マニュアルのページ等
レジスタ構造 HR B-93
説明 HR 7-5
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |