Как выбрать microSD для Arduino и пр...?

ppr
Offline
Зарегистрирован: 28.07.2020

Некоторые карты памяти(microSD) работают нестабильно в проектах на базе WeMos и Arduino. Эти же карты ведут себя нормально в компьютере.

1.Модели картридеров в проектах значения не имеют. Проблема идентична на разных.

2.Библиотеки SD.h или SdFat.h значения не имеют. Проблема идентична с обеими библиотеками.

3.ESP8266, Mega328p или STM32 значения не имеют. Поведение одинаково на всех.

4.Проблема встречалась с картами 32Мб/256Mб/4Гб/8Гб... c 16Гб не встречал, но их мало использовал.

Сейчас пришла партия, вроде не хлам(https://aliexpress.ru/item/4001120857761.html на 8Гб). Вначале запускается, затем после записи примерно 0-100к в файл отваливается, потом никак не работает в устройствах. На кампе работает норм. Если форматнуть, она опять будет готова записать примерно 0-100к и отвалиться 

Ранее сталкивался, когда карта отваливалась на ней появлялось много "мусорных" файлов, иногда менялся размер.

Учитавая, что "нормальные" карты работают без проблем, делаю вывод: проблема в картах.

Ничего не могу найти по этой проблеме в инете. Видать зациклился.

Кто сталкивался и находил причину/решение?

inspiritus
Offline
Зарегистрирован: 17.12.2012

А если писать 20 файлов по 10к?

а если между файлами ресеттить дуню?

ppr
Offline
Зарегистрирован: 28.07.2020

inspiritus пишет:

А если писать 20 файлов по 10к?

а если между файлами ресеттить дуню?


1. Прилагаю универсальный код записи в файл блоками по 1024байта для испытуемых платформ.
2. Платформы с картридерами на которых гонял тест :Arduino nano, WeMos и Maple mini(STM32)

Все карты("нормальные" и "ненормальные") были изначально отформатированы. "Нормальные" на всех трех сборках вели себя нормально. "Ненормальные" сбоили.

Последняя партия, из первого поста, была представлена двумя картами. Вели себя одинаково на всех сборках - сбоили и глохли так, что потом не запускалась. При установке их в камп никаких аномалий в их работе не наблюдается.



Странно, что нет никакой информации на эту тему. Проблема с картами явно существует и она системная для подобных проектов 

/*
 * Универсальный скетч для тестирования карты памяти для: Arduino, Esp8266, STM32
 CS pin 10 - Arduino nano
*/
#include <SPI.h>
#include <SD.h>
//#include "SdFat.h"
//SdFat SD; //коментировать для библиотеки SD.h

#define SD_CS_PIN SS

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(115200);
  while (!Serial) {
    ;// wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");
  pinMode(SD_CS_PIN , OUTPUT);// обязательнно для STM32
  if (!SD.begin(SD_CS_PIN)) {
    Serial.println("initialization failed!");
    while (1)delay(0); //зависаем, delay(0) для esp8266
  }
  Serial.println("initialization done.");
}

void loop() {
  int cycle=0;     // счетчик блоков по 1Мб записанных в файл
  int step=0;    // счетчик блоков по 1024байта записанных в файл
  run:

  myFile = SD.open("example.txt", FILE_WRITE);
  if (SD.exists("example.txt")) {
    Serial.print(cycle);
    Serial.print("-");
    Serial.println(step);
  } else {
    Serial.println("example.txt doesn't exist.");
    while (1)delay(0); // зависаем,delay(0) для esp8266
  }
  for(long i=0;i<1024;i++) {
    myFile.write(byte(0));
    delay(0);// необходимо для ESP8266
  }
  myFile.close();
 
  step++;
  if(step==1024){
    step=0;   
    cycle++;
    if(cycle==1024){
      // удаляем файл 1Гб
      Serial.println("delete file");
      SD.remove("example.txt");
      cycle=0;
    }
  }
 
  goto run;
}

 

Densl
Offline
Зарегистрирован: 28.11.2018

Первое что надо проверить, это чтобы форматирование производилось прогой sdformater. Второе это карточки с али. Думаю не должно быть секретом что никто не знает как вообще рабртают их контроллеры и соответствуют ли они аообще спецификации на эти карточки выпущенные асоциацией ведущих производителей microsd.

Logik
Offline
Зарегистрирован: 05.08.2014

Думаю все еще печальней. У карт SD несколько протоколов. Ардуина подключается по самому отстойному из них, по SPI. Продвинутые устройства используют другие протоколы, более быстрые. Они развиваются и работают нормально. А старинный SPI в картах для обратной совместимости декларируют, но толком оно не работает. 

rkit
Offline
Зарегистрирован: 23.11.2016

Что же хлам тогда, если неизвестный бренд с али - не хлам? Бывает что-то ЕЩЕ ХУЖЕ?

ppr
Offline
Зарегистрирован: 28.07.2020

Densl пишет:
Первое что надо проверить, это чтобы форматирование производилось прогой sdformater. Второе это карточки с али. Думаю не должно быть секретом что никто не знает как вообще рабртают их контроллеры и соответствуют ли они аообще спецификации на эти карточки выпущенные асоциацией ведущих производителей microsd.

sdformater делал, делал размер и сектора меньше другими инструментами. Результат стабильно негативный.
 

ppr
Offline
Зарегистрирован: 28.07.2020

rkit пишет:

Что же хлам тогда, если неизвестный бренд с али - не хлам? Бывает что-то ЕЩЕ ХУЖЕ?


Карточки работают в компьютере строго заявленным характеристиками. Никаких проблем не возникает в краткие сроки исследования. Я написал, "вроде не хлам".
Думал, что уже кто-то сталкивался с такой проблемой в серийных изделиях.

ppr
Offline
Зарегистрирован: 28.07.2020

Logik пишет:

Думаю все еще печальней. У карт SD несколько протоколов. Ардуина подключается по самому отстойному из них, по SPI. Продвинутые устройства используют другие протоколы, более быстрые. Они развиваются и работают нормально. А старинный SPI в картах для обратной совместимости декларируют, но толком оно не работает. 

Возможно, Вы правы. Меня смущает, что такая тема не имеет следов в интернете. У нас все используют только брендированые карты поддерживающие "отстойный" протокол? 

 

Densl
Offline
Зарегистрирован: 28.11.2018

Не обижайтесь, но почти любая флешка с али, не зависимо от того, что на ней напечатано, это подделка. Надо быть большим везунчиком, чтобы она работала так, как вы хотите.

ppr
Offline
Зарегистрирован: 28.07.2020

Densl пишет:

Не обижайтесь, но почти любая флешка с али, не зависимо от того, что на ней напечатано, это подделка. Надо быть большим везунчиком, чтобы она работала так, как вы хотите.

Сапсибо за совет ;) 

Logik
Offline
Зарегистрирован: 05.08.2014

ppr пишет:

Logik пишет:

Думаю все еще печальней. У карт SD несколько протоколов. Ардуина подключается по самому отстойному из них, по SPI. Продвинутые устройства используют другие протоколы, более быстрые. Они развиваются и работают нормально. А старинный SPI в картах для обратной совместимости декларируют, но толком оно не работает. 

Возможно, Вы правы. Меня смущает, что такая тема не имеет следов в интернете. У нас все используют только брендированые карты поддерживающие "отстойный" протокол? 

 

Следы в инете точно есть. Лет пять назад я делал фоторамку на ардуине. Экран ЛСД с гнездом под карту и нана. И проблема с картой была. Карты 512М и 2Г.Часть карт работала, часть нет. Я тут писал, другие жаловались. Но лучше идеи чем выбрать из нескольких карт рабочую не было.Нече обсуждать собственно. Да, карты все не с Али, из местных магазинов, но это ниче по сути не меняет, тот же Китай.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Densl пишет:

... почти любая флешка с али, не зависимо от того, что на ней напечатано, это подделка.

Очень хочется послушать подтверждающие аргументы. Если можно... ;))

ppr
Offline
Зарегистрирован: 28.07.2020

В итоге можем столкнуться с тем, что карту памяти днем с огнем не ссыскать или за какие-то ацкие деньги :)

FoxJone
Offline
Зарегистрирован: 19.04.2019

Densl пишет:

Не обижайтесь, но почти любая флешка с али, не зависимо от того, что на ней напечатано, это подделка. Надо быть большим везунчиком, чтобы она работала так, как вы хотите.

Вы, извиняюсь, соврамши!

Я покупал 25 флешек фирмы "херпоймикакойкитай", успешно их все распродал по 150 рублей (клиентам, у которых не было с собой флешки, на которой надо было унести данные) и я гарантирую - это были не подделки, а 100%-й "херпоймикакойкитай"!