バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのSPIモード通信の読み書き詳細の
「Start Block/data Response/STOP_TRAN tokenの発行」
について。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
SDカードのSPIモード通信の読み書き詳細
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
じゃ、今回は
「Start Block/data Response/STOP_TRAN tokenの発行」
について。
- CMD24(WRITE_BLOCK)による書き込み
- ACMD23(SET_WR_BLK_ERASE_COUNT)による消去ブロック数指定
- CMD25(WRITE_MULTIPLE_BLOCK)による書き込み
- Start Block/data Response/STOP_TRAN tokenの発行 ← これ
- CMD17(READ_SINGLE_BLOCK)による読み出し
- CMD18(READ_MULTIPLE_BLOCK)による読み出し
- CMD12(STOP_TRANSMISSION)による停止
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そして、(Multiple) Block Write Operation(SPIモード)の図解
![SDカードのMultiple-Block-Write-OperationSPIモード図解](https://www.simulationroom999.com/blog/wp-content/uploads/2021/01/02_SDカードのMultiple-Block-Read-OperationSPIモード図解-1-1024x131.png)
Start Block token
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
そういえば、Start Block tokenってのが最初に付くんだよね?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そうだね。
ここでも語ってはいるが、
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
具体的なデータとしては”FCh”を投げればOK。
![Multi-BlockのStart-Block-token](https://www.simulationroom999.com/blog/wp-content/uploads/2021/01/04_Multi-BlockのStart-Block-token.png)
Data Block転送のdata Response token
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
data Response tokenってのは説明されてなかった気がするな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そういえば説明してなかったな。
今思い出した。
こんなデータになる。
![data-Response-token](https://www.simulationroom999.com/blog/wp-content/uploads/2021/02/02_data-Response-token.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
statusってのは何になるの?
data Response tokenのstatus
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
data Response tokenのstatusは以下のような意味になる。
‘010’ | Data accepted. |
‘101’ | Data rejected due to a CRC error. |
‘110’ | Data rejected due to a Write error. |
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
ほー。
ということうは、
‘010’以外はエラーってことだね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そうなるね。
STOP_TRAN token
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
これは以前説明したやつだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
確かに、聞いた気がする。
こんなのだった。
‘FDh’を送ればOKだね。
![Stop-Tran-token](https://www.simulationroom999.com/blog/wp-content/uploads/2021/01/05_Stop-Tran-token.png)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
SDカードとしては、このSTOP_TRAN tokenが来るまでは書き込みデータとして受け続ける感じになるねー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
なるほど。
だから先にACMD23(SET_WR_BLK_ERASE_COUNT)を投げて
消去ブロック数を教えておいた方が良いのかー。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- Start Block/data Response/STOP_TRAN tokenの発行について説明。
- Start Block tokenは’FCh’。
- data Response tokenにはstatusパラメータが乗る。
- ‘010’であれば正常。
- STOP_TRAN tokenは’FDh’。
バックナンバーはこちら。
コメント