【FileSystem】車載外部ストレージ その20【SD初期化③】

【FileSystem】車載外部ストレージ その20【SD初期化③】 車載外部ストレージ

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

はじめに

SDカードのSPIモード通信の初期化シーケンスの中の駆動電圧判定について。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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カードのSPIモード通信の初期化シーケンス詳細

フクさん
フクさん

じゃ、今回は駆動電圧判定のところからだね。

  • 初期状態に戻す
  • SDv2以降判定
  • 駆動電圧判定 ← これ
  • 読み書き可能状態へ
  • SDv2の容量判定
フクさん
フクさん

一応、初期化シーケンスのフロー図も貼っておこう。

SDカードSPIモードに於いての初期化シーケンスのフロー

駆動電圧判定

太郎くん
太郎くん

フローとしては、CMD58(READ_OCR)を発行してるようだけど?

フクさん
フクさん

そうだね。
ちなみに余談だけど、CMD58はSPIモードとSDモードで意味が変わるんで。
SDモードはREAD_EXTRA_MULTIってコマンドでUHS-Ⅱ以降という高速SDインターフェースの場合に使えるものだねー。

フクさん
フクさん

UHSについては、IT用語辞典から引用

UHSとは、SDHC/SDXCメモリーカードで用いられる高速な接続・通信仕様。業界団体のSDアソシエーションが策定したもので、カードとリーダーの両者が対応している場合に利用できる。どちらかが対応していない場合には従来方式での通信となる。最高104MB/s(メガバイト毎秒)での通信が可能なUHS-I、同312MB/sのUHS-II、同624MB/sのUHS-IIIが定められている。UHS-II/IIIでは端子形状が拡張され、従来の端子の下に二列目の端子群が追加された。カードとリーダーの両方が新しい端子形状の場合に最高速度での通信ができ、いずれかが従来型の場合でも従来方式の通信ができるようになっている。UHS対応製品で保証される伝送速度を表示する「UHSスピードクラス」(UHS Speed Class)が定められており、「Class 1」では最低でも10MB/sでの通信を、「Class 3」では30MB/sでの通信を保証する。

IT用語辞典 https://e-words.jp/w/UHS.html
太郎くん
太郎くん

名前的には複数ブロックの読み出し用かな?

フクさん
フクさん

そうなんだけど、複数ブロック読み出しは
通常はCMD18(READ_MULTIPLE_BLOCK)の方を使うんで、今回のシリーズでは使わない想定かなー。

太郎くん
太郎くん

UHS-Ⅱであることが前提の仕様みたいだしね。

フクさん
フクさん

ま、どっちにしても今説明しているSPIモードとは関係のない話だったねー。
というわけで話を戻す。

太郎くん
太郎くん

CMD58(READ_OCR)だっけか?
OCRが読めるってことだと思うのだけど、どういったレスポンスになるんだろう?

CMD58のレスポンス(R3 フォーマット)

フクさん
フクさん

CMD58(READ_OCR)のレスポンスはR3というレスポンスフォーマットになる。
R3は簡単に言うと、R1の後ろに32bitのOCRがくっ付いたもの。

SDカードSPIモードR3フォーマット
フクさん
フクさん

一応、R1フォーマットも載せておこう。

SDカードSPIモードR1フォーマット
太郎くん
太郎くん

となると、あとはOCRが何者かってところか。

OCR(Operation Conditions Register)

フクさん
フクさん

OCROperation Conditions Registerの略。
SDカードを制御する上で必要な情報を得られる。
32bitのデータでビットアサインは以下になる。

bit PositionDefinition
[0-14]reserved
152.7~2.8[V]
162.8~2.9[V]
172.9~3.0[V]
183.0~3.1[V]
193.1~3.2[V]
203.2~3.3[V]
213.3~3.4[V]
223.4~3.5[V]
233.5~3.6[V]
24Switching to 1.8V Accepted
[25-26]reserved
27Over 2TB support Status
28reserved
29UHS-Ⅱ Card Status
30Card Capacity Status(CCS)
31Card power up status bit(busy)
太郎くん
太郎くん

15bitから23bitの電圧範囲っぽいのは何?

フクさん
フクさん

太郎くんが言ったそのもので、
駆動するための電圧範囲だね。

太郎くん
太郎くん

あー、これで自分が制御する装置の駆動電圧とミスマッチするようであれば、使用不可ってことになるのか!

フクさん
フクさん

そうそう。
それが、今回の駆動電圧判定のキモとなるところだね。

まとめ

フクさん
フクさん

まとめだよ。

  • SDカードのSPIモード通信の初期化シーケンスの中の駆動電圧判定について説明。
  • CMD58(READ_OCR)を送ると、R3フォーマットのレスポンスが返る。
    • R3フォーマットはR1にOCRが付加されたもの。
    • OCRのbit15~bit23が駆動可能電圧を示している。
    • 自装置の駆動電圧が範囲外の場合は制御不可。

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

コメント

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