Всё про карты памяти

Тема в разделе "Теория и практика (тех. характеристики)", создана пользователем LEONавто, 25 фев 2015.

  1. Особенности, классы скорости, обозначения SD карт (SecureDigital Memory Card) SD Card association logo.jpg

    Форматирование карт средствами ПК:
    SD Card Formatter

    Программы Тестирования скорости, оценки производительности карт:

    • ATTO Disk Benchmark Автор @Kaliningrad пост #249
      ATTO Disk Benchmark – программа, являющаяся инструментом измерения производительности систем хранения (measure storage system performance), совместима с Microsoft Windows
    • HD_Speed оценка карт памяти Автор @Sergey_TrendVision пост #358
      Результаты тестов бывают очень разными, зависит от конфигурации ПК
    • Подборка от @makeevb
      поделился @makeevb Программы для карт памяти:

      Mydisktest - Лучшая программа для тестирования USB Flash носителей на предмет наличия сбойных участков.
      Panasonic SD formatter - Может реально лечит и восстанавливает практически любую флешку для мобильных устройств и не только.
      Check Flash - Предназначенная для проверки работоспособности флеш-накопителей, а также позволяющая при помощи тестов определить мгновенную скорость чтения/записи.
      Crystal Disk Mark 3.0.1 - Предназначенная для сравнительного анализа (тестирования)
      HDDscan - Программа предназначена для диагностики накопителей информации на наличие BAD-блоков, просмотра S.M.A.R.T-атрибутов накопителя, изменения специальных настроек.
      Check UDisk - Программа для получения подробной информации о подключенных USB-девайсах. Отображает информацию о внешних носителях информации - Serial.
      Chip Genius - Программа для комплексной диагностики флешек. Позволяет без труда узнать точную модель чипа памяти на флешке, производителя.
      HD Speed Rus - Утилита для тестирования скорости чтения/записи практически любого устройства для хранения информации (HDD, CD-ROM, Flash-drive, floppy и т.д.)
    Рекомендуемые к применению карты:
    • MicroSD на чипе MLC (и TLC - 3 шт.справа в нижнем ряду)(автор @alexsoll 09/03/16 пост #343) карты памяти от alexsoll рекомендации.jpg

    Информация от @alexsoll о подделках карт Samsung EVO Plus

    PS: благодарю @NSZ-550 за помощь!

    Тема * Использование карт памяти на 64Gb * имеет несколько другую направленность, остается на своем месте, и больше посвящена форматированию карт micro-SDXC (в FAT32), файловым системам и пр.
     
    • Полезно! Полезно! x 11
    • Спасибо! Спасибо! x 4
    • Согласен Согласен x 1
    #1 LEONавто, 25 фев 2015
    Последнее редактирование: 6 ноя 2018
  2. Внесу свои 5 копеек в статистику.

    Во первых полезная информация по своим любимым эво карточкам, копирую из своего сообщения в другой теме:
    Имею уже достаточно давно Samsung EVO128GB. Уже вторая карточка, покупалась у одного и того же продавца на али. Первая карточка "погибла" по независящим от нее причинам.
    Карточка поработала в TV-718 один канал 37мбс (был мод от Калининграда), K2S два канала 16+16мбс, TV Gibrid Signature два канала 20+20мбс (опять же мод).
    В настоящий момент у меня проходит "натурные испытания" Viofo A129 DUO PRO 4K. Два канала 4К-60мбс!!!+1080р-15мбс. Карточка пока работает как часы. Проверяю периодически. Уже несколько кругов записал в режиме 4К+1080р с максимальным битрейтом.

    Сейчас думаю заказать 256ГБ, так как на 4К+1080р карточка быстро "сотрется"

    Небольшое дополнение. Сейчас почитал свежие отзывы у продавца. Есть следующая тенденция:
    Самсунг урезал свои EVO-карточки по скорости записи с 90МБ на 60МБ. Моя карточка была еще со старыми скоростями
    upload_2021-5-13_11-12-57.png upload_2021-5-13_11-13-24.png
    Собственно я, покупая 256ГБ так ничего и не потеряю в скорости, вот менее емкие карточки теперь буду советовать другие, правда непонятно пока какие.
    upload_2021-5-13_11-14-17.png

    Конец цитаты.

    Теперь обновление информации.
    Месяц назад получил с Али карточку Самсунг Эво 256Гб. Работает на постоянке в Viofo A129DUO PRO (Перед 4K 60мбс+зад FullHD 15мбс). Карта единожды была отформатирована в самом реге, сейчас уже перезаписывается очередной (не могу сказать какой по счету) круг.
    upload_2021-5-13_11-28-19.png upload_2021-5-13_11-29-4.png
    Спустя месяц работы констатирую факт: работа стабильная, запись без лагов и сбоев.
    Покупал тут
     
    • Полезно! Полезно! x 7
  3. Благодарю за ссылку.
    Воспользовался и заказал себе такую же, на 256 GB. Сегодня получил, поставил в SGGCX2PRO, отформатировалась, заработала. Будем пробовать на максимальных настройках.
    20210605_115956.jpg Снимок.PNG
     
    • Полезно! Полезно! x 4
  4. Есть такое дело. Карту EVO Plus 128GB покупал месяц назад.
    samsung.png
    --- Сообщения Объединены, 14 июн 2021 ---
    Хотел ещё тут у знающих спросить: карты Sandisk Extreme и Extreme Pro показывают скорость записи / чтения на уровне 110+ / 160+ МБ/с. А это как? UHS-I же вроде как быстрее 104 МБ/с не может даже теоретически.
     
    • Полезно! Полезно! x 2
  5. 60 к/с, 41 мб/с. Пошел второй круг, полет нормальный.
     
    • Полезно! Полезно! x 4
    • Нравится Нравится x 1
  6. Судя по спецификациям UHS-I/UHS-II/UHS-III - да.
    Если на карте 1 ряд контактов, то это точно UHS-I. И физически данные не могут передаваться на карту/с карты быстрее, чем со скоростью 104 мегабайта в секунду (52MHz тактовая частота и режим DDR). Но... на практике, всё упирается в алгоритмы сжатия данных. Если передаются блоки с однотипными данными, то контроллеры (как на стороне карточного читателя, так и внутри SD-карты) их великолепно сжимают и разжимают на лету.
    Поэтому, для тестирования скорости не имеет смысла использовать популярные программы типа выше представленного кристалл-диск-марка. Хотите увидеть реальную скорость - копирование mkv-файла в FAR-е, или та же аида64 с её тестом записи.

    Кстати, аналогично удивляюсь, когда вижу скорости передачи данных в районе 15-18 мегабайт в секунду при тестировании канала интернета, понимая, что физический линк - 100 мегабит, т.е. ограничение максимум 12 мегабайт в секунду. А отгадка вся в сжатии данных.
     
    • Полезно! Полезно! x 1
  7. Я сейчас юзаю 256ГБ в режиме двух каналов записи Перед 4K 60мбс+зад FullHD 15мбс.
    С середины апреля, получается. Ни одного сбоя, количество кругов записи назвать не могу, но езжу относительно много. Форматировал пока только пару раз в самом реге в самом начале, когда с настройками игрался.
    Удачный вариант получился.

    PS кстати, подумалось, может для профилактики еще раз отформатирую сегодня вечером.
     
  8. Поездка в Крым, 4000 км в обе стороны. Битрейт снизил до обычного для себя 35 мб/с при 60 к/с, карта отработала без сбоев. Сколько кругов записи, сказать не смогу. Единственно, что было замечено при просмотре - после длительной стоянки на жарком южном солнышке какое-то время наблюдается подтормаживание записи. Видимо, находясь на ярком солнце в черной коробке ВР, карта нагревается до критической для себя температуры. Можно представить, до какой температуры в условиях парника за стеклом нагреваются внутренности ВР при наружной температуре воздуха на солнце 45-47 гр. Через некоторое время после начала движения всё приходит в норму без каких-либо видимых последствий. Можно смело говорить, что проверку на жароустойчивость карта прошла успешно. Будем смотреть дальше...
     
    • Полезно! Полезно! x 2
    • Согласен Согласен x 1
  9. У меня у самого скоро предстоит Крым. Думаю, что на время поездки переключусь на Full HD, ну разве что Мост проеду в 4К. Хочу, чтобы вся поездка туда и обратно + по Крыму точно буду кататься, осталась на карте.

    На случай.

    В карте сомнений нет. Сдюжит, уверен.
     
    • Нравится Нравится x 1
  10. как на счет этих карт памяти:
    - Kingston Canvas Go! Plus microSDXC Class 10 UHS-I U3 V30 256Gb (SDCG3/256GB) с адаптером = $37,81
    - Kingston High Endurance microSDXC UHS-I A1 128Gb = $24.96
     

    Вложения:

    #1109 Odyssey, 1 авг 2021
    Последнее редактирование: 1 авг 2021
  11. Да, хочу тут отписаться. Крым уже давно состоялся. Не переключал на FullHD, все было на 4К. Отработало как часы.
     
    • Полезно! Полезно! x 3
    • Нравится Нравится x 1
  12. Надо бы список рекомендуемых карт освежить... Тот же Lexar уже года три как - китайский Shenzhen Longsys Electronics Co., Ltd. и чего там у карт внутри - одному дядюшке Ляо известно..
     
    • Согласен Согласен x 2
    • Нравится Нравится x 1
  13. Слепил из гамна и палок приблуду для чтения служебной информации с карт, например производителя и дату производства (аналог SD Insight).
    Надо: Arduno Uno или другую платку для ардуины в выведенными контактами MOSI, MISO, СS, SCK.

    ARD.jpg
    Еще нужен SD-модуль.

    sdm.jpg


    Ну и проводки - куда ж без них...
    Схема соединения:

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

    Ставим Arduino IDE, библиотеку SDFat, компилируем, заливаем в ардуинку. Запускаем монитор порта и смотрим, чего скетч пишет про вставленную карту.
    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

    Код:
    /*
     * 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 + 10 * 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();
    }
    
     
    • Полезно! Полезно! x 3
    • Нравится Нравится x 1
  14. Теперь как-то надо соответствие / идентификацию понять, или проверять всё подряд, для накопить информацию? Этот Jiang Tay = SD-карта Samsung Evo Plus for Creators? (тут подсмотрел :) )
     
  15. Неа, это карта Silicon Power 64gb 2014-го года. В заначке нашелся только MicroSD модуть, а в него полноразмерную карту не пихнуть. SD-модуль из китая я, конечно, заказал, но его обещают привезти только в декабре и скорее всего он сгинет где-то в пути...
     
  16. По случаю, прикупил карту 512Гб за 3750р - Lexar 633x V30 U3 A2.

    lexar512_4.jpg lexar512_5.jpg

    lexar512_6.jpg lexar512_7.jpg

    lexar512.jpg lexar512_3.jpg
    Гамнорег 70mai DashCam Pro её схавал, отформатировал и пока без проблем пишет....
     
    • Нравится Нравится x 2
    • Полезно! Полезно! x 1
  17. @avi32 а служебной информацией поделитесь?
     
  18. Да там ничего интересного.

    Lexar 512Gb

    Card type: SDXC

    Manufacturer ID: 0XAD
    Shenzhen Longsys Electronics Co., Ltd (Lexar 2021)
    OEM ID: LS
    Product: LX512
    Version: 1.0
    Serial number: 0X89C32170
    Manufacturing date: 2/2021

    cardSize: 512124.53 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,0X14,0X11,0X4,0X7,0XFE,0XFF,0XFF,65536,1000177664
    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
     
    • Полезно! Полезно! x 2
  19. Что скажете про Transcend 500s? Заявлен тип памяти MLC. Можно ещё найти по вменяемому ценнику ~3,5 тр за 128Гб microsd
     
  20. У меня сейчас Я.Маркет SanDisk High Endurance microSDXC Class 10 128Гб за 2069р. предлагает, а без скидки - 2690р.
    Если не пытаться чип сковырнуть - проверенный вариант, заявленный для работы в видеорегистраторах, в отличие от Трансценда.
     
    • Полезно! Полезно! x 1
  21. У меня неплохо (уже 3я) работает Kingston SDCS2 на 128Gb, на 3-4 года хватает, потом скорость садится записи и вуаля, перебирается или в телефон или еще куда..... Купил за 2200 сейчас еще одну.
    А купил с ней на пробу SDCE - она проработала 3 дня и подохла :) хотя заявлена вроде как для видеорегистраторов high endurance. Endurance оказался не High
    https://www.kingston.com/ru/memory-cards/microsd-comparison-chart
     
    • Полезно! Полезно! x 2
Яндекс.Метрика Рейтинг@Mail.ru