реклама на сайте
подробности

 
 
> SD-card: выход из строя, не определяется компьютером, Выработан ресурс? как проверить?
Ruslan1
сообщение May 24 2018, 09:08
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Здравствуйте!

В одном из устройств произошел массовый выход из строя SD-карточек (8 из 10 тестируемых), причем странно себя ведут:
в устройстве (интерфейс SDIO, софт на базе FatFs)- карточка детектируется, файлы с них считываются корректно, но при попытке записи выдает ошибку.
В компьютере- карточка вообще не детектируется. (проверено на разных компьютерах с разными ридерами).

Проблема точно не в железе устройства- это же железо с другим софтом используется долгое время, проблем нет. То есть проблема в моем новом софте.
Есть поток данных, записываемых на карточку, примерно 25 килобайт в секунду. Данные пишутся в 15-минутные файлы, файлы старее пары суток удаляются. То есть получается кольцевой буфер данных.

Главный вопрос: как можно загнать карточку в такое "окирпичивание?"

Похоже на выработку ресурса: проблемы на всех карточках начались практически одновременно с разницей в 1-2 дня, после примерно 2 месяцев работы.
Как проверить эту версию? Есть ли какие-то средства чтобы проверить внутреннее здоровье SD-карточки, вроде того как это на SSD делается?

Ну и еще вопрос: Почему в устройстве эти SD карточки читаются (но не пишуться), а в компьютере даже не детектируется?

Каким софтом их поковырять? я кроме WinHex и не помню ничего приличного для внутреннего ковыряния дисков.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение May 29 2018, 20:46
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Ruslan1 @ May 24 2018, 12:08) *
Главный вопрос: как можно загнать карточку в такое "окирпичивание?"

Вообще, переход в read-only указывает на повреждение внутренних структур данных - тех, что отвечают за трансляцию адресов, выравнивание износа и т.п.
Возможные причины:
- низкое качество самих карт
- проблемы с питанием
- очень высокий износ из-за ошибок в софте МК

Случаются и совсем чудеса: был у меня лет 10 назад замечательный китайский кард-ридер, после общения с которым карты
совершенно разных производителей начинали жутко тормозить при записи (скорость падала примерно до ~25КБайт/с). Причина
так и осталась загадкой.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение May 30 2018, 07:52
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(aaarrr @ May 29 2018, 22:46) *
Вообще, переход в read-only указывает на повреждение внутренних структур данных - тех, что отвечают за трансляцию адресов, выравнивание износа и т.п.
Возможные причины:
- низкое качество самих карт
- проблемы с питанием
- очень высокий износ из-за ошибок в софте МК


Спасибо всем!
Уважаемый aaarrr собрал вместе то что озвучено в разных постах, именно из этого списка вероятностей я и исхожу.

Про низкое качество карточек- думаю стресс-тест провести (я их ем партиями по 100-200 штук, одну из партии всегда можно попробовать убить для тестов). Стресс-тест на запись прямо сейчас запущу, посмотрим сколько суток протянет (на писишке с USB3, чтоб побыстрее). (Upd: хороший тест еще поискать нужно, мда..)

Про питание- тоже возможно. Дело в том, что именно эти 10 приборов (из которых на многих SD карточка и "окирпичилась") питаются от одного общего внешнего блока питания (в других применениях устройства снабжены индивидуальными внешним БП). Через встроенный DCDC прибора в принципе много чего может пролезть короткого и злобного. Но опять же- это никак не сказалось на окружающей электронике на этой же плате, ни сбросов-зависаний процессора, ни каких-нибудь других проблем- только SD карточка.

Я сам склоняюсь к причине "очень высокий износ из-за ошибок в софте МК". Так как именно для этих 10 штук была разработана своя версия софта. Вроде бы не сильно отличается от стандартной применяемой в сотнях приборов, но все же.

Про "просто запланированный высокий износ":
Сделал счетчик записанных секторов- получилось что реально пишу около 41 сектора в секунду, это 3.5 миллиона секторов в сутки. Проверю точнее, но конкретно область FAT обновляю примерно раз в секунду.

Ну и риторический вопрос- имеет ли смысл следить, в какой сектор я пишу, или этот wear leveling все берет на себя?
Я так понимаю, при расчете нужно исходить от пустого пространства и ресурса на сектор?
У меня: примерно 10 гигабайт свободного пространства, и 2 гигабайта переписывается в сутки. Если выравнивание работает, то даже при ресурсе сектора "1 тысяча записей" должно продержаться 13 лет.

Конкретно у меня карточки микро-SD Сандиск 16G Ultra 10 класс (SDHC UHS-I)
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 30 2018, 08:22
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Ruslan1 @ May 30 2018, 10:52) *
Сделал счетчик записанных секторов- получилось что реально пишу около 41 сектора в секунду, это 3.5 миллиона секторов в сутки.
...
У меня: примерно 10 гигабайт свободного пространства, и 2 гигабайта переписывается в сутки. Если выравнивание работает, то даже при ресурсе сектора "1 тысяча записей" должно продержаться 13 лет.

Нет такого понятия, как ресурс сектора. Флеш стирается блоками, а здесь все плохо: у карты 16G будет порядка 125 тысяч блоков,
а ресурс каждого - несколько тысяч записей.

