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転送時には使用しません。
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 |