バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSDモード通信の(Multiple) Block Read 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モード通信の(Multiple) Block Read Operation
今回は、SDモードの(Multiple) Block Read Operation。
- No data Operation
- (Multiple) Block Read Operation ← これ
- (Multiple) Block Write Operation
今回は前回使用しなかったDATのラインを使うことになるのかな?
その通り。
絵にするとこうだ。
SPIモードとの違い
図解を見ると、
responseが終わる前にdata blockが送出されてるね。
うん。
まぁ実際はresponseは一瞬なんで、
重ならないことになるかもしれないが、仕様上は重ねてOK。
というわけで実際に起きる起きないは別として、
設計、実装上はこれを想定しておく必要がある。
確かに、いろんなSDカードがあるから、
どっかのSDカードが重ならないからと言って、
他のSDカードもそうとは限らないもんね。
そこら辺が仕様で明記されてるなら仕様に合わせるべきだよね。
停止処理
停止処理は、CMD12(STOP_TRANSMISSION)なんだね。
これはSPIモードの時と一緒だね。
そうそう。
読み書き可能な状態まで来てしまえば、
commandレベルの仕様はSPIモード、SDモードで差はない。
SPIモードの時の話はここでやったね。
ということは、SDモードも基本的には自動終了で、
CMD12(STOP_TRANSMISSION)は強制停止の時だけってことか。
そうなるねー。
先にSPIモードでやってたから結構イメージ湧きやすかったな。
まとめ
まとめだよ。
- SDモード通信の(Multiple) Block Read Operationの説明。
- CMDラインとDATラインがあるため、responseが終わる前にdata blockが送出されることを想定する必要あり。
- CMD12(STOP_TRANSMISSION)で強制停止できる。
- SPIモードと使い方は一緒。
バックナンバーはこちら。
コメント