Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

TfSpikeInit

TF カード初期化 spike (docs/tfcard.md「spike の構成」)

SpiMaster + 最小シーケンサで初期化シーケンス (CMD0 → CMD8 → CMD55/ACMD41 ポーリング → CMD58) を完走し,データクロックへ切り替えて CMD17 で セクタ 0 (MBR) を読む.結果は ASCII 1 行の stream として送出する:

TF R1=xx,xx,xx,xx OCR=xxxxxxxx S0=<先頭16バイトhex> SIG=K E=-
  • R1= は CMD0 / CMD8 / ACMD41 (最終) / CMD58 の R1 (未実行は FF)
  • SIG= は MBR 署名 55AAh の検査 (K=一致 / N=不一致)
  • E= はエラー段 (- なし / 0 CMD0 / 8 CMD8 非対応 / A ACMD41 タイムアウト / C CCS=0 非対応 / R CMD17 応答・トークン異常 / X データ CRC16 不一致)

発行コマンドは CMD0/CMD8/CMD55/ACMD41/CMD58/CMD17 のみ (リード専用, write 系は FSM 上存在しない).

Parameters


InitDivider u32 初期化クロック分周比 (337.5 kHz)
FastDivider u32 データ転送クロック分周比 (13.5 MHz)
PowerUpBytes u32 電源投入クロック供給のバイト数 (74 クロック以上 → 10 バイト = 80 クロック)
NcrMaxBytes u32 R1 応答待ちの上限バイト数 (NCR)
Acmd41MaxPolls u32 ACMD41 ポーリング上限回数 (337.5 kHz で約 1.2 s 相当)
TokenMaxBytes u32 データトークン待ちの上限バイト数 (13.5 MHz で約 155 ms 相当)

Ports


i_clk input clock クロック (27 MHz)
i_rst input reset リセット
o_sclk output logic TF SCK
o_mosi output logic TF MOSI
o_cs_n output logic TF CS#
i_miso input logic TF MISO
msg modport stream_if source 結果メッセージ (リセット毎に 1 行送出)