SD-карта Samsung Evo Plus for Creators 32Gb и тестер для карт


Решил тут прикупить полноразмерную SD-карту для штатной навигации в авто. Казалось бы, возьми microSD + переходник и оукей, но именно в такой конфигурации несколько раз ловил фризы при навигации — все же лишние контакты при вибрации — ни к чему. Поэтому остановился на полноразмерной карте, несмотря на то, что она существенно дороже. Самсунг же был выбран за проверенную годами надежность и фирменную утилитку для проверки оригинальности карты. Ну и заодно из гамна, палок и ардуиновского скетча собрал простенький тестер SD-карт по типу андроидной проги SD Insight.


Карта вполне обычная.


Обычное для Самсунга Филиппинское производство.


Скорость записи по сравнению с аналогичной MicroSD на 7-8мб/с выше. На чтение — такая же.


h2testw проблем не нашел.


Проверку на оригинальность карта проходит.


В общем с картой ничего интересного — вполне обычный, массовый оригинальный продукт.

Теперь про тестер карт, позволяющий читать всякую служебную инфу карты, в то числе идентификатор производителя. Из железа нужна платка Arduino Uno, валяющаяся без дела, пожалуй, у каждого второго. И еще — копеечный SD-модуль.

Получилась вот такая вундервафля…


Подключение:

Arduino SD-модуль
5V ----> VCC
GND ----> GND
10 ----> CS
11 ----> MOSI
12 ----> MISO
13 ----> SCK

Тут надо обратить внимание, что не все SD-модули имеют стабилизатор на 3,3В. Если его нет, надо VCC подключать к пину 3,3В, чтоб не спалить карту. Кстати, вместо Arduino Uno подойдет любая платка, у которой выведены контакты под SPI-интерфейс, только надо будет в скетче пины переопределить.

Затем ставим Arduino IDE и библиотеку SDFat, заливаем скетч, пихаем SD-карту, запускаем монитор порта и далее вводим любой символ и смотрим результаты.

Скетч

/*
 * This program attempts to initialize an SD card and analyze its structure.
 */
#include "SdFat.h"
#include "sdios.h"
/*
  Set DISABLE_CS_PIN to disable a second SPI device.
  For example, with the Ethernet shield, set DISABLE_CS_PIN
  to 10 to disable the Ethernet controller.
*/
const int8_t DISABLE_CS_PIN = -1;
/*
  Change the value of SD_CS_PIN if you are using SPI
  and your hardware does not use the default value, SS.
  Common values are:
  Arduino Ethernet shield: pin 4
  Sparkfun SD shield: pin 8
  Adafruit SD shields and modules: pin 10
*/
// SDCARD_SS_PIN is defined for the built-in SD on some boards.
#ifndef SDCARD_SS_PIN
const uint8_t SD_CS_PIN = SS;
#else  // SDCARD_SS_PIN
const uint8_t SD_CS_PIN = SDCARD_SS_PIN;
#endif  // SDCARD_SS_PIN

// Try to select the best SD card configuration.
#if HAS_SDIO_CLASS
#define SD_CONFIG SdioConfig(FIFO_SDIO)
#elif ENABLE_DEDICATED_SPI
#define SD_CONFIG SdSpiConfig(SD_CS_PIN, DEDICATED_SPI, SD_SCK_MHZ(16))
#else  // HAS_SDIO_CLASS
#define SD_CONFIG SdSpiConfig(SD_CS_PIN, SHARED_SPI, SD_SCK_MHZ(16))
#endif  // HAS_SDIO_CLASS

