バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSDモード通信の初期化シーケンスの「CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得」について。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
SDカードのSDモード通信の初期化シーケンス詳細
今回からは「CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得」について。
- CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定。
- ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定。
- CMD11(VOLTAGE_SWITCH)によるVoltage Switch。
- CMD2(ALL_SEND_CID)によるCIDの取得。
- CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得。 ← これ1回目/全2回
- CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移。
全体フロー。
CMD3(SEND_RELATIVE_ADDR)
まずは、コマンドのパラメータ有無かな?
CMD3にパラメータは無い。
じゃー、送る分には悩まなくて良いねー。
CMD3(SEND_RELATIVE_ADDR)のレスポンス
次はレスポンスだね。
CMD3(SEND_RELATIVE_ADDR)のレスポンスはR6フォーマットになる。
R6フォーマットは以下。
Bit position | [31:16] | [15:0] |
Width(bit) | 16 | 16 |
Value | x | x |
Description | New published RCA | card status bitsのbit23,22,19,12:0 |
このRCAとcard status bitsが何者かってのが重要になってくるわけか。
RCA(Relative Card Address)
ん?
RCAってなんだっけ?
以前聞いたような聞いてないような?
確かに以前ちょっと話したかも。
ここで話したな。
結局RCAってどういうものになるの?
まぁ単純に16bit長の数値だな。
この数値を記憶して、
次の手順である「CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移」の時に使うことになる。
なるほど。
以前話したときもそういうこといってたね。
じゃー、これはしっかり受信して記憶しておく必要のあるパラメータってことだ。
まとめ
まとめだよ。
- 「CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得」について説明。
- CMD3(SEND_RELATIVE_ADDR)はパラメータ無しのコマンド。
- レスポンスはR6フォーマット。
- RCA(Relative Card Address)とcard status bitsを内包。
バックナンバーはこちら。
コメント