バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードのCQ Modeの読み書き以外のコマンドたち。
今回はCMD19(SEND_TUNING_BLOCK)について。
登場人物
博識フクロウのフクさん
![指差しフクロウ](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
CQ Modeのステートマシンと読み書き以外のコマンド
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
今回はCMD19(SEND_TUNING_BLOCK)について。
CQ Modeのステートマシン図は以下。
![CQ Modeのステートマシン(State Diagram in CQ Mode)、CMD49(WRITE_EXTR_SINGLE) Enable CQ=1、CMD49(WRITE_EXTR_SINGLE) Enable CQ=0、CMD12(STOP_TRANSMISSION),CMD13(SEND_STATUS),CMD32(ERASE_WR_BLK_ADDR),CMD33(ERASE_WR_BLK_END_ADDR)、CMD44(Q_TASK_INFO_A),CMD45(Q_TASK_INFO_B)、Read:CMD19(SEND_TUNING_BLOCK),CMD46(Q_RD_TASK),CMD48(READ_EXTR_SINGLE),CMD58(READ_EXTR_MULTI)、Write:CMD47(Q_WR_TASK),CMD49(WRITE_EXTR_SINGLE),CMD59(WRITE_EXTR_MULTI)、CMD38(ERASE),CMD43(Q_MANAGEMENT)、End of R1b,End of Data Transfer、CMD12(STOP_TRANSMISSION),CMD13(SEND_STATUS)、CMD44(Q_TASK_INFO_A),CMD45(Q_TASK_INFO_B)、CQ Disable、CQ Tran、CQ Enabled](https://www.simulationroom999.com/blog/wp-content/uploads/2021/03/02_CQ-ModeのステートマシンState-Diagram-in-CQ-Mode-1024x707.png)
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そして、CQ Modeの読み書き以外のコマンドたち。
- CMD19(SEND_TUNING_BLOCK) ← これの第1回/全3回
- CMD32(ERASE_WR_BLK_START)
- CMD33(ERASE_WR_BLK_END)
- CMD38(ERASE)
- CMD43(Q_MANAGEMENT)
CMD19(SEND_TUNING_BLOCK)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
とりあえず、上から順番にやっていくとすると、
最初はCMD19(SEND_TUNING_BLOCK)だね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
うーん、いきなりマニアックなの引いたねぇー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
まじか!!!
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
じゃ、後回しってことで・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/びっくりフクロウ.png)
いやいや、どっちみちやるんだから。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
しようがない・・・。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
で、どんなコマンド?
名前に「TUNING」って入ってるけど、
なんか調整するヤツ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/まるフクロウ.png)
その通り。
SDカードバスの回線インピーダンスの調整とか確認をするためのコマンドだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」09アップ.png)
いきなり、電気回路的なのキターーー!
CMD19(SEND_TUNING_BLOCK)リクエストとレスポンス
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まずは回路的な話は置いておいて、
いつも通りリクエストとレスポンスの話を片付けよう。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まず、リクエストパラメータは無い。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
おー?
そうなんだ。脅された割にはシンプルそう。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そしてレスポンスはR1。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
これもいつも通りだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
とすると・・・Data Blockを送るか受けるタイプか?!
CMD19(SEND_TUNING_BLOCK)のData Block受信
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
なかなか勘が鋭いね。
カードからホストへData Blockが送られてくる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
なんかのレジスタを読み出すようなイメージ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
まぁイメージとしては近いかな。
ただ、読み出されるのは固定データ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
こんなデータになる。
FF0FFF00h FFCCC3CCh C33CCCFFh FEFFFEEFh
FFDFFFDDh FFFBFFFBh BFFF7FFFh 77F7BDEFh
FFF0FFF0h 0FFCCC3Ch CC33CCCFh FFEFFFEEh
FFFDFFFDh DFFFBFFFh BBFFF7FFh F77F7BDEh
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
この謎の数列はなんだ?
Fh、Eh、Dh、Bh、7hが多いイメージだね?
CMD19(SEND_TUNING_BLOCK)のData Block受信を回線でみると
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まぁ16進数のままだと、イマイチわからないと思うから
回線上のビットパターンを示そう。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
SDカードバス上で見るとこんな感じになる。
![CMD19(SEND_TUNING_BLOCK)、SDカードバス上、Tuning Pattern、DAT[0],DAT[1],DAT[2],DAT[3],1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 …,F F 0 F F F 0 0 F F C C C 3 C C …](https://www.simulationroom999.com/blog/wp-content/uploads/2021/03/02_Tuning_Pattern-1024x237.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
全ビットが立てたり、落としたり。
と思ったら一部のビットだけ立てたり、落としたり・・・。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
どういうこと?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まぁそこら辺は次回、目的含めて説明しよう。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- CMD19(SEND_TUNING_BLOCK)の説明。
- リクエストとレスポンスは普通。
- CMD19は固定データがData Blockとして送られてくる。
- Fh、Eh、Dh、Bh、7hが多い。
- DAT[3:0]の回線上を見ると何かしら見えてくるかも?
バックナンバーはこちら。
コメント