//------------------------------------------------------------------------------
SdFs sd;
cid_t m_cid;
csd_t m_csd;
uint32_t m_eraseSize;
uint32_t m_ocr;
static ArduinoOutStream cout(Serial);
//------------------------------------------------------------------------------
bool cidDmp() {
  String ManufName = "Unknown";
  if (int(m_cid.mid)==0) ManufName = "Invalid";
  if (int(m_cid.mid)==1) ManufName = "Panasonic Corporation";
  if (int(m_cid.mid)==2) ManufName = "Toshiba Corporation";
  if (int(m_cid.mid)==3) ManufName = "Sandisk Corporation";
  if (int(m_cid.mid)==6) ManufName = "Ritek Corporation (EXP 2018)";
  if (int(m_cid.mid)==9) ManufName = "ATP Electronics Inc.";
  if (int(m_cid.mid)==19) ManufName = "Kingmax Semiconductor Inc.(EXP 2014)";
  if (int(m_cid.mid)==25) ManufName = "Dynacard Co., Ltd.";
  if (int(m_cid.mid)==26) ManufName = "Power Quotient Intl. Co., Ltd (EXP 2017)";
  if (int(m_cid.mid)==27) ManufName = "Samsung Electronics Co., Ltd.";
  if (int(m_cid.mid)==29) ManufName = "ADATA Technology Co., Ltd.(AData, Corsair)";
  if (int(m_cid.mid)==39) ManufName = "Phison Electronics Corp. (AgfaPhoto, Delkin, Integral, Lexar, Patriot, PNY, Polaroid, Sony, Verbatim";
  if (int(m_cid.mid)==40) ManufName = "Barun Electronics (EXP 2019) (Lexar, PNY, ProGrade)";
  if (int(m_cid.mid)==49) ManufName = "Silicon Power Computer & Comm., Inc. (EXP 2017)";
  if (int(m_cid.mid)==54) ManufName = "Crucial";
  if (int(m_cid.mid)==65) ManufName = "Kingston";
  if (int(m_cid.mid)==69) ManufName = "MIXZA";
  if (int(m_cid.mid)==81) ManufName = "STEC Inc. / SimpleTech (EXP 2010)";
  if (int(m_cid.mid)==93) ManufName = "SwissBit AG";
  if (int(m_cid.mid)==97) ManufName = "Netlist, Inc.";
  if (int(m_cid.mid)==99) ManufName = "Cactus Technologies";
  if (int(m_cid.mid)==115) ManufName = "Silicon Power?";
  if (int(m_cid.mid)==116) ManufName = "Jiaelec Corp.";
  if (int(m_cid.mid)==130) ManufName = "Jiang Tay Technical Co., Ltd.";
  if (int(m_cid.mid)==131) ManufName = "Netcom Technology (HK) Ltd. (EXP 2015)";
  if (int(m_cid.mid)==132) ManufName = "Strontium Technologies Pte Ltd (EXP 2019)";
  if (int(m_cid.mid)==156) ManufName = "LD, MIXZA 333x";
  if (int(m_cid.mid)==173) ManufName = "Shenzhen Longsys Electronics Co., Ltd (Lexar 2021)";

/*
  if (int(m_cid.mid)==0) ManufName = "AGI Technology Co., Ltd";
  if (int(m_cid.mid)==0) ManufName = "Biwin Storage Technology CO., LTD";
  if (int(m_cid.mid)==0) ManufName = "BUFFALO INC.";
  if (int(m_cid.mid)==0) ManufName = "Centon Electronics Inc.";
  if (int(m_cid.mid)==0) ManufName = "Delidor Digital Technology Co., Limited";
  if (int(m_cid.mid)==0) ManufName = "Delkin Devices";
  if (int(m_cid.mid)==0) ManufName = "DIGILINK ELECTRONIC LIMITED";
  if (int(m_cid.mid)==0) ManufName = "Edisk Technology Ltd.";
  if (int(m_cid.mid)==0) ManufName = "G. Skill International Enterprises";
  if (int(m_cid.mid)==0) ManufName = "Grand and Broad Technology Co. Limited";
  if (int(m_cid.mid)==0) ManufName = "GTS Co. Ltd";
  if (int(m_cid.mid)==0) ManufName = "Guangdong Transcend Semiconductor Co., Ltd.";
  if (int(m_cid.mid)==0) ManufName = "Hagiwara Solutions Co., Ltd.";
  if (int(m_cid.mid)==0) ManufName = "HOSIN Global Electronics Co., Limited";
  if (int(m_cid.mid)==0) ManufName = "Innodisk Corp.";
  if (int(m_cid.mid)==0) ManufName = "Integral Memory Plc";
  if (int(m_cid.mid)==0) ManufName = "Keple Ltd";
  if (int(m_cid.mid)==0) ManufName = "LEAPRO TECHNOLOGY CO., LTD.";
  if (int(m_cid.mid)==0) ManufName = "Metorage Semiconductor technology Co., Ltd";
  if (int(m_cid.mid)==0) ManufName = "REALTECH SEMICONDUCTOR TECHNOLOGY LIMITED";
  if (int(m_cid.mid)==0) ManufName = "SC Global Company Co., Ltd";
  if (int(m_cid.mid)==0) ManufName = "Shenzhen Dadongjia Industrial Co., Ltd.";
  if (int(m_cid.mid)==0) ManufName = "Shenzhen Shenghua Youxin Semiconductor Technology Limited";
  if (int(m_cid.mid)==0) ManufName = "Shenzhen YeKeSheng Digital Co.,Ltd.";
  if (int(m_cid.mid)==0) ManufName = "SMART Modular Technologies (Global), Inc.";
  if (int(m_cid.mid)==0) ManufName = "SPYRUS INC.";
  if (int(m_cid.mid)==0) ManufName = "Taishin International Resources Co., Ltd.";
  if (int(m_cid.mid)==0) ManufName = "Virtium LLC";
  if (int(m_cid.mid)==0) ManufName = "WETOP TECHNOLOGY CORPORATION LIMITED";
  if (int(m_cid.mid)==0) ManufName = "Wintec Industries, Inc.";
  if (int(m_cid.mid)==0) ManufName = "Yuanchuang Digital Technology Limited";
  
*/
  cout << F("\nManufacturer ID: ");
  cout << uppercase << showbase << hex << int(m_cid.mid) << dec << endl;
  cout << ManufName << endl;
  cout << F("OEM ID: ") << m_cid.oid[0] << m_cid.oid[1] << endl;
  cout << F("Product: ");
  for (uint8_t i = 0; i < 5; i++) {
    cout << m_cid.pnm[i];
  }
  cout << F("\nVersion: ");
  cout << int(m_cid.prv_n) << '.' << int(m_cid.prv_m) << endl;
  cout << F("Serial number: ") << hex << m_cid.psn << dec << endl;
  cout << F("Manufacturing date: ");
  cout << int(m_cid.mdt_month) << '/';
  cout << (2000 + m_cid.mdt_year_low + 16* m_cid.mdt_year_high) << endl;
  cout << endl;
  return true;
}
//------------------------------------------------------------------------------
void clearSerialInput() {
  uint32_t m = micros();
  do {
    if (Serial.read() >= 0) {
      m = micros();
    }
  } while (micros() - m < 10000);
}
//------------------------------------------------------------------------------
bool csdDmp() {
  bool eraseSingleBlock;
  if (m_csd.v1.csd_ver == 0) {
    eraseSingleBlock = m_csd.v1.erase_blk_en;
    m_eraseSize = (m_csd.v1.sector_size_high << 1) | m_csd.v1.sector_size_low;
  } else if (m_csd.v2.csd_ver == 1) {
    eraseSingleBlock = m_csd.v2.erase_blk_en;
    m_eraseSize = (m_csd.v2.sector_size_high << 1) | m_csd.v2.sector_size_low;
  } else {
    cout << F("m_csd version error\n");
    return false;
  }
  m_eraseSize++;
  cout << F("cardSize: ") << 0.000512 * sdCardCapacity(&m_csd);
  cout << F(" MB (MB = 1,000,000 bytes)\n");

  cout << F("flashEraseSize: ") << int(m_eraseSize) << F(" blocks\n");
  cout << F("eraseSingleBlock: ");
  if (eraseSingleBlock) {
    cout << F("true\n");
  } else {
    cout << F("false\n");
  }
  return true;
}
//------------------------------------------------------------------------------
void errorPrint() {
  if (sd.sdErrorCode()) {
    cout << F("SD errorCode: ") << hex << showbase;
    printSdErrorSymbol(&Serial, sd.sdErrorCode());
    cout << F(" = ") << int(sd.sdErrorCode()) << endl;
    cout << F("SD errorData = ") << int(sd.sdErrorData()) << endl;
  }
}
//------------------------------------------------------------------------------
bool mbrDmp() {
  MbrSector_t mbr;
  bool valid = true;
  if (!sd.card()->readSector(0, (uint8_t*)&mbr)) {
    cout << F("\nread MBR failed.\n");
    errorPrint();
    return false;
  }
  cout << F("\nSD Partition Table\n");
  cout << F("part,boot,bgnCHS[3],type,endCHS[3],start,length\n");
  for (uint8_t ip = 1; ip < 5; ip++) {
    MbrPart_t *pt = &mbr.part[ip - 1];
    if ((pt->boot != 0 && pt->boot != 0X80) ||
        getLe32(pt->relativeSectors) > sdCardCapacity(&m_csd)) {
      valid = false;
    }
    cout << int(ip) << ',' << uppercase << showbase << hex;
    cout << int(pt->boot) << ',';
    for (int i = 0; i < 3; i++ ) {
      cout << int(pt->beginCHS[i]) << ',';
    }
    cout << int(pt->type) << ',';
    for (int i = 0; i < 3; i++ ) {
      cout << int(pt->endCHS[i]) << ',';
    }
    cout << dec << getLe32(pt->relativeSectors) << ',';
    cout << getLe32(pt->totalSectors) << endl;
  }
  if (!valid) {
    cout << F("\nMBR not valid, assuming Super Floppy format.\n");
  }
  return true;
}
//------------------------------------------------------------------------------
void dmpVol() {
  cout << F("\nScanning FAT, please wait.\n");
  uint32_t freeClusterCount = sd.freeClusterCount();
  if (sd.fatType() <= 32) {
    cout << F("\nVolume is FAT") << int(sd.fatType()) << endl;
  } else {
    cout << F("\nVolume is exFAT\n");
  }
  cout << F("sectorsPerCluster: ") << sd.sectorsPerCluster() << endl;
  cout << F("clusterCount:      ") << sd.clusterCount() << endl;
  cout << F("freeClusterCount:  ") << freeClusterCount << endl;
  cout << F("fatStartSector:    ") << sd.fatStartSector() << endl;
  cout << F("dataStartSector:   ") << sd.dataStartSector() << endl;
  if (sd.dataStartSector() % m_eraseSize) {
    cout << F("Data area is not aligned on flash erase boundary!\n");
    cout << F("Download and use formatter from www.sdcard.org!\n");
  }
}
//------------------------------------------------------------------------------
void printCardType() {

  cout << F("\nCard type: ");

  switch (sd.card()->type()) {
    case SD_CARD_TYPE_SD1:
      cout << F("SD1\n");
      break;

    case SD_CARD_TYPE_SD2:
      cout << F("SD2\n");
      break;

    case SD_CARD_TYPE_SDHC:
      if (sdCardCapacity(&m_csd) < 70000000) {
        cout << F("SDHC\n");
      } else {
        cout << F("SDXC\n");
      }
      break;

    default:
      cout << F("Unknown\n");
  }
}
//------------------------------------------------------------------------------
void printConfig(SdSpiConfig config) {
  if (DISABLE_CS_PIN < 0) {
    cout << F(
           "\nAssuming the SD is the only SPI device.\n"
           "Edit DISABLE_CS_PIN to disable an SPI device.\n");
  } else {
    cout << F("\nDisabling SPI device on pin ");
    cout << int(DISABLE_CS_PIN) << endl;
    pinMode(DISABLE_CS_PIN, OUTPUT);
    digitalWrite(DISABLE_CS_PIN, HIGH);
  }
  cout << F("\nAssuming the SD chip select pin is: ") << int(config.csPin);
  cout << F("\nEdit SD_CS_PIN to change the SD chip select pin.\n");
}
//------------------------------------------------------------------------------
void printConfig(SdioConfig config) {
  (void)config;
  cout << F("Assuming an SDIO interface.\n");
}
//-----------------------------------------------------------------------------
void setup() {
  Serial.begin(9600);
  // Wait for USB Serial
  while (!Serial) {
    SysCall::yield();
  }
  cout << F("SdFat version: ") << SD_FAT_VERSION_STR << endl;
  printConfig(SD_CONFIG);

}
//------------------------------------------------------------------------------
void loop() {
  // Read any existing Serial data.
  clearSerialInput();

  // F stores strings in flash to save RAM
  cout << F("\ntype any character to start\n");
  while (!Serial.available()) {
    SysCall::yield();
  }
  uint32_t t = millis();
  if (!sd.cardBegin(SD_CONFIG)) {
    cout << F(
           "\nSD initialization failed.\n"
           "Do not reformat the card!\n"
           "Is the card correctly inserted?\n"
           "Is there a wiring/soldering problem?\n");
    if (isSpi(SD_CONFIG)) {
      cout << F(
           "Is SD_CS_PIN set to the correct value?\n"
           "Does another SPI device need to be disabled?\n"
           );
    }
    errorPrint();
    return;
  }
  t = millis() - t;
  cout << F("init time: ") << t << " ms" << endl;

  if (!sd.card()->readCID(&m_cid) ||
      !sd.card()->readCSD(&m_csd) ||
      !sd.card()->readOCR(&m_ocr)) {
    cout << F("readInfo failed\n");
    errorPrint();
    return;
  }
  printCardType();
  cidDmp();
  csdDmp();
  cout << F("\nOCR: ") << uppercase << showbase;
  cout << hex << m_ocr << dec << endl;
  if (!mbrDmp()) {
    return;
  }
  if (!sd.volumeBegin()) {
    cout << F("\nvolumeBegin failed. Is the card formatted?\n");
    errorPrint();
    return;
  }
  dmpVol();
}




