SPx_RX

SPx_RX ( SPORTx Receive Data )レジスタは、シリアルポートが受信したデータを読むための読み出し専用レジスタです。常に読み出し可能です。

SPORTが3系統あるため、SP0_RX、SP1_RX、SP2_RXの三本が用意されています。

レジスタの構造

このレジスタは16ビットの整数レジスタです。リセット後の値は不定です。

SPORTが受信データを受信シフトレジスタからSPx_RXにロードすると、SPORT受信割り込みが発生します。受信割り込みはDMA転送時には発生しません。

SPx_RXはロードされたデータをコア・プログラムかDMAエンジンが読み出すまでロード可能になりません。ロード不能状態で受信シフトレジスタがいっぱいになり、さらに次のビットが受信されるとシフトレジスタの値は破棄され、次のデータがシフトレジスタに転送されます。これは受信オーバーフローであり、SPx_STATRレジスタのROVFビットが1になります。

このレジスタはDMA転送時には使用しません。

API

C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hで行われています。SPx_RXにアクセスする前には必ずIOPGにSPORTx_Control_Pageを設定してください。SPORTはポートごとにIOページが異なりますので注意が必要です。

SPORT0の場合は以下のとおりです。

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

sysreg_write(sysreg_IOPG, SPORT0_Controller_Page)   // SPORT0ページに設定

変数 = io_space_read(SP0_RX)       // SP0_RXの値を取得

SPORT1の場合は以下のとおりです。

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

sysreg_write(sysreg_IOPG, SPORT1_Controller_Page)   // SPORT1ページに設定

変数 = io_space_read(SP1_RX)       // SP1_RXの値を取得

SPORT2の場合は以下のとおりです。

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

sysreg_write(sysreg_IOPG, SPORT2_Controller_Page)   // SPORT2ページに設定

変数 = io_space_read(SP2_RX)       // SP2_RXの値を取得

参照情報

項目 マニュアルのページ等
レジスタ説明 HR B-34

2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |