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デバイスに影響を与えません。
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 |