Пример декодированной информации

Card type: SDXC

Manufacturer ID: 0X82
Jiang Tay Technical Co., Ltd.
OEM ID: JT
Product: NCard
Version: 0.2
Serial number: 0X37D800B1
Manufacturing date: 10/2014

cardSize: 63416.83 MB (MB = 1,000,000 bytes)
flashEraseSize: 128 blocks
eraseSingleBlock: true

OCR: 0XC0FF8000

SD Partition Table
part,boot,bgnCHS[3],type,endCHS[3],start,length
1,0X0,0XA,0X9,0X2,0X7,0XFE,0XFF,0XFF,32768,123828224
2,0X0,0X0,0X0,0X0,0X0,0X0,0X0,0X0,0,0
3,0X0,0X0,0X0,0X0,0X0,0X0,0X0,0X0,0,0
4,0X0,0X0,0X0,0X0,0X0,0X0,0X0,0X0,0,0

volumeBegin failed. Is the card formatted?
SD errorCode: SD_CARD_ERROR_INVALID_CARD_CONFIG = 0X2A
SD errorData = 0X0



Если что — я не настоящий сварщик. Скетч взят из примеров библиотеки SDFat и немножко допилен в плане добавления базы производителей, добытой из интернетика, проги SD Insight и тестов собственной коллекции карт. Закомментированный блок в скетче — это производители имеющие действующие лицензии на производство SD карт, но пока мне неизвестно какие коды они используют. Плюс производители отмеченные по типу «EXP 2017» — это производители с закончившейся (в 2017-м) лицензией. То есть карта этого производителя, выпущенная позже — будет под большим вопросом…

