roman555
Свой-
Постов
119 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о roman555
-
Звание
Частый гость
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Посетители профиля
-
Пропадают данные с microSD
roman555 ответил roman555 тема в Форумы по интерфейсам
Проверял той программой, которую вы советовали. Прогнал несколько раз, все нормально. В цикле она работать не умеет. Что значить "сбросить кэш"? Пишутся несколько типов записей 128, 256 и 512 байт. Каждый тип пишется в свою область, области выровнены по границе блока. Естественно, запись НЕ происходит в один сектор, ее адрес постоянно инкрементируется. Области кольцевые, но глюк случается, когда закольцовка еще не произошла. Пропадание данных происходит строго в тот момент, когда карта зависает. Пока склоняюсь к мысли, что карта не совсем корректно работает в spi режиме. Других мыслей пока нет. Карты других вендоров работают нормально. -
Пропадают данные с microSD
roman555 ответил roman555 тема в Форумы по интерфейсам
Который включается 59-й командой? Да, включен. Насчет аппаратной проблемы я думал, но фронты нормальные, питание в норме, да и карты других вендоров работают нормально... В последнем эксперименте я оставил на шине только sd карту. Проблема осталась... Подтяжки есть. -
Пропадают данные с microSD
roman555 ответил roman555 тема в Форумы по интерфейсам
jcxz, под "паразитным" тактированием я имел в виду клоки при обращении к другим устройствам на шине, когда cs карты поднят. aaarrr, да, выполняется. Вы не сталкивались на практике с произвольным пропаданием данных? -
Пропадают данные с microSD
roman555 ответил roman555 тема в Форумы по интерфейсам
jcxz, у меня буфер в ОЗУ размером с запись, т.е 256 байт. Вы, по сути, предлагаете писать страницей, под которую нужно постоянно держать буфер в ОЗУ, которого у меня в обрез. Но это уже детали реализации, которые сейчас не существенны, мне бы проблему пропадания данных решить... Кстати, у меня sd карта сидит на spi, к которому подключено еще 2 устройства, cs у карты, разумеется, свой. Может ли "паразитное" тактирование карты(при поднятом cs) при обращении к другим устройствам на шине приводить к нарушениям в логике работы карты(зависаниям, пропаданиям данных)? Кто нибудь сталкивался? -
Пропадают данные с microSD
roman555 ответил roman555 тема в Форумы по интерфейсам
iosifk, аппаратно все вроде нормально. Частота и так достаточно низкая. Устройство где используются эти карты не новое, проблема именно с этой партией. _4afc_, что значит делать паузы? В документации я ничего не нашел по этому поводу. Каждую отдельную операцию чтения/записи я и так делаю внутри своего цикла CS. Данные пишу с cmd24, читаю c помощью cmd17. Никаких проблем не было, пока не поставили эти карты mirex. Самое неприятное, что пропадают уже записанные данные, зависания не так критичны. В новой партии мы, конечно, будет ставить другие карты, а в старом тираже хотелось бы решить проблему программно, по крайней мере временно. jcxz, а как записывать внутри блока, если адресация блочная? Вот и приходится читаю блок, модицифировать данные и писать его снова. -
Пропадают данные с microSD
roman555 ответил roman555 тема в Форумы по интерфейсам
Спасибо, попробую. Только непонятно в каком режиме эта прога пишет: одиночными секторами или мультиблоком, боюсь это будет не совсем корректный тест. Я думал может кто - то сталкивался с подобным поведением и подскажет в чем может быть дело.. -
Пропадают данные с microSD
roman555 ответил roman555 тема в Форумы по интерфейсам
Пишу в raw, размер сектора 512. Когда пишу порциями по 256б, то сначала читаю сектор, модифицирую данные и снова записываю. -
Пропадают данные с microSD
roman555 опубликовал тема в Форумы по интерфейсам
Возникла проблема с sd картой Mirex 2Gb в spi режиме. Суть в следующем: карта нормально работает на запись в течении неск. часов, потом в какой то момент вообще перестает подавать признаки жизни (держит busy). Делаю reset по питанию, считываю данные. Вижу, что часть ранее записанных данных пропала, причем пропала не полностью, а кусками примерно по 64к, т.е часть данных есть, потом "дырка", потом снова идут данные. Т.o проблемы две - зависание карты и пропадание данных. В первую очерень хотелось бы разобраться с пропаданием данных. Данные пишу раз в секунду порциями по 256 байт. Просадок по питанию во время работы нет, неиспользуемые линии через 10к подтянуты к +3.3В. Частота spi = 12,5МГц. P.S. C картами других производителей такой проблемы не наблюдается. Дело в том, что часть устройств уже выпущена с этой картой, поменять ее можно, но это долго и затратно, поэтому хотелось бы найти программный способ решения проблемы. P.S.S. Какого размера внутренние буферы записи у карты? Т.е интересует сколько данных может теоретически потеряться при внезапном пропадании питания. Кто что может посоветовать? -
sdcard erase
roman555 опубликовал тема в Форумы по интерфейсам
Добрый день. Требуется стереть содержимое карты. Пользуюсь связкой команд CMD32+CMD33+CMD38. В качестве начального и конечного адреса указываю 0 и конечный адрес соответственно. Так вот, например, карта Kingston 2 Gb стирается нормально(время стирания 2-3сек), а карта Qumo 2Gb не стираются ни в какую, причем сигнал BUSY после команды CMD38 пропадает через несколько мс(не может карта так быстро стираться). Никаких ошибок карта не возвращает... Кто-нибудь может пояснить почему некоторые карты не стираются? Вроде бы команды стирания по стандарту должны поддерживаться всеми картами. Или реализация алгоритма стирания отдана на откуп конкретного производителя? -
Проблема с записью на sdcard
roman555 ответил roman555 тема в Форумы по интерфейсам
После получения Response Token я посылаю dummy байт и, насколько я помню, сразу после этого карта отпускает Busy. После посылки холостого байта я опускаю CS и посылаю еще один dummy байт. -
Проблема с записью на sdcard
roman555 ответил roman555 тема в Форумы по интерфейсам
Я так и делаю! Проблема в том, что начиная с третьего блока карта после передачи Response Token держит Busy очень короткое время, поэтому я не успеваю поднять CS. И именно после этого начинаются проблемы. Похоже эта особенность поведения данной карты является непреодолимой и придется всю запись переделать с использованием одиночных блоков. -
Проблема с записью на sdcard
roman555 ответил roman555 тема в Форумы по интерфейсам
Благодарю за ответы, думаю на этом тема исчерпана. Кстати, заметил один нюанс: data response перестает приходить, если CS поднимается при сброшенном Busy. Т.е, заканчивается передача данных, приходит response token, я вижу, что Busy падает в "0", а пока я готовлюсь поднять CS, Busy уже успевает перейти в "1" и, спустя некоторое время, CS поднимается в "1". И именно после этого пропадают data response. Насколько критично поднимать CS при сброшенном Busy? -
Проблема с записью на sdcard
roman555 ответил roman555 тема в Форумы по интерфейсам
Почему же? Это же обычная практика для spi устройств использовать одну шину и раздельные CS. -
Проблема с записью на sdcard
roman555 ответил roman555 тема в Форумы по интерфейсам
Не забыл, dummy байт передается. У меня такое ощущение, что карта игнорирует CS и ловит байты, которые предназначаются другим устройствам на шине. Может ли быть такое, если карта неправильно проинициализировалась, например не перешла в "spi mode"(насколько я знаю в "sd mode", который у карты по умолчанию, CS для работы не требуется)? -
Проблема с записью на sdcard
roman555 ответил roman555 тема в Форумы по интерфейсам
Немного изменил алгоритм записи на карту. Теперь чтение очередного блока из внешней RAM я делаю до проверки сигнала занятости карты. Так вот, ситуация изменилась, стало еще интереснее. Теперь корректные Data Response я получаю в ответ на посылки первых двух блоков. В качестве Data Response на посылки остальных блоков я получаю 0xff, после чего вижу, что карта как ни в чем не бывало выставляет Busy. Такое ощущение, что карте не нравится, когда ее тактируют при снятом сигнале Busy. Видимо чтение из внешней RAM для 3-го и последующих блоков происходит когда карта уже освободилась(после посылки первого блока карта выставляет Busy на ~12мс, после передачи остальных блоков Busy снимается гораздо быстрей, через ~2мс).. Кто-нибудь что-нибудь может сказать по этому поводу?