Mode-configurable SPI master for Veryl.
Modules
Packages
SPI Master モジュール
startはidle中に1クロックだけHighにし、同じcycleのtx_dataを保持する。
受理後はbusyとcs_nをアサートし、全bitの転送とCS High保持時間が終わるとdoneを1クロックだけHighにする。
転送はMSB-first。
CPOLはidle level、CPHAは最初のedgeがshiftかsampleかを決める。
Mode 0/2はleading edgeでsample、Mode 1/3はleading edgeでshiftする。
CLK_DIVは4以上の偶数を指定する。SCLKのHigh/LowはそれぞれCLK_DIV/2クロックで、先頭と最終エッジも同じ幅になる。
DATA_WIDTHは1以上を指定する。
MISOはSCLKに同期して変化するソースシンクロナス入力として、指定したエッジで直接サンプルする。
既定はCPHAに従い、CPHA=0はleading edge、CPHA=1はtrailing edgeでサンプルする。
スレーブがtrailing edgeでSDOを更新する場合はMISO_SAMPLE_EDGEにLeadingを指定する。
| DATA_WIDTH |
u16 |
通信ビット数 (8, 16, 24, 32など)
|
| CLK_DIV |
u16 |
SCLK周期のシステムクロック数 (50MHz入力で50なら1MHz)
|
| MISO_SAMPLE_EDGE |
SpiSampleEdge |
MISOをサンプルするSCLKエッジ
|
| clk |
input |
clock |
System Clock (50MHz)
|
| rst |
input |
reset |
Reset
|
| start |
input |
logic |
通信開始トリガー (1パルス)
|
| tx_data |
input |
logic<DATA_WIDTH> |
送信データ
|
| rx_data |
output |
logic<DATA_WIDTH> |
受信データ
|
| busy |
output |
logic |
通信中フラグ
|
| done |
output |
logic |
完了フラグ (1パルス)
|
| sclk |
output |
logic |
SPIクロック
|
| mosi |
output |
logic |
SPI MOSI
|
| miso |
input |
logic |
SPI MISO
|
| cs_n |
output |
logic |
SPI Chip select (Active Low)
|
SPI共通型定義パッケージ