バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSDモード通信のNo data Operationについて。
登場人物
博識フクロウのフクさん

イラスト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モード通信のNo data Operation

じゃ、SDモードのNo data Operationからー。
- No data Operation ← これ
- (Multiple) Block Read Operatio
- (Multiple) Block Write Operation

とりあえず、図解よろしくー。

まぁこれは一番シンプルなんで、それほど悩むところはないかな。


ほー。
ノーレスポンスでタイムアウトするパターンと、
普通にやり取りできるパターンだね。
ノーレスポンス

ノーレスポンスってどういうときに起きるの?

単純にサポートしてないコマンドを投げた時だね。

送信ミスみたいな感じ?

当然、それも含まれるが、
SDカードかMMCかの判定やSDSC、SDHCの判定で使われることを想定してるっぽいね。
SDカード、MMC判定

どうやって、SDカードとMMCを区別するの?

ACMD41(APP_SEND_OP_COND)ってのを送ってみる。
ノーレスポンスだったらMMC。
レスポンスありだったらSDカード。
って寸法だ。

ほー。
ということは
MMCはACMD41はサポートしてないってことなのか。

ちなみにノーレスポンス判定になるタイムアウト値とかはどうなってるの?

commandによるところはあるようだが、基本1秒だね。
SDSC、SDHC判定

もう一個のSDSC、SDHC判定も特定コマンドで判断って感じかな?

そうだね。
CMD8(SEND_IF_COND)ってので判断する。
ノリはACMD41と一緒で、CMD8に応答しなければSDSC、
応答すれば、SDHC以降。

なるほどー。
そうやって判断してたんだねー。

ここらへんは、新しいSDの仕様が出るたびに改定されてるところなんで、
今後もいろいろ判定用のコマンドは増えていくのかもしれないね。
まとめ

まとめだよ。
- SDモード通信のNo data Operationを説明。
- ノーレスポンスのパターンが割と重要。
- ACMD41でSD、MMC判定。
- CMD8でSDSC、SDHC以降判定。
- SDの仕様が増えるたびに今後増えていくかも。
- ノーレスポンス判定タイムアウトは1秒。
バックナンバーはこちら。
コメント