TDBRx

TDBRx( Tx Data Buffer Register )はSerial Peripheral Interfaceの送信データを格納します。

SPIが2系統あるため、TDBR0, TDBR1の2本が用意されています。

レジスタの構造

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

TDBRxに書き込んだ値はSPIデバイスが送信直前にシフトレジスタにロードします。データがロードされるとTDBRxは空になりますが、空になったときの挙動はSPICTLxのSZビットによって異なります。SZが1のとき、空になると同時にTDBRxは0で初期化されます。

TDBRxが空のまま送信するとアンダーフローエラーが発生します。詳しくはSPISTxを参照してください。

TDBRxは読み込むこともできます。読み込み動作はSPIデバイスに影響を与えません。

API

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

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

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

sysreg_write(sysreg_IOPG, SPI0_Controller_Page)   // SPI0ページに設定

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

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

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

sysreg_write(sysreg_IOPG, SPI1_Controller_Page)   // SPI1ページに設定

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

参照情報

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