Перейти к содержанию
    

Отказ SD

Приветствую!

 

Разрабатываю устройства на связке Cortex-M4, SDIO, uSD, FatFS.

Столкнулся с тем, что в редких случаях SD-карточка выходит из строя.

 

Симптомы отказа: штатные запросы к SD происходят нормально, но если считать сектор, записанный после отказа, то будет считан буфер нулей. Информация, записанная на карту до отказа - сохраняется, в т.ч. файловая система и содержимое файлов. Считал CSD и CID с двух карточек (исправной и неисправной) одной партии - отличия только в серийниках и дате производства.

 

Таких карточек накопилось уже штук 5. Похожие симптомы были у товарища, который работал с другим МК и по SPI. Карточки были разного объема и разных производителей. Какой-то системы с отказами не обнаружил. Не исключено, что были отказы устройства в целом - сбои по питанию, перезагрузки. SD запитана через ключ, соответственно при сбросе контроллера она теряет питание (в т.ч. во время выполнения операции).

 

Поделитесь, куда копать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделитесь, куда копать.

Смотреть, что вам сообщает модуль SDIO. "Поношенные" карточки становятся очень медленными.

Может, у вас по таймауту команда приостанавливается, а в буфере нули (или мусор), а не реальные данные с сектора SD-карты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похожая беда: Cortex-M4 + SDIO, через некоторое время отказывается писать, только читать можно. Уже несколько таких.

Пишу/читаю сектора. Без TRIM.

В CSD и CID ничего интересного не добавляется.

 

Может их стереть жёстко, через secure? Кто какие команды посоветует?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

отказывается писать

А как проявляется отказ? SDIO выдает ошибку? Или все ок, но данные физически не пишутся.

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

Помогал только пересброс питания карты. Если снизить частоту CLK (до единиц МГц) или вставить задержку

между предыдущим чтением и записью (~1мс), то все ок, но карту до дыр не затирал.

Шины питания и сигнальные линии в порядке.

Такое впечатление, что при чтении карта потребляет значительный ток, по какой-то причине внутренний повышающий преобразователь

сбивается, а при попытке записи повышенное напряжение не готово и происходит какой-то клин внутри.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотреть, что вам сообщает модуль SDIO. "Поношенные" карточки становятся очень медленными.

Может, у вас по таймауту команда приостанавливается, а в буфере нули (или мусор), а не реальные данные с сектора SD-карты.

 

Пользуюсь "родным" драйвером SDIO из состава библиотеки STM32F4xx HAL Drivers.

Обмен с отказавшей карточкой происходит штатно, все статусы завершения операций приходят нормальные.

Вот низкочастотная диаграмма обмена - видно, что отказавшая карточка возвращает нули.

post-83894-1463566850_thumb.png

 

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

 

И еще, вопрос до кучи: есть ли возможность узнать оставшийся ресурс SD-карточки на запись? Вдруг я ее действительно затер до дыр.

Изменено пользователем IlyaSergeev

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Чисто из практики бытового использования, впечатление, что 99% карточек контрафакт, но есть исключения, например у сандиск в поддержке по серийному номеру подтверждается подлинность, гарантия 10 лет, в случае неисправности крточка отправляется по почте, присылается новая в течении 10 дней, вот такие карточки в быту без вопросов работают.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Смотреть, что вам сообщает модуль SDIO. "Поношенные" карточки становятся очень медленными.

Может, у вас по таймауту команда приостанавливается, а в буфере нули (или мусор), а не реальные данные с сектора SD-карты.

 

Работал с imx6s именно такие вещи и были - задал маленькие таймауты, в результате более "путевые" карты, типа кингстона, трансенда и пр. работали хорошо, а вот всякие смартбэи и др. шлак - выдает ошибку. Исправил таймауты все стало нормально.

 

Чисто из практики бытового использования, впечатление, что 99% карточек контрафакт,

Вы просто не умеете их готовить :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы просто не умеете их готовить :biggrin:

+1

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

У одного: CID и CSD нулевые. У второго: работают только первые 128 МБ из 2ГБ.

Есть несколько карточек, у который готовность к чтению более 50 мс.

Прицепил статистику.

Для речевых информаторов с малым буфером важно воспроизведение в реальном времени.

Буфер из 256 байт должен прочитаться за 5.8мс; из 8192 байт за 185 мс.

Видно, что карта "2" не справляется. Позже начала тормозить и "16G".

Одиночное превышение условия реального времени не так критично, т.к. проигрывается предыдущий семпл.

Но есть карточка, которая периодически тормозит при этом в течение секунды все сектора считываются с >50 мс задержкой.

SDIO_stat_1.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть несколько карточек, у который готовность к чтению более 50 мс.

 

Интересно, почему чтение такое тормозное у них? Запись - понимаю, сам процесс записи занимает много времени, плюс выравнивание износа и т.п. Но чтение :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...