ネットサーフィンしてみると至る所で、MSP430でのSDカードの初期化で悩んでおられる方が
いるなぁと実感しました。
今回はSD規格の調査不足が原因でした。
SDとMMCの初期化手順での最大の相違点はACMD41を使うことです
詳細はこうなります。
- 電源投入
- CS端子をHighにしたまま74サイクル以上のダミーデータ(0xff)を送信
- CS端子をLowにする
- CMD0(0x40_0000_0000_95)でGO_IDLE_STATEさせる
- レスポンス受信か、タイムアウト条件を満たすまで待つ
- ACMD41を送信
- ACMD41とはMMC命令のCMD55を送信した後、CMD41を送信することにより実現する
- CMD55(0x77_0000_0000_01)送信、レスポンス待ち
- CMD41(0x69_0000_0000_01)送信、レスポンス待ち
- 書き込みor読み込み命令の送信ができる
と、こんな要領です。
ソースコードは汚すぎるので後ほど公開します。