В общем тестите свои карты и выкладывайте результаты — будем пополнять базу производителей.

UPD — пришел наконец-то полноразмерный SD-модуль, так что ниже результат чтения SD карты Samsung Evo Plus for Creators 32Gb.

Card type: SDHC

Manufacturer ID: 0X1B
Samsung Electronics Co., Ltd.
OEM ID: SM
Product: 5B1Q5
Version: 3.0
Serial number: 0X735D8C68
Manufacturing date: 2/2021

cardSize: 32044.48 MB (MB = 1,000,000 bytes)
flashEraseSize: 128 blocks
eraseSingleBlock: true

OCR: 0XC0FF8000

Планирую купить +6 Добавить в избранное +39 +51
+
avatar
+14
Две недели назад заказал точно такую в М Видео.
Цена 485 рублей. Заказ во время не доставили.
Извинились. Прислали промокод на 500р (100% оплата).
Итог: карта и +15рублей.
Года три не покупаю память на али И НИ КОМУ НЕ СОВЕТУЮ!!!
+
avatar
  • m13ale
  • 10 октября 2021, 19:52
+3
Да с Алишкой всё в порядке — это просто ты не внимательный. В посте — полноразмерная SD-карта, а ты покупал MicroSD c адаптером. В РФ вообще, полноразмерную SD-карту Samsung — днем с огнем не найдешь…
+
avatar
+2
а в чем принципиальное отличие полноформатной карты от микро+переходник? не всеми устройствами читаются?
+
avatar
  • m13ale
  • 10 октября 2021, 20:25
