バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-external-storage-backnumber/
はじめに
SDカードの具体的なピンアサイン及び接続に説明。
登場人物
博識フクロウのフクさん
![指差しフクロウ](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カードのピン配置
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
SDカードのピンアサインを説明しよう。
ちなみにSPIモードとSDモードで若干意味合いが変わる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
そういえば、SPIモードとSDモードはどうやって切り替えるの?
専用の切り替えピンがあるとか?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
一応、1番ピンのラインを電源投入時にLowにしておくとSPIモードになるね。
HZ(ハイインピーダンス)にしておくとSDモードになる。
![太郎くん](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/指差しフクロウ.png)
まずはSDカードのピン配置はこういう配置になってる。
![SDカードピン配置](https://www.simulationroom999.com/blog/wp-content/uploads/2021/01/02_SDカードピン配置.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
9番ピンだけ反対側にきてるんだ。
SDカードのSPIモード時のピンアサイン
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そして、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 |
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
なるほど。
ここにSPIの信号線を接続すればいいのか。
SDカードのSDモード時のピンアサイン
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そして、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] |
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
さっきのSPIモードと比べるとInput/Output兼用が多いね?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
1番ピンのCardDetecctって何?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
1番ピンはSDカード内で50[Ω]でプルアップしてるんで、
これを見てカードの挿抜確認ができる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
1番ピンと言えば、SPIモード、SDモード切替用のピンとか言ってなかったっけ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
うん。
結構この1番ピンの使い方が起動時の曲者だったりするね。
それぞれ以下の流れになる。
- SPIモードにする場合
- 起動時ホスト側でLowにする。(これでSPIモード)
- CardDetecctするためにホスト側をHZにする。
- High検知でCardDetecct
- SET_CLR_CARD_DETECTコマンドでプルアップ解除
- SDモードにする場合
- 起動後ホスト側をHZにする。
- High検知でCardDetecct
- SET_CLR_CARD_DETECTコマンドでプルアップ解除
![太郎くん](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)
あと、SPIモードと比べると、DATなんとかが4本あるね?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
うん。
読み書きデータを送る際は最大4bitシリアルで送受信可能なのがSDモード
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
最大?
ということは4bit固定じゃない?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
SET_BUS_WIDTHコマンドで切替ができるね。
と言っても、1bitか4bitかを切り替えるだけなんだけど。
デフォルトは1bitだね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
うーん、なんかバリエーションが多くて混乱してきた。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まぁ一個一個把握していけば良いと思うよー。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- SDカードのピン配置説明。
- SPIモード時のピンアサイン説明。
- SDモード時のピンアサイン説明。
- 1番ピンのモード変更及びCardDetecctフローを説明。
- LowにしたりHZにしたり、コマンド投げて内部プルアップ解除と大忙し。
バックナンバーはこちら。
コメント