|
SD-card: выход из строя, не определяется компьютером, Выработан ресурс? как проверить? |
|
|
|
May 24 2018, 09:08
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Здравствуйте!
В одном из устройств произошел массовый выход из строя SD-карточек (8 из 10 тестируемых), причем странно себя ведут: в устройстве (интерфейс SDIO, софт на базе FatFs)- карточка детектируется, файлы с них считываются корректно, но при попытке записи выдает ошибку. В компьютере- карточка вообще не детектируется. (проверено на разных компьютерах с разными ридерами).
Проблема точно не в железе устройства- это же железо с другим софтом используется долгое время, проблем нет. То есть проблема в моем новом софте. Есть поток данных, записываемых на карточку, примерно 25 килобайт в секунду. Данные пишутся в 15-минутные файлы, файлы старее пары суток удаляются. То есть получается кольцевой буфер данных.
Главный вопрос: как можно загнать карточку в такое "окирпичивание?"
Похоже на выработку ресурса: проблемы на всех карточках начались практически одновременно с разницей в 1-2 дня, после примерно 2 месяцев работы. Как проверить эту версию? Есть ли какие-то средства чтобы проверить внутреннее здоровье SD-карточки, вроде того как это на SSD делается?
Ну и еще вопрос: Почему в устройстве эти SD карточки читаются (но не пишуться), а в компьютере даже не детектируется?
Каким софтом их поковырять? я кроме WinHex и не помню ничего приличного для внутреннего ковыряния дисков.
|
|
|
|
|
 |
Ответов
|
May 29 2018, 20:46
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Ruslan1 @ May 24 2018, 12:08)  Главный вопрос: как можно загнать карточку в такое "окирпичивание?" Вообще, переход в read-only указывает на повреждение внутренних структур данных - тех, что отвечают за трансляцию адресов, выравнивание износа и т.п. Возможные причины: - низкое качество самих карт - проблемы с питанием - очень высокий износ из-за ошибок в софте МК Случаются и совсем чудеса: был у меня лет 10 назад замечательный китайский кард-ридер, после общения с которым карты совершенно разных производителей начинали жутко тормозить при записи (скорость падала примерно до ~25КБайт/с). Причина так и осталась загадкой.
|
|
|
|
|
May 30 2018, 07:52
|
Гуру
     
Группа: Свой
Сообщений: 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)
|
|
|
|
|
May 30 2018, 08:22
|
Гуру
     
Группа: Свой
Сообщений: 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) Я бы проверил на ПК скорость записи. У подделки она наверняка будет сильно занижена.
|
|
|
|
|
May 30 2018, 08:43
|
Гуру
     
Группа: Свой
Сообщений: 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 блок_стирания. И если частота генерации разных типов блоков одинакова, то получим равномерный износ. Без закладывания на внутренние механизмы карты.
|
|
|
|
Сообщений в этой теме
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    Ruslan1 Точно. Сильно стормозил. Флеш-то про сектора не зн... May 30 2018, 09:30  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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|