+1
Комплектные переходники нынче поганенького качества — часто уже с новья не работают или сбоят. А когда с SD-карты обновляется прошивка штатной мультимедии в авто и там же лежат карты для навигации, то отсутствие переходника становиться критичным. Настолько, что даже производитель авто официально запрещает использовать для обновления ПО карты с переходником…
+
avatar
-2
Скорость и надёжность у микро, как правило, ниже.
+
avatar
  • alex7575
  • 11 октября 2021, 09:55
+1
Это с какого перепуга
micro SD с али и JD

+
avatar
  • Leon17
  • 10 октября 2021, 19:55
+5
Года три не покупаю память на али И НИ КОМУ НЕ СОВЕТУЮ
последние три года заказал несколько карт: 2 штуки 200 гига сандиск, одна карта 128 гига Самсунг, одна карта Самсунг 32гига, одна карта 16 гига сандиск и одна карта 32гига сандиск. Кроме последней карты все оригиналы, последняя подделка. Итог: нужно покупать у проверенных продавцов (последний сандиск почти нахаляву попался и магазин стремный был). Все карты micro sd
+
avatar
  • CyJLTaH
  • 10 октября 2021, 21:38
+2
Тоже постоянно беру Сандиск и Самсунг. Уже года 3 как. И карты, и флешки. На подделки не нарывался. Все работают нормально.
+
avatar
  • m13ale
  • 10 октября 2021, 22:26
