【FileSystem】車載外部ストレージ その17【SDカード⑬】

【FileSystem】車載外部ストレージ その17【SDカード⑬】 車載外部ストレージ

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/

はじめに

SDカードのSDモード通信に於いてのレスポンス(R1とR1b)について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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モード通信に於いてのレスポンス(R1とR1b)について

フクさん
フクさん

本当は前回やる予定だった、SDモードのR1とR1bについてやる。

太郎くん
太郎くん

前回はR6の話からRCAの話に飛んじゃったからねー。

フクさん
フクさん

まぁSPIモードとの差分としては重要な話だったんで、良しとしよう。

SDモードのR1

フクさん
フクさん

まずはR1について。
R1のデータ構成は48bit長でこんなん。

Bit position4746[45:40][39:8][7:1]0
Width(bit)1163271
Value‘0’‘0’xxx‘1’
Descriptionstart bittransmission bitcommand indexcard statusCRC7end bit
太郎くん
太郎くん

ほー。
SPIモードの時は8bitだったけど、
SDモードは48bitになるのかー。
32bitのcard statusにいろいろ情報がうまってるのかな?

フクさん
フクさん

そうだね。

card status

フクさん
フクさん

んで、card statusを書き出す。
これのボリュームが大きいんで、前回に説明せずに今回に回したって感じだ。

太郎くん
太郎くん

(つまり大ボリュームってことか)

フクさん
フクさん

こんな感じだ。

BitsIdentifier
31OUT_OF_RANGE
30ADDRESS_ERROR
29BLOCK_LEN_ERROR
28ERASE_SEQ_ERROR
27ERASE_PARAM
26WP_VIOLATION
25CARD_IS_LOCKED
24LOCK_UNLOCK_FAILED
23COM_CRC_ERROR
22ILLEGAL_COMMAND
21CARD_ECC_FAILED
20CC_ERROR
19ERROR
18reserved
17reserved
16CSD_OVERWRITE
15WP_ERASE_SKIP
14CARD_ECC_DISABLED
13ERASE_RESET
[12:9]CURRENT_STATE
8READY_FOR_DATA
7reserved
6FX_EVENT
5APP_CMD
4reserved
3AKE_SEQ_ERROR
[2:0]reserved
フクさん
フクさん

さらにCURRENT_STATEの明細も書いておこう。

0:idle
1:ready
2:ident
3:stby
4:tran
5:data
6:rcv
7:prg
8:dis

太郎くん
太郎くん

SPIモードと比べると情報量が半端ないなー。
基本はエラー系だけど、
CURRENT_STATEみたいに内部状態も返してるのかー。

フクさん
フクさん

CURRENT_STATEは想定外の状態に遷移してたら、
再初期化等を走らせることがあるね。
例えば、読み書き可能なSTATEが4=tranなんだけど、
それ以外のSTATE、例えばstbyに遷移してたら
再初期化して、再度tranに戻すとか。

太郎くん
太郎くん

へー。
裏でいろいろなことやってるんだなー。

SDモードのR1b

フクさん
フクさん

そして、R1bはSPIモードの時と同じように
R1にbusyが付いたもの
busyも考え方は一緒で、DATのラインが0になっている間がbusyとなる。

太郎くん
太郎くん

これは確かにSPIモードと一緒だ。

まとめ

フクさん
フクさん

まとめだよ。

  • SDカードのSDモード通信に於いてのレスポンス(R1とR1b)について説明。
    • R1の中にcard statusという32bitのエラー&状態情報がある。
  • 状態が想定と異なる場合は再初期化等で期待する状態に再遷移させる設計/実装をする必要がある。
  • R1bはSPIモードと同じく、R1にbusyが付いたもの。
    • busyはDATが0を維持している状態。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました