バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSDモード通信の初期化シーケンスのACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定について。
今回はACMD41(SD_SEND_OP_COND)のリクエストとレスポンスの電文について。
登場人物
博識フクロウのフクさん

イラスト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モード通信の初期化シーケンス詳細

今回は、「ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定」について。
- CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定。
- ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定。 ← これの1回目/全4回
- CMD11(VOLTAGE_SWITCH)によるVoltage Switch。
- CMD2(ALL_SEND_CID)によるCIDの取得。
- CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得。
- CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移。

恒例のフロー図も貼っておこう。

ACMD41(SD_SEND_OP_COND)のリクエスト

SPIモードの時は確か、HCS(High Capacity Support)ビットでSDHC以降に切り替えたり、
レスポンスのR1レスポンスのin idle stateが0になってればOKみたいな判定だったねー。
SPIモードの時のACMD41(SD_SEND_OP_COND)

フロー見た感じだと今回も似た感じかな?

まぁ、流れはすごく似てるけど、
パラメータとかが全然違うねー。
そのパラメータとかもセットの仕方らレスポンスの意味が変わったりするから
結構キッチリ把握しておく必要はあるかも。

え゛
ACMD41(SD_SEND_OP_COND)のリクエストパラメータとレスポンスの電文

まぁ、まずはACMD41(SD_SEND_OP_COND)のリクエスト電文を見てみようか。
ACMD41(SD_SEND_OP_COND)リクエスト電文
bit position | 31 | 30 | 29 | 28 | [27:25] | 24 | [23:8] | [7:0] |
bit width | 1 | 1 | 1 | 1 | 3 | 1 | 16 | 8 |
value | 0 | x | 0 | x | 000b | x | xxxxh | 00000000b |
Description | Busy | HCS | Reserved | XPC | Reserved | S18R | OCR | Reserved |

そして、ACMD41(SD_SEND_OP_COND)のレスポンスことR3レスポンス
ACMD41(SD_SEND_OP_COND)レスポンス電文(R3レスポンス)
bit position | 31 | 30 | 29 | [28:25] | 24 | [23:8] | [7:0] |
bit width | 1 | 1 | 1 | 4 | 1 | 16 | 8 |
value | x | x | x | 0000b | x | xxxxh | 00000000b |
Description | Busy | CCS | UHS-II | Reserved | S18A | OCR | Reserved |

(アカン。意味不明パラメータがいっぱい出てきよった・・・)

(あー。思考停止しちゃったなー。)

まぁ次回はこのパラメータを一個ずつ説明するよー。
(ここらへんはパラメータの意味だけじゃなくて、いろいろカオスだし、結構説明回が間延びするかもねー。)
まとめ

まとめだよ。
- ACMD41(SD_SEND_OP_COND)のリクエストについて簡単にに説明。
- 処理の流れとしてはSPIモードのACMD41(SD_SEND_OP_COND)に似ている。
- ACMD41(SD_SEND_OP_COND)のリクエスト、レスポンスのパラメータを確認。
- 新出パラメータ多数。
バックナンバーはこちら。
コメント