+4
За самсунг плюсану, а вот с сандиском у меня не срослось. За 15 лет у меня сдохло только две карты — Silicon Power 32gb 2011гв и Sandisk Ultra 32gb 2012гв. Причем сдохли одинаково — через пару месяцев в видеорегистраторе перешли в read-only. Недавнее тестирование описанной в посте вундервафлей показало, что карта Silicon Power — это как раз перемаркированная Sandisk Ultra. В общем-то понятно, что 10 лет спустя — это уже совсем другие карты, но осадочек остался… Но у сандиска есть и плюс — своебразный признак оригинала — дорожки на обратной стороне карты разведены китайским «топором».


И они вполне неплохо просматриваются, даже под черной краской. У остальных производителей карт дорожки разведены стандартно — под 0, 45 и 90 градусов.
+
avatar
+2
Там где написано Силикон сразу -10 на жизнь этой карты. Силикон повер стал помойкой давно.
+
avatar
+2
за последние несколько лет купил несколько сотен карт самсунг и сандиск на али. подделки присылали только непроверенные продавцы. у проверенных всё стабильно и честно, жалоб от покупателей не поступало :)
отличить оригинал от подделки, кстати, можно даже не вскрывая коробку — на подделках печать хуже качеством, очень заметно, если есть с чем сравнивать. выявлено экспериментальным путем.
+
avatar
  • Leon17
  • 10 октября 2021, 20:33
