サンディスク・ウェスタンデジタル製の産業用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で取得
microSDHD製造元へ真贋判定を依頼
サポートケースを送信のフォームから製品の真偽についての確認を行った。すると、日本国内向けリテール品のサポート窓口により、産業用製品に対しては真偽鑑定、製品情報、トラブルシューティングを含むサポートは行えず、製品の情報も持ち合わせないと、回答が返ってきた。
よって、データシートに記載のある「oemproducts@wdc.com」へメール。製品の真偽についての確認を行った。正規OEM代理店から購入ではないこと。表面及び裏面のカードを写した写真は正規品と同等であること。Health Status Register機能を持っているからCMD56 Argument of 0x00000001を発行して内容を確認頂きたいと、担当者から回答が返ってきた。
microSDHCカードをH2testwで容量を確認
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 。これで合ってる?
microSDHCカードをCrystalDiskMarkで速度計測
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万回だよ。日本国内であれば北海道民も沖縄県民も安心だね。
記述した明文通り、カートへ入れて買わなきゃ♪だけど嫌なら買わなくてもいいよ。嫌なことしてもしょうがないでしょう。
お墨付きの回答をどうもありがとう!!!!(私はサンディスク・ウェスタンデジタルの回し者ではありません)感激した!!!!!!!!
だから私はサンディスク・ウェスタンデジタル。その名前負けしていない輝きを放つSDメモリーカードをカードスロットへぶすりんこ♪