|
Пропадают данные с microSD, пропадает часть данных при зависании |
|
|
|
May 10 2018, 15:22
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(adnega @ May 10 2018, 18:13) 1. Адрес должен быть выровнен на границу сектора. Как записать произвольный байт? Типа отправить весь сектор где иные байты задать erase-default-value? Естественно. Цитата(adnega @ May 10 2018, 18:13) 2. Записать можно только сектор целиком. см. п.1 см.п.1 Цитата(adnega @ May 10 2018, 18:13) Мне представляется NAND как хранилище данных с корректирующими кодами размером с сектор. Это можно проверить. И если так - тогда просто накапливать данные в ОЗУ до полного сектора.
|
|
|
|
|
May 11 2018, 08:29
|
Частый гость
Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837
|
jcxz, у меня буфер в ОЗУ размером с запись, т.е 256 байт. Вы, по сути, предлагаете писать страницей, под которую нужно постоянно держать буфер в ОЗУ, которого у меня в обрез. Но это уже детали реализации, которые сейчас не существенны, мне бы проблему пропадания данных решить...
Кстати, у меня sd карта сидит на spi, к которому подключено еще 2 устройства, cs у карты, разумеется, свой. Может ли "паразитное" тактирование карты(при поднятом cs) при обращении к другим устройствам на шине приводить к нарушениям в логике работы карты(зависаниям, пропаданиям данных)? Кто нибудь сталкивался?
--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью. Конфуций
|
|
|
|
|
May 11 2018, 13:44
|
Частый гость
Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837
|
jcxz, под "паразитным" тактированием я имел в виду клоки при обращении к другим устройствам на шине, когда cs карты поднят.
aaarrr, да, выполняется. Вы не сталкивались на практике с произвольным пропаданием данных?
--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью. Конфуций
|
|
|
|
|
May 11 2018, 14:32
|
Частый гость
Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837
|
Цитата(aaarrr @ May 11 2018, 16:51) Контроль CRC включен? Который включается 59-й командой? Да, включен. Насчет аппаратной проблемы я думал, но фронты нормальные, питание в норме, да и карты других вендоров работают нормально... Цитата(iosifk @ May 11 2018, 17:26) Достаточны ли паузы после кадра с одного устройства и до другого кадра на другое устройство? Ведь после снятия CS абонент должен перевести свой выход в 3-е состояние... И для этого нужно время. Есть ли подпор по входной шине данных? В последнем эксперименте я оставил на шине только sd карту. Проблема осталась... Подтяжки есть.
--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью. Конфуций
|
|
|
|
|
May 11 2018, 17:22
|
Гуру
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713
|
Цитата(scout @ May 11 2018, 17:32) В последнем эксперименте я оставил на шине только sd карту. Проблема осталась... Вы бы хоть описали - как пишете и что пишете? А то может быть Вы пишете один и тот же сектор, и на картах где есть "Wear leveling" оно спасает от его протирания, а попалась такая, которая не умеет "Wear leveling" - и беда. Цитата(scout @ May 11 2018, 11:29) Но это уже детали реализации, которые сейчас не существенны,мне бы проблему пропадания данных решить... Без знания этих деталей Вам тут никто не сможет помочь. Угадает разве что.... Чем больше деталей - тем выше вероятность помощи. Как то так.
|
|
|
|
|
May 15 2018, 15:37
|
Частый гость
Группа: Свой
Сообщений: 120
Регистрация: 4-01-06
Из: Москва
Пользователь №: 12 837
|
Цитата Я уже ранее предлагал это ТСу, проверить сами карты на работоспособность, проверил он или нет - непонятно... Проверял той программой, которую вы советовали. Прогнал несколько раз, все нормально. В цикле она работать не умеет. Цитата А отдельно от своего устройства пробовали карты гонять в таком же режиме (т.е. записали 256 байт - сбросили кэш)? Может, карты сами по себе бракованные. Что значить "сбросить кэш"? Цитата Вы бы хоть описали - как пишете и что пишете? А то может быть Вы пишете один и тот же сектор, и на картах где есть "Wear leveling" оно спасает от его протирания, а попалась такая, которая не умеет "Wear leveling" - и беда. Пишутся несколько типов записей 128, 256 и 512 байт. Каждый тип пишется в свою область, области выровнены по границе блока. Естественно, запись НЕ происходит в один сектор, ее адрес постоянно инкрементируется. Области кольцевые, но глюк случается, когда закольцовка еще не произошла. Пропадание данных происходит строго в тот момент, когда карта зависает. Пока склоняюсь к мысли, что карта не совсем корректно работает в spi режиме. Других мыслей пока нет. Карты других вендоров работают нормально.
--------------------
То, что неясно, следует выяснить. То, что трудно творить, следует делать с великой настойчивостью. Конфуций
|
|
|
|
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|