いろいろ試す23

せっかく貴重なGWの休みだというのに何をやっているんだ私は・・・
でもこれを消化しないと先に進めないというBADハマリ状態なのです・・・




●FTDIのFT232Rはぱちもんを撥ねるドライバが出てFT232Rの安いぱちもん
 使えなくなったから中華製のCH340G使おうぜムーブメント

みなさんはすでにご存知のこととは思いますがFT232Rはぱちもん対策が仕込んで
あってあんなことこんなことでぱちもんを使えなくさせています。
中華製のFT232R基板はまずぱちもんなのが前提だそうでぱちもん愛好家の方には
FTDIのドライバ改変で使えなくなるのは死活問題なのは必須です。そういうわけで
中華製のUSB-シリアル変換ICであるCH340Gを使おうという動きがあるようです。

ねむいさん的には何か大前提が思いっきり間違ってる気がしますが「自己責任
なら良いのではないでしょうか自己責任なら」といい居たいところですが大抵は
ぱちもんに分かって手出す人はケチなくせに文句だけは百人前でそういう人に
関わると時間と金を浪費してしまいますので皆様方はそういう人種を機敏に察知し
いち早く距離を置かれることが良いと思います。

…すみません話がそれてしまいましたが残念ながらCH340Gにもぱちもんが存在している
ようです。こちらをご覧ください。真ん中あたりにくわしい解説の画像があります。

CH340Gのぱちもんの見分け方として1Pinのマーキングの丸の削りが大きく広い
物が正規品で丸が小さくクレーター状に削られてるものがぱちもんだそうです。


ねむいさんも何故かCH340Gの出来合いボード持ってました・・・そして・・・

ぱちもんでしたー!!!!
クソァ!!1!1!!1



ちなみにぱちもんCH340Gは公式のドライバ宛がっても上手く動作しないようで
やっぱし中華メーカといえどもしっかりドライバでぱちもん対策してるようです。
このへんFTDIやProlificも同じなのでたとえイタチごっことなろうとも
メーカの自衛策としてぱちもん対策を仕込むのは必然となっているようですね。

安物買いの銭失い、安全/安心は金で買うものとはよく言ったものです。
たまにその売り物の安全安心すらぱちもんのことがありますけど…ふふふ。

20160512追:
こちらの方のブログのコメントに具体的な情報を見つけました。以下引用。

Commented by 中華マニア at 2015-04-24 10:11 x
CH340G自体にも通電していると内部のボンディングワイヤが焼き切れて
すぐ使えなくなる粗悪な偽物があふれかえっているそうです。

あれ…副業先で生産が間に合わず海外の別ルートで購入したNxP(xは伏字のx)製の
FETで似たような経験したような…


●FatFsが0.12にアップデートしてついにexFATに対応!!
GW前にChaN氏のFatFsがexFATに対応してアップデートしておりました。
64GByte以上のSDXCカードが安価で販売されるようになった今、exFATへの対応は
必然であるといえるのです!
・・ぇ?FAT32で無理やりフォーマットできるですって!?それはおいといて・・・

ところでSDHCとSDXCの違いは何か、どうやって見分けるのかという素朴な疑問が
わきますが規格では64GB以上の容量を持つカードがSDXCとなっています。
一般の方が単純明快に見分けられるたった一つの方法です。
SDHCはどう頑張っても32GBどまりです。この辺はこちらの方の解説が詳しいです。
逆に言うと128GBのSDHCとかは絶対に存在しないのでぱちもんであるとわかります。
海外通販でだまされないように注意してください。

ソフトウェア的に見分ける方法はいくつかあって前回もさらっと触れましたが
SCRを読み出しSD_Securityフィールドの値を見ることでも簡単に判別できます。
SDXCはここの値が必ず4になっています。ここの値はSD_SpecのVerには関係あり
ませんのでSDSpecのVerが4でもSDHCだったり3のカードでもSDXCなのが存在する
のは前回の読み出し比較でご存知だと思います。


さて、exFATにすることでFatFsがどういう挙動になるかを実際にフォーマット別
に比較してみました。使用するカードは前回へなちょこ判定したSuperTalentの
64GBのカードです。


前回無理やりFAT32にフォーマットして使ったといいましたがWindows上ではSDXC
カードはほぼ強制的にexFATでフォーマットされてしまうのでParagonHardDiskManager
を使いFAT32にフォーマットして使いました。
exFATのフォーマットについてはもちろんおなじみのSDFormatterV4.0です。

というわけでChaN氏のFat情報を読み出すfsコマンドといつものシーケンシャル
リードの速度比較を行ってみました。STM32F7-Discoveryで行ってます。

