環境
microSD module: MSC-MOD20 ( http://www.microtechnica-shop.jp/shopdetail/000000000026/ )
- ALFAT SoC
microSD: 2GB SD (not SDHC)
Analog Discovery 2 (以下AD2)
MSC-MOD20のSD Initについて。
SD unmount時、応答まで3.3秒かかる。I2C通信の場合、3.3秒の応答までの間、0x00を受信し続けて、ようやく!11などの受信ができるようだ。
( !11は「初期化に失敗しました。SDカードのCD信号がHまたはフローティングしている」というエラーでSDがunmountの状態を示すエラー番号。)
code v0.9
- SD Init実行時にretry追加
- retry回数分だけ、余分にI2C読込処理を行う
- Power on boot直後のSD Initはretry=0とした
- 応答がないと考えられるため
上記の変更をして、SD Init実行後に3.3秒以上余分な読込をしながら波形をAD2で取り込み!11を受信できるか試した。
結果
SD Initコマンドを送信後、しばらく以下の0x00受信が続く。
そして、3.3秒程度の経過時間で以下の!11が受信できることを確認した。
応答までの待ち時間が長い場合も適宜delay処理などで待ちを入れながら応答を受信することになりそうだ。
応答がない場合の対策としてはタイムアウト時間を設定し、タイムアウトしたら処理を抜ける。