+1
подделки присылали только непроверенные продавцы. у проверенных всё стабильно
и я об этом)
+
avatar
+1
у проверенных всё стабильно
Гыгы. Не все так просто — я постил список, как отличить от подделки.
Например, торцы должно быть тоже белые (у белых карт).

У продавана с 98% рейтингом и покупок карт от 3000 мне прислали подделку.

Есть ссылки точно не на подделку?
+
avatar
+2
aliexpress.ru/store/all-wholesale-products/2289009.html

вот тут ни разу не было ни одной подделки. то же по отзывам на форумах халявщиков, ни одного негативного не встречал.
+
avatar
  • non7top
  • 11 октября 2021, 05:22
+1
И сколько нужно подделок купить, прежде чем найдется тот самый, сокровенный «проверенный» продавец? И как потом с гарантией у него будет?
+
avatar
  • Leon17
  • 11 октября 2021, 16:47
+2
У проверенного продавца «правильный» рейтинг и отзывы нужно смотреть, да и фото в комментариях желательно смотреть, там с тестами попадаются
+
avatar
+2
нисколько. на форумах и по отзывам это проверяется довольно быстро.
я же покупал всё это добро по купонам почти с нулем вложений, поэтому экспериментировал с продавцами.
+
avatar
  • gene4000
  • 11 октября 2021, 12:30
+1
Года четыре покупаю на AliExpress MicroSD с названием Samsung, от 16 до 128 гигабайт, ни разу проблем не было. Заявленные скорости поддерживают, не ломаются, только теряются некоторыми.
+
avatar
+1
Прислали промокод на 500р он от 1000 работает. Так что…
+
avatar
+1
А давно М-видео заказы от 500 рублей доставялет?
+
avatar
+1
Спасибо за технический обзор карты-памяти и возможность прочитать информацию с неё. Интересно было читать!
+
avatar
  • Dwarfi
  • 10 октября 2021, 23:24
+3
Было время, в приложении можно было менять за монетки купоны магазинов..., и в это самое время, под эти самые купоны было много магазинов торгующих карточками. Набрал за несколько месяцев несколько десятков карточек от 8, до 64 гиг.
На 64 — Samsung и Kodak, около 7 баксов, стоят в телефонах больше года.
На 8 — Kingston, стремная упаковка, обошелся в бакс, брал для установки на него прошивки в тв-бокс, сдох при установке прошивки.
Остальные 16 SanDisk и 32 — Lexar, Samsung и Kodak, до 4 баксов стоят в неосновных устройствах или подарены, все живы.
Теперь такой шары на карточки нет.
По флешкам, дешевле найти в офлайне. Последнее что брал, Kingston DataTraveler 100 G3 32GB USB 3.0 за 3 бакса, с гарантией.
Так что с памятью с али не все так однозначно.
+
avatar
  • mfiless
  • 11 октября 2021, 07:20
+2
Казалось бы, возьми microSD + переходник и оукей
Здесь я согласен. microSD + переходник не тоже самое, что полноразмерная SD. 2 дня назад выбросил 2 переходника из 4-х, т.к. карты не читались.
На фото 2 верхних нерабочие, нижние рабочие. Хранились в комнате, никаких экстремальных видов эксплуатации.
+
avatar
  • Nuts_
  • 11 октября 2021, 08:28
+1
это потому что переходники Kingston а карта sandisk :)
+
avatar
+1
это ведь сарказм, правда?..
+
avatar
  • Nuts_
  • 11 октября 2021, 16:16
+1
именно.
на самом деле у меня пачка этих переходников самых разных фирм, и обычно они либо работают и изредка не работают совсем. а чтоб глючили — повезло, не видел такого.
+
avatar
+1
А вы верите что там действительно полноразмерная стоит? Я в этом сомневаюсь.
+
avatar
  • DeCodeR
  • 11 октября 2021, 10:13
+1
на этой карточке SID возможно поменять?
+
avatar
  • m13ale
  • 11 октября 2021, 10:46