※FAT32フォーマット
FatFs module test terminal for STM32F746NGH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : May 4 2016
>fs
FAT type = FAT32
Bytes/Cluster = 16384
Number of FATs = 2
Root DIR entries = 0
Sectors/FAT = 30576
Number of clusters = 3913672
Volume start (lba) = 2048
FAT start (lba) = 2080
DIR start (lba,clustor) = 2
Data start (lba) = 63232

Volume name is SDXC_64GB
Volume S/N is 7022-3F80
...
19 files, 520994673 bytes.
2 folders.
62618752 KiB total disk space.
62109728 KiB available.
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 15414 kB/sec.

※exFATフォーマット
FatFs module test terminal for STM32F746NGH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : May 4 2016
>fs
FAT type = exFAT
Bytes/Cluster = 131072
Number of FATs = 1
Root DIR entries = 0
Sectors/FAT = 16384
Number of clusters = 489208
Volume start (lba) = 32768
FAT start (lba) = 49152
DIR start (lba,clustor) = 4
Data start (lba) = 65536

Volume name is SDXC_64GB
Volume S/N is DF51-7DE4
...
19 files, 520994673 bytes.
2 folders.
62618624 KiB total disk space.
62107904 KiB available.
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 18442 kB/sec.

なん・・・だと・・・!?
exFATにしたらへなちょこじゃなくなった・・・!?
exFATになってクラスタサイズがデカイのが効いているのかもしれません。

FatFsのexFATの対応はまだ始まったばかりでバグも洗い出されて洗練されて
いく真っ最中ですのでこれからの発展に期待ですね。


ついでにFatFsのexFAT対応する時の注意点をいくつか・・・
1.常にLFN対応が必須
 exFATはロングファイルネームしか存在しないためです。それに伴って従来の
 8.3形式ファイル表記に頼ったプログラムだと既存のものから0.12にアップ
 デートする際にかなりの改修が必要です。

2.そんなわけでメモリ消費量が多くなる
 これも致し方ないですね。SRAM容量32kByte以下の小規模マイコンはexFAT
 対応はやめたほうが無難でしょう。尤も32GB以下のSDHCもまだまだ生産されて
 流通しているのでSDXCしかカードが無い!って事態は当分の間無いといえます。
 無理にexFAT対応にするべきではありません。ライセンスの問題もありますから。


・業務連絡・
ChaN様へ
もしここ見てたら"Well written implementations for STM32F/SDIO and LPC2300/MCI"
の"STM32F/SDIO and LPC2300/MCI"のところを"STM32F/SPI & SDIO and LPC4088/SDMMC"
に書き換えておいてください・・・。

