SPIBAUDx

SPIBAUDx( SPI Baud )はSerial Peripheral Interfaceのクロック周波数を設定します。

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

レジスタの構造

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

各ビットの意味は以下のとおりです。

SPIBAUDxレジスタはマスターモードのSPIデバイスのビットクロックを決めます。ビットクロック周波数は次の式で決まります。なお、SPIBAUDxに0あるいは1を設定するとSPIデバイスのクロックは0になります。したがってHCLK/4が最大クロックです。

SCK周波数 = (HCLK周波数)/(2*SPIBAUD)

HCLKに関してはPLLCTLを参照してください。

API

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

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

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

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

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

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

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

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

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

参照情報

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