SpiMaster
SPI マスタ (mode 0,バイト単位転送,MSB first)
TF カード用: SCK idle Low,立上りでサンプル,立下りでシフト. バイト転送は valid/ready で受け付け,受信バイトは o_valid の 1 サイクルパルスで確定する.CS# は上位 (シーケンサ) が管理する. 分周比は転送開始時の i_fast で選択する (初期化 337.5 kHz / データ 13.5 MHz, docs/tfcard.md「クロック・SCK」).
Parameters
| InitDivider | u32 | 初期化クロック分周比 (SCK = i_clk / InitDivider).2 以上の偶数 |
|---|---|---|
| FastDivider | u32 | データ転送クロック分周比.2 以上の偶数かつ InitDivider 以下 |
Ports
| i_clk | input | clock | クロック (27 MHz) |
|---|---|---|---|
| i_rst | input | reset | リセット |
| i_fast | input | logic | 1 で FastDivider を選択 (転送開始時に参照) |
| i_valid | input | logic | 送信バイト有効 |
| i_data | input | logic<8> | 送信バイト |
| o_ready | output | logic | 送信バイト受付可能 |
| o_valid | output | logic | 受信バイト確定 (1 サイクルパルス) |
| o_data | output | logic<8> | 受信バイト |
| o_sclk | output | logic | SPI SCK (idle Low) |
| o_mosi | output | logic | SPI MOSI (idle High) |
| i_miso | input | logic | SPI MISO |