Цитата(Ruslan1 @ May 30 2018, 10:52) *
Конкретно у меня карточки микро-SD Сандиск 16G Ultra 10 класс (SDHC UHS-I)

Я бы проверил на ПК скорость записи. У подделки она наверняка будет сильно занижена.
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 30 2018, 08:43
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(aaarrr @ May 30 2018, 11:22) *
Нет такого понятия, как ресурс сектора. Флеш стирается блоками, а здесь все плохо: у карты 16G будет порядка 125 тысяч блоков,
а ресурс каждого - несколько тысяч записей.

Тогда лучше отказаться от ФС, создать несколько кольцевых буферов блоков данных (по количеству значений времени жизни блока данных) и размер этих кольцевых буферов сделать разным. Например нужно иметь блок_данных_тип_1 (TTL=15мин), блок_данных_тип_2 (TTL=30мин), блок_данных_тип_3 (TTL=1час). Соответственно создаём:
очередь_1 = N*4 блоков_данных; очередь_2 = N*2 блоков_данных; очередь_3 = N блоков_данных. И число N подбираем таким, чтобы был занят весь объём карты.
Каждая очередь - выравнена на целое число блоков_стирания + 1 блок_стирания.
И если частота генерации разных типов блоков одинакова, то получим равномерный износ. Без закладывания на внутренние механизмы карты.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение May 30 2018, 09:30
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Точно. Сильно стормозил. Флеш-то про сектора не знает.
в Интернете говорят про размер страницы флеш в карточках 8-128 килобайт, ну и с другой стороны оно еще вдруг целыми кластерами переносит, а не посекторно, опять же ограничение.

Из 10 карточек нашлись некоторые, которые компьютер видит, но не может записать. То есть то что тут мне и говорили- карты перешли в read-only, но еще определяются работают. На вид- очень медленно, скорость чтения 15 килобайт/c, причем именно если с корневой директории копировать. если внутри директории работать- то все быстрее.

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

Ну и понятно куда копать. В первую очередь кэширование FAT.

Цитата(HardEgor @ May 30 2018, 11:16) *
Отправить в sandisk серийные номера, с целью проверки на контрафактность, не пробовали?

Не отправил, но собираюсь. Уже накопилось. Вдруг и ответят.

Хорошую статью нашел, там народ даже лез анализатором чтоб проверить как контроллер распихивает данные на трех флешках разных производителей. Речь про USB стики, но думаю что SD карточки не сильно другие.
Write Endurance in Flash Drives: Measurements and Analysis
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan1   SD-card: выход из строя, не определяется компьютером   May 24 2018, 09:08
- - jcxz   Цитата(Ruslan1 @ May 24 2018, 12:08) Есть...   May 24 2018, 11:17
|- - Ruslan1   Цитата(jcxz @ May 24 2018, 13:17) А в чём...   May 24 2018, 13:49
|- - Ruslan1   Скажите пожалуйста, какие могут быть варианты для ...   May 29 2018, 15:56
|- - aaarrr   Цитата(Ruslan1 @ May 29 2018, 18:56) Как ...   May 29 2018, 16:25
|- - jcxz   Цитата(Ruslan1 @ May 29 2018, 18:56) Если...   May 29 2018, 20:07
||- - aaarrr   Цитата(jcxz @ May 30 2018, 11:43) Тогда л...   May 30 2018, 08:53
|- - HardEgor   Цитата(Ruslan1 @ May 30 2018, 14:52) Про ...   May 30 2018, 09:16
- - Alex11   У современных карточек снаружи не нужно следить за...   May 30 2018, 08:19
- - k155la3   Маловероятно, конечно, но. - Нет ли "просадки...   May 30 2018, 10:22
- - Ruslan1   Я понимаю, что внутренние используемые механизмы в...   May 31 2018, 08:48
- - jcxz   Цитата(Ruslan1 @ May 31 2018, 11:48) (Хор...   May 31 2018, 11:29
|- - Ruslan1   Цитата(jcxz @ May 31 2018, 13:29) Почему ...   May 31 2018, 12:04
- - controller_m30   Цитата(Ruslan1 @ May 31 2018, 11:48) Вопр...   May 31 2018, 17:13
- - aaarrr   Цитата(controller_m30 @ May 31 2018, 20:1...   May 31 2018, 18:14
- - jcxz   Цитата(aaarrr @ May 31 2018, 21:14) но ло...   May 31 2018, 19:42
|- - aaarrr   Цитата(jcxz @ May 31 2018, 22:42) ...вмес...   May 31 2018, 20:02
|- - Ruslan1   Цитата(jcxz @ May 31 2018, 21:42) А может...   Jun 1 2018, 09:18
|- - jcxz   Цитата(Ruslan1 @ Jun 1 2018, 12:18) Дейст...   Jun 1 2018, 09:47
|- - controller_m30   Цитата(Ruslan1 @ Jun 1 2018, 12:18) С пус...   Jun 1 2018, 12:20
- - controller_m30   Цитата(aaarrr @ May 31 2018, 21:14) Думае...   May 31 2018, 21:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 00:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01778 секунд с 7
ELECTRONIX ©2004-2016