【FileSystem】車載外部ストレージ その8【SDカード④】

【FileSystem】車載外部ストレージ その8【SDカード④】 車載外部ストレージ

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/

はじめに

SDカードの具体的なピンアサイン及び接続に説明。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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カードのピン配置

フクさん
フクさん

SDカードのピンアサインを説明しよう。
ちなみにSPIモードとSDモードで若干意味合いが変わる。

太郎くん
太郎くん

そういえば、SPIモードとSDモードはどうやって切り替えるの?
専用の切り替えピンがあるとか?

フクさん
フクさん

一応、1番ピンのラインを電源投入時にLowにしておくとSPIモードになるね。
HZ(ハイインピーダンス)にしておくとSDモードになる。

太郎くん
太郎くん

(ようわからんが、そのうち説明してくれるのだろう。)

フクさん
フクさん

(とりあえず理解した振りしてるなー。ま、いっか。)

フクさん
フクさん

まずはSDカードのピン配置はこういう配置になってる。

SDカードピン配置
太郎くん
太郎くん

9番ピンだけ反対側にきてるんだ。

SDカードのSPIモード時のピンアサイン

フクさん
フクさん

そして、SPIモード時のピンアサインはこれ。
ちなみにInput/OutputはSDカード側から見た場合の表現になってる。

PINNameTypeDescription
1CSInputChip Select(SS)
2DIInputData In (MOSI)
3VSS
4VDD
5SCLKInputClock(SCLK)
6VSS2
7DOOutputData Out(MISO)
8RSVReserve
9RSVReserve
太郎くん
太郎くん

なるほど。
ここにSPIの信号線を接続すればいいのか。

SDカードのSDモード時のピンアサイン

フクさん
フクさん

そして、SDモード時のピンアサイン。
さっきと同じくInput/OutputはSDカード側から見た場合の表現。

PINNameTypeDescription
1CD/DAT3Input/OutputCardDetecct/DataLine[Bit 3]
2DIInput/OutputCommand/Response
3VSS
4VDD
5CLKInputClock
6VSS2
7DAT0Input/OutputDataLine[Bit0]
8DAT1Input/OutputDataLine[Bit1]
太郎くん
太郎くん

さっきのSPIモードと比べるとInput/Output兼用が多いね?

太郎くん
太郎くん

1番ピンのCardDetecctって何?

フクさん
フクさん

1番ピンはSDカード内で50[Ω]でプルアップしてるんで、
これを見てカードの挿抜確認ができる。

太郎くん
太郎くん

1番ピンと言えば、SPIモード、SDモード切替用のピンとか言ってなかったっけ?

フクさん
フクさん

うん。
結構この1番ピンの使い方が起動時の曲者だったりするね。
それぞれ以下の流れになる。

  • SPIモードにする場合
    • 起動時ホスト側でLowにする。(これでSPIモード)
    • CardDetecctするためにホスト側をHZにする。
    • High検知でCardDetecct
    • SET_CLR_CARD_DETECTコマンドでプルアップ解除
  • SDモードにする場合
    • 起動後ホスト側をHZにする。
    • High検知でCardDetecct
    • SET_CLR_CARD_DETECTコマンドでプルアップ解除
太郎くん
太郎くん

うわー結構いろいろやってるんだなー。

太郎くん
太郎くん

あと、SPIモードと比べると、DATなんとかが4本あるね?

フクさん
フクさん

うん。
読み書きデータを送る際は最大4bitシリアルで送受信可能なのがSDモード

太郎くん
太郎くん

最大?
ということは4bit固定じゃない?

フクさん
フクさん

SET_BUS_WIDTHコマンドで切替ができるね。
と言っても、1bitか4bitかを切り替えるだけなんだけど。
デフォルトは1bitだね。

太郎くん
太郎くん

うーん、なんかバリエーションが多くて混乱してきた。

フクさん
フクさん

まぁ一個一個把握していけば良いと思うよー。

まとめ

フクさん
フクさん

まとめだよ。

  • SDカードのピン配置説明。
  • SPIモード時のピンアサイン説明。
  • SDモード時のピンアサイン説明。
  • 1番ピンのモード変更及びCardDetecctフローを説明。
    • LowにしたりHZにしたり、コマンド投げて内部プルアップ解除と大忙し。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました