見出し画像

サンディスク・ウェスタンデジタル製の産業用microSDHCカードSLC採用高耐久フラッシュメモリーを入手

民生用のデバイスへ産業用microSDHCカードをぶすりんこ♪と、装着したくなった。産業用microSDHCカードの型式は「SDSDQED-032G-XI」。入手先はマウザー。microSDHCカードが届いた。各種検証と真贋判定依頼を行った。

microSDHCカードの各種検証・真贋判定依頼

microSDHCカードの中身をcidとCMD56(メーカー担当者からの助言により実現)で製造元をセルフで検証。真贋判定をメーカーに依頼。容量と書込読込の速度と整合性の検証をセルフで。


結果:合格、メーカー担当者からのOSUMITUKIも頂き紛れもなくホンモノ。


microSDHCカードのcidを取得

$ cat /sys/block/mmcblk0/device/cid
035344574433324780xxxxxxxx016a00

Manufacturer IDが0x030、Sandisk。OEM/Application IDが0x5344、Sandisk。Product Nameが0x5744333247、WD32G。シリアルナンバー部分は「xxxxxxxx」と、自主規制。0x16aは何だったけ?因みにRaspberryPiを使った。

microSDHCカードをSD Insightで取得

2022年10月製造、こうでした。

microSDHD製造元へ真贋判定を依頼

問い合わせて2日後メールで返信が届いた
結果は
「海外向けではございますが正規品であるという判断となりました。」
良かった本物だ(^_^)

どのような判定方法かは社内情報によりご案内できないとのこと。
そうだよね~
判定方法公表したら巧妙な偽物作られるよね

SanDiskは親切丁寧で信頼できる。

SanDiskのSDカードが本物か判定する | 67th Star

サポートケースを送信のフォームから製品の真偽についての確認を行った。すると、日本国内向けリテール品のサポート窓口により、産業用製品に対しては真偽鑑定、製品情報、トラブルシューティングを含むサポートは行えず、製品の情報も持ち合わせないと、回答が返ってきた。

よって、データシートに記載のある「oemproducts@wdc.com」へメール。製品の真偽についての確認を行った。正規OEM代理店から購入ではないこと。表面及び裏面のカードを写した写真は正規品と同等であること。Health Status Register機能を持っているからCMD56 Argument of 0x00000001を発行して内容を確認頂きたいと、担当者から回答が返ってきた。

microSDHCカードをH2testwで容量を確認

Test finished without errors. You can now delete the test files *.h2w or verify them again. Writing speed: 78.2 MByte/s Reading speed: 88.0 MByte/s H2testw v1.4
30424MB完走。

microSDHCカードのS.M.A.R.T値をsdmonで読み出す

「sdmon.c」へ付け足してビルド。

  // first try if read wit arg 1 returns anything
  cmd56_arg = 0x00000001;
  ret = CMD56_data_in(fd, cmd56_arg, data_in);
  // we assume success when the call was successful AND the signature is not 0xff 0xff
  if (ret == 0 && !((data_in[0] == 0xff && data_in[1] == 0xff) || (data_in[0] == 0x00 && da>    printf("\"signature\":\"0x%x 0x%x\",\n", data_in[0], data_in[1]);
    if (data_in[0] == 0x44 && data_in[1] == 0x53) {
      printf("\"SanDisk\":\"true\",\n");
    }

    /*
      Health Status is an estimated percent life used based on the amount of TBW the NAND
      memory has experienced relative to the SD card device TBW ability. Values reported in
      hexadecimal in 1% increments with 0x01 representing 0.0% to 0.99% used. A value of
      0x64 indicates 99 to 99.99% of the ability have been used. The SD card storage device
      may accommodate writes in excess of the 100% expected life limit. Note that although
      this is possible, entry into a read only mode could occur upon the next write cycle.
    */

    strncpy(tmpstr, (char *)&data_in[2], 6);
    tmpstr[6] = 0;
    printf("\"manufactureYYMMDD\": \"%s\",\n", tmpstr);
    printf("\"healthStatusPercentUsed\": %d,\n", data_in[8]);
    printf("\"featureRevision\": \"0x%x\",\n", data_in[11]);
    printf("\"generationIdentifier\": %d,\n", data_in[14]);
    printf("\"049\": 0x%x,\n", data_in[49]);
    printf("\"050\": 0x%x,\n", data_in[50]);
    printf("\"051\": 0x%x,\n", data_in[51]);
    printf("\"052\": 0x%x,\n", data_in[52]);
    printf("\"053\": 0x%x,\n", data_in[53]);
    printf("\"054\": 0x%x,\n", data_in[54]);
    printf("\"055\": 0x%x,\n", data_in[55]);
    printf("\"056\": 0x%x,\n", data_in[56]);
    printf("\"057\": 0x%x,\n", data_in[57]);
    printf("\"058\": 0x%x,\n", data_in[58]);
    printf("\"059\": 0x%x,\n", data_in[59]);
    printf("\"060\": 0x%x,\n", data_in[60]);
    printf("\"061\": 0x%x,\n", data_in[61]);
    printf("\"062\": 0x%x,\n", data_in[62]);
    printf("\"063\": 0x%x,\n", data_in[63]);
    strncpy(tmpstr, (char *)&data_in[49], 32);
    tmpstr[32] = 0;
    printf("\"productString\": \"%s\",\n", tmpstr);
    close(fd);
    printf("\"success\":true\n}\n");
    exit(0);
  }
  if (ret == 0) {
    printf("\"read_via_cmd56_arg_1\":\"read successful but signature 0x%x 0x%x\",\n", data_>  } else {
    printf("\"read_via_cmd56_arg_1\":\"not implemented: %s\",\n", strerror(errno));
  }
$ sudo ./sdmon /dev/mmcblk0
{
"version": "",
"date": "2023-08-24T17:05:19.000Z",
"device":"/dev/mmcblk0",
"addTime": "false",
"signature":"0x44 0x57",
"manufactureYYMMDD": "221003",
"healthStatusPercentUsed": 1,
"featureRevision": "0x1f",
"generationIdentifier": 5,
"049": 0x57,
"050": 0x65,
"051": 0x73,
"052": 0x74,
"053": 0x65,
"054": 0x72,
"055": 0x6e,
"056": 0x20,
"057": 0x44,
"058": 0x69,
"059": 0x67,
"060": 0x69,
"061": 0x74,
"062": 0x61,
"063": 0x6c,
"productString": "Western Digital                 ",
"success":true
}

これは文字コード。一覧表と照らし合わせることにする。因みに製造年月日は2022年10月3日であった。

"049": 0x57, W "050": 0x65, e "051": 0x73, s "052": 0x74, t "053": 0x65, e "054": 0x72, r "055": 0x6e, n "056": 0x20, スペース "057": 0x44, D "058": 0x69, i "059": 0x67, g "060": 0x69, i "061": 0x74, t "062": 0x61, a "063": 0x6c, l

WesternスペースDigital

この文字コードの文字列はWestern Digitalであった。

CMD56 Argument of 0x00000001の発行で512Byte Responseが返ってくる。例えば2~7であれば製造年月が返ってくる。49~63であれば上記の結果の通り。418~424であればSDとProduct Name(MODEL)が返ってくる。406~411では何やら私では判別不能な文字列に。"406": 0x30,"407": 0x6f, "408": 0x33, "409": 0x30, "410": 0x6f, "411": 0x20,。0o30o 。これで合ってる?

寿命判定を行うことができます。で、具体的にそれって何といいますとCMD56によるSMART値の取得にほかなりません。WD製のSDカードはSandiskの流れを汲むのでCMD56の引数及び得られる構造体はSandiskと同じ(0x00000001)で行けます!

Sandiskのころと全く同じなのでとても安心感がありますね☆
ログはこちらに置いておきます。ご参考に。

ねむいさんのぶろぐ | いろいろ試す47

smart[403] = 000 : 0x00 : <0>
smart[404] = 000 : 0x00 : <0>
smart[405] = 076 : 0x4C : L
smart[406] = 049 : 0x31 : 1
smart[407] = 104 : 0x68 : h
smart[408] = 051 : 0x33 : 3
smart[409] = 048 : 0x30 : 0
smart[410] = 113 : 0x71 : q
smart[411] = 032 : 0x20 :
smart[412] = 032 : 0x20 :
smart[413] = 032 : 0x20 :
smart[414] = 032 : 0x20 :
smart[415] = 032 : 0x20 :
smart[416] = 032 : 0x20 :
smart[417] = 003 : 0x03 :
smart[418] = 083 : 0x53 : S
smart[419] = 068 : 0x44 : D
smart[420] = 087 : 0x57 : W
smart[421] = 088 : 0x58 : X
smart[422] = 049 : 0x31 : 1
smart[423] = 050 : 0x32 : 2
smart[424] = 056 : 0x38 : 8
smart[425] = 128 : 0x80 :
smart[426] = 087 : 0x57 : W

ねむいさんのぶろぐ | いろいろ試す47
https://dl.dropboxusercontent.com/s/eks835zfls6820y/WDD128G1P0C_smart.7z
 WDD128G1P0C.txt

microSDHCカードをCrystalDiskMarkで速度計測

カードリーダーでワークフローを強化する高速転送速度の恩恵を受け、
データシート上の毎秒共に書込が50MBで読込が90MBの数値を上回る。

microSDHCカードをCheck Flashで整合性確認

整合性に誤りなく完走。

だから私はサンディスク・ウェスタンデジタルをぶすりんこ♪

親切、丁寧、感激。信頼性抜群なサンディスク・ウェスタンデジタルの最強伝説を実体験。だから私はSDメモリーカードはサンディスク・ウェスタンデジタルをぶすりんこ♪。他にも「SDSDQEC-004G」やスイスビット製の「SFSD2048N1AS1TO-I-QG-221-STD」もあるけどね。

産業用microSDHCカードSLC採用高耐久フラッシュメモリーの「SDSDQED-032G-XI」を読者の皆様もカートへ入れて是非入手!信頼性を感じて気になるなら、買わなきゃ♪(マウザーは正規OEM代理店ではありませんでした)


SDSDQED-032G-XIの規格

SDSDQED-032G-XI」はmicroSDHCで容量は32GB。UHS-I U3でスピードクラス10。


64GBモデルなら1920TBWでProgram/Erase Cyclesは30Kなので3万回だよ。日本国内であれば北海道民も沖縄県民も安心だね。

Interface SD5.1 UHS-I 104
NAND Flash Technology SLC
Operating Temp –40°C to 85°C
Performance Speed Class 10, U3
Sequential W/R 50/90 MB/s
Endurance (P/E Cycle) 30K
Endurance (TBW) Up to 1920 (64 GB)
Data Retention Up to 10 years for fresh devices at 55°C
Additional Features Device Health Status, Programmable String,
Host Lock, Secure FW upgrade

Approximations based on Western Digital internal metrics that quantifies how much data can be written to a card in its lifespan expressed in Terabytes Written (TBW), with write amplification of 1

データシート

記述した明文通り、カートへ入れて買わなきゃ♪だけど嫌なら買わなくてもいいよ。嫌なことしてもしょうがないでしょう。

お墨付きの回答をどうもありがとう!!!!(私はサンディスク・ウェスタンデジタルの回し者ではありません)感激した!!!!!!!!

だから私はサンディスク・ウェスタンデジタル。その名前負けしていない輝きを放つSDメモリーカードをカードスロットへぶすりんこ♪