↑ご協力ありがとうございました(ぺっこりん


皆様へ、
おきぱSTM32F4STM32F7向けのいつものはFatFs0.12に対応してすでに公開
しております!もちろん0.12向けのパッチも適用済なのでどしどしご利用ください!



●4GBのSDカード
かつて4GB以上の容量をサポートするSDHCの規格が登場し実際に市場に出回り
はじめる過渡期に4GBの容量を持ちながらSDv1規格で動作するいわゆる"規格外"の
SDカードが存在していました。

いったいこのカードはどのような動作をするのか!?実際に現在でも流通している
カードを購入して調べてみることにしました。


ebayでドイツの販売主から購入しました。SDV1.1規格の4GBのSDカードでSDHCに対応
しないちょっと昔の機器で活躍するかも!ていう触れ込みです。

さっそくねむいさんのいつものでSDカードの情報を読み出してみました。
が・・・・
>ds 0
rc=0
Drive size: 7784448 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 5B 59 00 00 1D B1 7F 80 0A 40 00 39 @..2[Y.......@.9
CID:
00000000 1B 53 4D 46 46 46 46 46 10 00 00 20 46 00 FC F3 .SMFFFFF... F...

Parsing SD CID Register
Manufacturer ID :0x1B
OEM/Application ID :SM
Product Name :FFFFF
Product HwRev :1
Product SwRev :0
Serial Number :0x00002046
DateCode.Month :12
DateCode.Year :2015

OCR:
00000000 C0 FF 80 00 ....
SD Status:
00000000 80 00 00 00 02 00 00 00 04 04 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
SCR:
00000000 02 35 80 00 00 00 00 00 .5......

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

SD_Spec V3.0x!
Detected as SDHC Card!

・・・
なんですかこれ単なるSDHCじゃないですかーヤダー!!!
・・・ちなみにh2testwでも調べましたがカードとしてはちゃんと4GBの容量をもった
"SDHC"でした・・・ビキビキ


ぱちもんつかまされたと思って捨てるのもあれなので副業先の修理品撮影用でぢかめ
の記憶素子として利用することになりました。
が・・・
後輩から「ねむいさんこのカード1GBしか認識しないんスけど?」と文句を言われ
このカードのホントの力を知ることになります。

後輩が撮影した画像データを取り出そうとして使ったUSBカードリーダーは10年
以上前の骨董品で、4GBに替える前のでぢかめ用SDも時代遅れの1GBでした。
もちろんこのカードリーダはSDHCを一切認識しないため私が提供した4GBのカードが
容量が変だとはいえ認識すること事態がおかしいのです。

ねむいさん後輩からそのカードを取りかえし、デバッガで動きを追ったところ以下の
事実が分かりました。

1.イニシャライズ時に最初にCMD8(SDv2専用の初期化コマンド)を投げていると
 SDHCとしてブロックアドレッシングモードで動作する。
2.ACMD41をいきなり投げると(SDv1の初期化)SDSCとしてバイトアドレ
 ッシングモードで動作する

つまり新旧の初期化方法のどちらでも正しくカードを初期化できて正しく動作する
ように作られたいわば魔法のカードだったのです!!!

ねむいさんのおきぱのFatFsの移植サンプルはSDカードの初期化手順がCMD0->CMD8->
ACMD41というSDv2もSDv1も包括する流れだったので必ずSDHCとして初期化されて
しまうのでぱちもんだー!と誤認してしまいました。

以下に通常のSDv2の初期化とわざとCMD8を飛ばしてSDv1で初期化したときのカード
情報の違いの差を示します。
・SDv2
FatFs module test terminal for STM32F746NGH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Apr 28 2016
>fl
----A2011/07/27 23:51 351416 0c4f42da.jpg
----A2015/03/03 15:07 307254 1c3e744f.bmp
----A2010/07/20 13:52 1993197471 91sp2_quartus_free.exe
----A2011/06/04 06:07 324588 1c3e744f.jpg
----A2010/03/24 17:47 132389 002.jpg
----A2016/01/30 10:54 244527 2d35e710.jpg
----A2013/06/20 22:49 47566 2ecd0b3e.jpg
----A2010/03/24 17:48 198903 003.jpg
----A2011/05/25 01:11 53023 3c3ba2bd.jpg
----A2010/03/24 17:48 137038 004.jpg
----A2013/05/29 21:02 22235 4b62585a.jpg
----A2012/09/19 23:32 80490 4db4ceb4-d00d-5891-b900-4f97ec745309.image.jpg
----A2010/12/02 23:28 102769 4e61b17f.jpg
----A2010/03/24 17:48 148307 005.jpg
----A2015/07/08 14:32 318848704 install_sw4stm32_win_32bits-v1.2.exe
----A2016/02/26 11:57 421760368 MDK518.EXE
----A2008/09/12 20:19 47341 2005-03-24otter02.jpg
17 File(s),2736004389 bytes total
0 Dir(s), 1239515136 bytes free
>fs
FAT type = FAT32
Bytes/Cluster = 32768
Number of FATs = 2
Root DIR entries = 0
Sectors/FAT = 948
Number of clusters = 121334
Volume start (lba) = 8192
FAT start (lba) = 14488
DIR start (lba,clustor) = 2
Data start (lba) = 16384

No volume label
Volume S/N is 3688-4D7E
...
17 files, 2736004389 bytes.
0 folders.
3882688 KiB total disk space.
1210464 KiB available.
>ds 0
rc=0
Drive size: 7784448 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 5B 59 00 00 1D B1 7F 80 0A 40 00 39 @..2[Y.......@.9
CID:
00000000 1B 53 4D 46 46 46 46 46 10 00 00 20 46 00 FC F3 .SMFFFFF... F...

Parsing SD CID Register
Manufacturer ID :0x1B
OEM/Application ID :SM
Product Name :FFFFF
Product HwRev :1
Product SwRev :0
Serial Number :0x00002046
DateCode.Month :12
DateCode.Year :2015

OCR:
00000000 C0 FF 80 00 ....
SD Status:
00000000 80 00 00 00 02 00 00 00 04 04 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
SCR:
00000000 02 35 80 00 00 00 00 00 .5......

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

SD_Spec V3.0x!
Detected as SDHC Card!


・SDv1
FatFs module test terminal for STM32F746NGH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Apr 28 2016
>fl
----A2011/07/27 23:51 351416 0c4f42da.jpg
----A2015/03/03 15:07 307254 1c3e744f.bmp
----A2010/07/20 13:52 1993197471 91sp2_quartus_free.exe
----A2011/06/04 06:07 324588 1c3e744f.jpg
----A2010/03/24 17:47 132389 002.jpg
----A2016/01/30 10:54 244527 2d35e710.jpg
----A2013/06/20 22:49 47566 2ecd0b3e.jpg
----A2010/03/24 17:48 198903 003.jpg
----A2011/05/25 01:11 53023 3c3ba2bd.jpg
----A2010/03/24 17:48 137038 004.jpg
----A2013/05/29 21:02 22235 4b62585a.jpg
----A2012/09/19 23:32 80490 4db4ceb4-d00d-5891-b900-4f97ec745309.image.jpg
----A2010/12/02 23:28 102769 4e61b17f.jpg
----A2010/03/24 17:48 148307 005.jpg
----A2015/07/08 14:32 318848704 install_sw4stm32_win_32bits-v1.2.exe
----A2016/02/26 11:57 421760368 MDK518.EXE
----A2008/09/12 20:19 47341 2005-03-24otter02.jpg
17 File(s),2736004389 bytes total
0 Dir(s), 1239515136 bytes free
>fs
FAT type = FAT32
Bytes/Cluster = 32768
Number of FATs = 2
Root DIR entries = 0
Sectors/FAT = 948
Number of clusters = 121334
Volume start (lba) = 8192
FAT start (lba) = 14488
DIR start (lba,clustor) = 2
Data start (lba) = 16384

No volume label
Volume S/N is 3688-4D7E
...
17 files, 2736004389 bytes.
0 folders.
3882688 KiB total disk space.
1210464 KiB available.
>ds 0
rc=0
Drive size: 7784448 sectors
Erase block size: 512 sectors
Default r/w block size: 2048 bytes
Card type: SDv1
CSD:
00000000 00 0E 00 32 5B 5B 03 B6 1D B3 FF 80 0A C0 00 E9 ...2[[..........
CID:
00000000 1B 53 4D 46 46 46 46 46 10 00 00 20 46 00 FC F3 .SMFFFFF... F...

Parsing SD CID Register
Manufacturer ID :0x1B
OEM/Application ID :SM
Product Name :FFFFF
Product HwRev :1
Product SwRev :0
Serial Number :0x00002046
DateCode.Month :12
DateCode.Year :2015

OCR:
00000000 80 FF 80 00 ....
SD Status:
00000000 80 00 00 00 00 00 00 20 04 04 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 00 00 00 00 00 00 00 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!


もちろんどちらの初期化手順でも得られる使用可能総容量はCSDレジスタの値自体が
アジャストされ変化するためSDv2,SDv1のどちらの初期化手順でもまったく
同一の容量となり、さらにバイト/ブロックアドレッシング両方の読み書きも
すべて正しく行えております。
しかもご丁寧にSCRのSDSecurityのバージョンまでちゃんとアジャストして
SDv1で初期化したらちゃんとSDSCとして認識されるという充実ぶりです!!



ついでですがその他の"4GBのSDカード"も調べてみました。これはTOPRAM製の
カードです。結果から言うと同じく初期化手順の違いでSDSCにもSDHCにも化ける
タイプでした。



こちらは規格外カードの本家ともいえるTranscendの4GBカードです・・・がUSEDで
しか手に入らなかったのでなんか茶色いのがいっぱいこびりついててきちゃない・・・

中華からかった中古なので何がついてる分からずIPAでよごれをこすって落とし
まくって2時間後にようやく動作確認・・・


こいつこそホントに単なるSDHCでした!!!!!F**K!

20160512追:
後でさらに調べて分かりましたが"SD Compatible"とパッケージにはっきり
書かれたものでない限りはSDHCの表記が無くてもただのSDHCでSDv1の
初期化は一切通らないそうですF++K!!!



というわけで規格外な"4GBのSDカード"は規格外ながらも今日もどこかの
ちょっと古い機材で活躍しているかもしれません。


●秋月の006Pリチウム電池
テスタの電池用に秋月さんの006P型リチウム電池を購入してみました。


一般の006Pと比べるとやたら軽くちょっと大きく見えて不安になります・・・


一応無理なく収納できました★


動作も問題ありません♥
実はもう4ヶ月近く使用していますが今のところ電圧が出なくなったり爆発
したりとかはなく、至って問題なく使用できています。このリチウム電池は一
般的な006P型乾電池と比べると電流容量はかなり低いですがテスタのような
消費電力が低い機器で使用する分にはまったく問題は無いのでオススメです♥

Comments

Post a Comment








Go to top of page