バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSDモード通信のCMD13(SEND_STATUS/SEND_TASK_STATUS)の話の続き
登場人物
博識フクロウのフクさん
イラスト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モード通信のCMD13(SEND_STATUS/SEND_TASK_STATUS)の切替
前回は、CMD13(SEND_STATUS/SEND_TASK_STATUS)の話だったけど、
SEND_TASK_STATUS側の話が残ってるんだよねー。
そういえば、CMD13(SEND_STATUS/SEND_TASK_STATUS)って
どうすれば、SEND_STATUSになったり、SEND_TASK_STATUSになったりするんだっけ?
そういえば説明してなかったな。
単純にCMD13(SEND_STATUS/SEND_TASK_STATUS)を送る時のパラメータで切り替える。
CMD13(SEND_STATUS/SEND_TASK_STATUS)のリクエストパラメータは以下になる。
Bit position | [31:16] | [15] | [14:0] |
Width(bit) | 16 | 1 | 15 |
Value | x | x | – |
Description | RCA | Send Task Status Register | stuff bits |
RCAは確かRelative Card Addressの略でCMD3(SEND_RELATIVE_ADDR)で取得出るやつだったね。
元々はCMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移で使うものだったと思ったけど、
CMD13(SEND_STATUS/SEND_TASK_STATUS)でも使うんだね。
(意外と覚えてるな・・・。)
とすると、
Send Task Status RegisterのbitでSEND_STATUSとSEND_TASK_STATUSを切り替えるってことになるのか。
(消去法だ!!)
そうそう。
前回のSEND_STATUSはSend Task Status Registerのbitを0にした場合の応答だね。
SDカードのSDモード通信のCMD13(SEND_STATUS/SEND_TASK_STATUS)のSEND_TASK_STATUS側の応答
で、Send Task Status Registerのbitを1にすると、SEND_TASK_STATUSのリクエストになるとして、応答はどうなるの?
構成はR1のcard statusのところにTask Statusが入ることになる。
Bit position | 47 | 46 | [45:40] | [39:8] | [7:1] | 0 |
Width(bit) | 1 | 1 | 6 | 32 | 7 | 1 |
Value | ‘0’ | ‘0’ | x | x | x | ‘1’ |
Description | start bit | transmission bit | command index | card status | CRC7 | end bit |
Task Statusの内容
で、Task Statusの内容はどうなるの?
こんな感じの32bitデータだ。
Bits | Identifier | Value |
---|---|---|
31 | STATUS_TASK_31 | ‘0’:Not Ready、’1’:Ready |
30 | STATUS_TASK_30 | ‘0’:Not Ready、’1’:Ready |
… | … | … |
0 | STATUS_TASK_0 | ‘0’:Not Ready、’1’:Ready |
ん?
STUTAUS_TASKってのが32個あって、それの状態を示している・・・
ってことなんだと思うのだけど、
STUTAUS_TASKってなんだ???
Command Queueの状態だね。
(どんどん知らん単語が出てくる・・・)
あー。
ここら辺を説明しようと思うと、
- パフォーマンスエンハンスメントレジスタ
- 上記の読み書き
- CQ mode
の説明が必要だね。
・・・。
まぁ、SDカードの読み書きをするだけであれば、不要な知識ではあるけど・・・。
どーする?
一応、聞いておこうかな・・・。
分からないにしても、どういったものがあるのかは知っておきたいかも。
よし。
SD読み書きの話はここで終わりとして、
次回からは「応答性向上」の話をしよう。
まとめ
まとめだよ。
- CMD13(SEND_STATUS/SEND_TASK_STATUS)の話の続きを説明。
- CMD13はSend Task Status RegisterでSEND_STATUS/SEND_TASK_STATUSを切替できる。
- Task StatusはCommand Queueの状態監視用。
- Command Queueについては次回以降説明。
バックナンバーはこちら。
コメント