いろいろ試す26

今回SDカード中心です。


●ついに発見!Transcendの4GBのSDカード

当初SDHCをつかまされてしまった私ですがSDコンパチブルな奴をついに見つけ出し
ました!!というかebayで新たに発売開始(???)されていました!


SDHC版と比較…ものすごく似てるけど色が微妙に違う…知らなかったこんなの…

一応SDカードの情報を抜き出してみました(あえてSDv1による初期化です)。

FatFs module test terminal for STM32F427IIT6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Nov 8 2016
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 14597 kB/sec.
>ds 0
rc=0
Drive size: 7788544 sectors
Erase block size: 512 sectors
Default r/w block size: 2048 bytes
Card type: SDv1
SpeedMode: HighSpeedMode(51.43MHz)
DataBusWidth: 4bit

CSD:
00000000 00 0E 00 32 5B 5B 03 B6 9D B7 FF 80 0A C0 00 21 ...2[[.........!
CID:
00000000 74 4A 45 53 44 43 20 20 10 3C D5 6B 7B 00 08 AB tJESDC .<.k{...

Parsing SD CID Register
Manufacturer ID :0x74
OEM/Application ID :JE
Product Name :SDC
Product HwRev :1
Product SwRev :0
Serial Number :0x3CD56B7B
DateCode.Month :8
DateCode.Year :2000

OCR:
00000000 80 FF 80 00 ....
SD Status:
00000000 80 00 00 00 00 00 00 20 03 03 90 00 08 05 00 00 ....... ........
00000010 00 00 00 00 00 00 00 00 00 53 4D 49 00 00 00 00 .........SMI....
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 0F 17 00 04 00 00 20 00 00 00 00 00 00 00 ........ .......
SCR:
00000000 02 25 80 00 00 00 00 00 .%......

Parsing SCR
SD Spec Version :2
SD Spec Version 3 :1
SD Spec Version 4 :0
SD Security :2
SD Bus Width :5

SD_Spec V3.0x!
Detected as SDSC Card!

製造年月が2000年とかなってますけど思い切り嘘ですね。2016年産でから。
一応製造元はTranscendの製造協力会社のものになっており真贋の方は分かりかね
ますが…一応PC上で容量チェックを行った所、4GB分正しく読み書きが可能でした。

SDHCだった方のカード情報はこんな感じです。

FatFs module test terminal for STM32F427IIT6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Nov 7 2016
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 21688 kB/sec.
>ds 0
rc=0
Drive size: 7812096 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
SpeedMode: HighSpeedMode(51.43MHz)
DataBusWidth: 4bit

CSD:
00000000 40 0E 00 32 5F 59 00 00 1D CC 7F 80 0A 40 00 D5 @..2_Y.......@..
CID:
00000000 1C 53 56 53 44 43 20 20 10 01 D2 00 BC 00 82 DB .SVSDC ........

Parsing SD CID Register
Manufacturer ID :0x1C
OEM/Application ID :SV
Product Name :SDC
Product HwRev :1
Product SwRev :0
Serial Number :0x01D200BC
DateCode.Month :2
DateCode.Year :2008

OCR:
00000000 C0 FF 80 00 ....
SD Status:
00000000 80 00 00 00 02 00 00 00 03 03 90 00 08 05 00 00 ................
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
SCR:
00000000 02 35 00 00 00 00 00 00 .5......

Parsing SCR
SD Spec Version :2
SD Spec Version 3 :0
SD Spec Version 4 :0
SD Security :3
SD Bus Width :5

SD_Spec V2.00!
Detected as SDHC Card!

れっきとしたTranscendの奴ですね。

ちなみに読み出し速度は圧倒的にSDHC版の奴の方が上でしたorz


このSDコンパチブルなTranscendのはSDv1の初期化でバイトアクセスとなり、SDv2の
初期化ではブロックアクセスとなりました。この辺以前紹介した4GBカードたちと同じ
ですね。(ていうか同一の会社がガワだけ別で中身同じの作ってそうです・・・。)


そしてそのうちの前回紹介した4GBのドイツカードなのですが端子の埃をふき飛ば
そうとエアダスターを吹き込んだからカードのプラスティックの隙間に圧縮空気が
入り込み、内部から分解してしまいましたorz貴重な4GBカードがッ…!!!


とりあえず分解して荼毘に付しました。基板がこんなにペナッペナです。工業用の
堅牢な奴に比べて明らかに強度的に弱いですね。値段も安価なのでいたしかたなし
なのですけど。




●CMD1の初期化はどのカードまで可能なのか!?
12月頭にCMD1による初期化がSDカードのライセンスの影響を避けるために必要だ
えらそうに言ってしまいましたので今回は実際にCMD1のカードで初期化が通るん
かいな?という疑問を実際に動作させて検証していきたいと思います。


使用するカードは256MB〜4GB(SDHCじゃない奴)までの容量のSDカードです。
これは春先にひたすら読み込みまくった時の連中をセレクトです。


前回同様STM32F4-DiscoveryのSPI互換モードでSDにアクセスするほうのいつものを
使い、ChaN師謹製の初期化ルーチンからCMD1による初期化のみ残したプログラムを
動作させてファイラーが起動してディレクトリが見えたら初期化成功とします。

結果ですがATPProMAX 1GBのminiSDを除きすべてCMD1による初期化が成功しました!
もちろん成功したカードの中には冒頭で紹介したSDこんぱちなTranscendの4GBの
カードも含まれております。


もちろん2016年製造のPanasonicの工業用SDカードもCMD1の初期化が通ってます!
こいつはCMD8の初期化も通るんですよね〜。CMD8で通っても4GB以下なのでバイト
アクセスになります。

ちなみに私が持っているeMMCはSPIモードが既に削除されている品種のため、どう
がんばってもSPIモードに突入することができずだめでした。SDカードと同一の形状を
保って方のいるMMCplusなどのv4系カードなら問題無いです。


お次はネイティブモードでCMD1の初期化だけを残した奴を試してみましたが…。
・・・
結果は全滅orz

Argumentとか0にして見ましたが何してもどのカードでもタイムアウトで全滅ですorz
ネイティブモードだとCMD1は通らないのか!?

答えはSDIO Specificationに有りました。以下13ページ目のフローチャートを抜粋。


・・・
ネイティブモードが相手ならMMCの例外な実装によってSDカードがたまたま
偶然に動作せざるを得ない!11!!1(CV:リョウ・サカザキ)




♥ねむいさんのおまとめ♥
電子工作においては現在も入手可能な4GB以下のSDカードに対してSPI互換モードで
CMD1による初期化のみでカードを動作させることは十分可能であり、この方法ならば
SDAのライセンシーにも全く抵触しません。

CMD1が確実に通るカードの中でねむいさんの激押しは
TOPRAM製4GB
ドイツ製4GB
Transcend4GB
この3種の4GBカードです!値段も安いですし4GBもあれば十分でしょー

それ以外の方法(SDネイティブモードによるアクセス、もしくはSDHC/SDXCカードを
使う)をどうしても施行したい場合はソースコード中にMMCが実際に動作できるCMD1
による初期化を残しつつMMCまたは互換カードの例外的な実装によってたまたま動作
しているように見せかけてあげればよいと思います。よくない。




●SD Specfication Version5のカード

テレッテレッテーテッテー テレレレレッテー(テュィーーーン)

V!V!V!
もういいわ

2000円ちょっとで売っていたのでつい購入してしまいました。以前私はロゴだら
けや!って予言しましたが本当にロゴだらけですね
V30のビデオ規格のロゴが付与されたものがSDSpecV5のカードの証です。
これにA1ロゴとかもつく予定なのでさらにカオス状態になりそうです。

ねむいさんの予想では山盛りになってしまった性能表記のロゴのすべてを包括する
新たな統一ロゴが来年あたりに登場すると思います。

FatFs module test terminal for STM32F427IIT6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Dec 6 2016
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 19787 kB/sec.
>ds 0
rc=0
Drive size: 62333952 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
SpeedMode: HighSpeedMode(51.43MHz)
DataBusWidth: 4bit

CSD:
00000000 40 0E 00 32 5B 59 00 00 ED C8 7F 80 0A 40 40 C3 @..2[Y.......@@.
CID:
00000000 03 53 44 53 45 33 32 47 80 A4 38 40 2C 01 07 C7 .SDSE32G..8@,...

Parsing SD CID Register
Manufacturer ID :0x3
OEM/Application ID :SD
Product Name :SE32G
Product HwRev :8
Product SwRev :0
Serial Number :0xA438402C
DateCode.Month :7
DateCode.Year :2016

OCR:
00000000 C1 FF 80 00 ....
SD Status:
00000000 80 00 00 00 05 00 00 00 04 00 90 00 0F 05 3A 1E ..............:.
00000010 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
SCR:
00000000 02 35 84 43 00 00 00 00 .5.C....

Parsing SCR
SD Spec Version :2
SD Spec Version 3 :1
SD Spec Version 4 :1
SD Spec Version X :1
SD Security :3
SD Bus Width :5

SD_Spec V5.xx!
Detected as SDHC Card!
Available UHS-I Mode.

おやくそくのSDカードの情報を抜き出してみました。
予想通り確かにSD_Specは"5"を示しておりますね★

Go to top of page