HPCR( Host Port Configuration Register )はホストポートの設定を変更するためのレジスタです。
このレジスタは16ビットレジスタです。初期値は0x0000です。
図1 レジスタの構造
バス幅を指定します。
バス幅がデータ幅より短いときに、エンディアンを指定します。
バス幅がデータ幅より短いときに、転送順序を指定します。
バス幅が8ビットで転送データ幅が24ビットのとき、転送に使用するパケット数を指定します。
パイプライン・モードでは、複数パケット転送において2回目以降のパケット転送は実際にホストが読み出しをかける前に内部メモリーの読み出しを行います。
H_PREDとH_PFETを同時に1にしてはいけません。
プリフェッチ・モードではアドレスが与えられると実際にホストがデータ読むよりも前に内部メモリーの読み出しを行います。
H_PREDとH_PFETを同時に1にしてはいけません。
ACK信号の極性などを決めます。詳しくはHR B-103のTable B-13を参照してください。
/RDの状態を調べます(RO)
/WRの状態を調べます(RO)
/ACKの状態を調べます(RO)
/ALEの状態を調べます(RO)
C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hで行われています。HPCRにアクセスする前には必ずIOPGにExternal_Memory_Interface_Pageを設定してください。
HPCRにアクセスする場合は次のように成ります。
// #include <sysreg.h> // #include <def2191.h> sysreg_write(sysreg_IOPG, Host_Port_Bus_Interface_Page) // HPIページに設定 io_space_write(HPCR, 値) // HPCRに値を設定 変数 = io_space_read(HPCR) // HPCRの値を取得
アナログデバイセズが配布しているmcmの中のビット定義ファイルdef2191bit.hから関連するビット定義部分をここに引用します。
// Definition for HPCR (HR B-101) #define H_ALES BIT_11 #define H_ACKS BIT_10 #define H_WLS BIT_9 #define H_RLS BIT_8 #define H_AMS_OFST 6 #define H_AMS_MASK ( 0x3 << H_AMS_OFST ) #define H_AMS_ACK ( 0 << H_AMS_OFST ) #define H_AMS_READY ( 1 << H_AMS_OFST ) #define H_PFET BIT_5 #define H_PRED BIT_4 #define H_PSIZE BIT_3 #define H_DORD BIT_2 #define H_BEND BIT_1 #define H_BWS BIT_0
項目 | マニュアルのページ等 |
---|---|
レジスタ構造 | HR B-102 |
説明 | HR 8-5 |