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を参照してください。
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 |