+3
Маловероятно — в Самсунге эту дырочку в 2016-м году прикрыли. Точно проверить не могу — все мои ноуты с кард-ридерами не той системы — так что вариант с линуксом не канает. Наверняка можно и вундервафлей CID переписывать, но готовых скетчей чего-то не нашел.
+
avatar
  • DeCodeR
  • 11 октября 2021, 10:53
+1
достаточно для начала будет посмотреть BUS ID
а на «вундервафлю» есть готовый проект:
kbiva.wordpress.com/2016/06/26/information-about-sd-card/
www.youtube.com/watch?v=ZAe61GZ-52Y
+
avatar
  • m13ale
  • 11 октября 2021, 12:43
+2
В «готовом проекте» одного железа тыщи на четыре надо. Плюс надо разбираться с IDE для STM32.И при этом он тоже не умеет переписывать CID. Смысл вундервафли в том, что собрать её и прошить может любой и практически бесплатно. И у меня, кстати, база производителей карт — поболе будет…
+
avatar
  • DeCodeR
  • 11 октября 2021, 12:49
-1
вопрос не в «бесплатности», а в практической пользе… если будет под руками «вундервафля» которая позволит оперативно отсеять карточки с перспективно-изменяемым CID то тогда овчинка стоит выделки. А если задача задешево собрать «вундервафлю», поморгать светодиодиком и поумиляться — то ИМХО это бесперспективно.
+
avatar
  • m13ale
  • 12 октября 2021, 12:43
+1
А что мешает написать к вундервафле скетч, который будет пробовать изменить CID и проверять, получилось или нет? Зачем для этого STM32 и экранчик? Яп может и сам скетч сделал, но проблема в отсутствии мотивации — у меня ничего с привязкой к CID нету…
+
avatar
  • Nuts_
  • 11 октября 2021, 16:13
+1
да лан это почти тоже Андуина только с экранчиком :) просто почему-то stm 32 подорожали. и экранчик не нужен там тоже вывод на консоль можно сделать.
+
avatar
  • m13ale
  • 12 октября 2021, 12:31
+1
Ну тут как в анекдоте про верблюдов — «папа, и зачем нам все эти навороты в зоопарке?» Нафига STM и экранчик, когда хватит копеечной ардуинки. Если б я делал из вундервафли проект — я б пожалуй взял ардуино леонардо (про микро) в режиме эмуляции клавиатуры, чтобы при подключении к компу вся инфа о карте автоматом писалась в предварительно открытый текстовой файл. И зачем мне тут экранчик? Как с него инфу брать, фотки делать, что-ли?
+
avatar
  • Nuts_
  • 11 октября 2021, 16:11
+1
а зачем это надо, sid редактировать
+
avatar
+1
Ну типо wifi свисток тока с родным vid и pid принимается, а сторонний лесом идет. Также и wifi адаптеры и железо в ноутах.
+
avatar
  • rhr1969
  • 11 октября 2021, 18:55
+1
А можно у CF карт поменять производителя? Часто используются в оборудовании, с белыми листами.
+
avatar
  • Nuts_
  • 13 октября 2021, 10:21
+1
wifi свисток, vid и pid это понятно…
а вот зачем sid и на карте памяти
Делать из оригинальной неоригинальную, или наоборот
+
avatar
  • m13ale
  • 12 октября 2021, 12:23
+2
Обычно CID копируется при клонирования карт памяти с привязанным софтом. Например, а автомобильных навигациях такое частенько встречается.
+
avatar
  • caliban
  • 16 октября 2021, 11:31
0
ссылка на программу для проверки подлинности карт:
s3.ap-northeast-2.amazonaws.com/global.semi.static/SMCA_Win_P01_RC01_20191202.exe
проверил свое хозяйство, а именно — 6 карточек ЭВО плюс. 4 по 64 куплены в мвидео, 2 по 128 — на али в разное время у разных продавцов. все 6 оригинальные.
автору спасибо за наводку
название программы для поиска — Samsung Card-UFD Authentication Utility
+
avatar
  • m13ale
  • 16 октября 2021, 12:03
0
Есть нюанс — прога работает только с картами с вот таким значком. А их начали выпускать только 2-3 года назад.