バックナンバーはこちら。
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) ← これの第3回/全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/指差しフクロウ.png)
これは仕様書にも書いてあることだが、
CMD19(SEND_TUNING_BLOCK)の設計目的は以下になる。
- 4本のDATラインに同時に正パルスを入力して、最大電力とグランドバウンス効果をシミュレートすると、最大のオーバーシュート/アンダーシュートが得られる。
- 2本のDATラインに正パルスを入力し、同時に残りの2本のDATラインに負パルスを入力すると、グランドバウンスとインピーダンスミスマッチの組み合わせをシミュレートし、最大のTPDが得られる。
- 1本のDATラインに正パルスを与え、他の3本のDATラインは静にすると、インピーダンスミスマッチの影響をシミュレートでき、TPDは最小になる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
ちょっと何言ってるかわかんない。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/はてなフクロウ.png)
まぁ言葉の意味がわからないってところだろう。
たぶん、以下が分からないから全体が分からないって感じなんじゃない?
- グランドバウンス
- TPD
![太郎くん](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」13アップ.png)
ほう?
なぜ弾むの?
![フクさん](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/指差しフクロウ.png)
まぁ回路上には存在しない見えないコンデンサやインダクタ(コイル)があって、
そいつらが悪さするってことだな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
まぁわかってはいないが、まずそうなのはわかった。
TPD
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
次はTPD。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
TPDはPropagation Delay(プロパゲーションディレイ)の略で
日本語にすると伝播遅延だな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
信号が伝わるのが送れるってこと?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/まるフクロウ.png)
まぁその認識でOKだ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
電子回路上のIC等を経由すると少なからず信号の立ち上がりや立下りが遅延する。
これの時間が長すぎるとうまく通信できなくなる。
その遅延もSDカードのように4線あると、異なる遅延になることもあって、
うまく信号をサンプリングできないってこともあり得る。
って話だな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
まぁこれもなんかヤバそうってのだけわかった。
それぞれまとめると
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
原理的な話はわからないけど、
とりえあず、以下を見てSDカードバスに致命的な問題がないか確認するってのはわかった。
- 最大オーバーシュート、アンダーシュートの確認
- 最大の伝播遅延の確認
- 最小の伝播遅延の確認
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
とりあえずはその認識でよいだろう。
実際はハード屋をやりあったりしてゴタつくことはあるが、
その3点が分かっていれば、話をすることは十分可能だ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.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)
まとめだよ。
- CMD19(SEND_TUNING_BLOCK)の電気回路的な話。
- CMD19を使用して以下を確認するのが目的。
- 最大オーバーシュート、アンダーシュートの確認。
- 最大の伝播遅延の確認。
- 最小の伝播遅延の確認。
- 電気回路の難しいところはハード屋さんがやってくれるはずなのでサポートを万全にすることを意識する。
バックナンバーはこちら。
コメント