バックナンバーはこちら。
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カードのピン配置はこういう配置になってる。
9番ピンだけ反対側にきてるんだ。
SDカードのSPIモード時のピンアサイン
そして、SPIモード時のピンアサインはこれ。
ちなみにInput/OutputはSDカード側から見た場合の表現になってる。
PIN | Name | Type | Description |
---|---|---|---|
1 | CS | Input | Chip Select(SS) |
2 | DI | Input | Data In (MOSI) |
3 | VSS | ||
4 | VDD | ||
5 | SCLK | Input | Clock(SCLK) |
6 | VSS2 | ||
7 | DO | Output | Data Out(MISO) |
8 | RSV | Reserve | |
9 | RSV | Reserve |
なるほど。
ここにSPIの信号線を接続すればいいのか。
SDカードのSDモード時のピンアサイン
そして、SDモード時のピンアサイン。
さっきと同じくInput/OutputはSDカード側から見た場合の表現。
PIN | Name | Type | Description |
---|---|---|---|
1 | CD/DAT3 | Input/Output | CardDetecct/DataLine[Bit 3] |
2 | DI | Input/Output | Command/Response |
3 | VSS | ||
4 | VDD | ||
5 | CLK | Input | Clock |
6 | VSS2 | ||
7 | DAT0 | Input/Output | DataLine[Bit0] |
8 | DAT1 | Input/Output | DataLine[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にしたり、コマンド投げて内部プルアップ解除と大忙し。
バックナンバーはこちら。
コメント