b-volkov 0 28 марта, 2008 Опубликовано 28 марта, 2008 · Жалоба При последовательной записи секторов на СД (как, впрочем, и ММС) карту иногда время записи возрастает с единиц миллисекунд до десятков, а то и переваливает за сто. Причем, сектор записывается нормально. Особой регулярности не замечено, каждый раз тормозит на разных секторах. Перепробовал все имеющиеся карточки, время притормаживанияя меняется, частота повторения то же, но сам факт остается. Это норма? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 28 марта, 2008 Опубликовано 28 марта, 2008 · Жалоба Был у меня замечательный китайский карт-ридер, после общения с которым карточки начинали вести себя именно таким вот образом: все работает, но с дикими тормозами в случайных местах. Попробуйте взять новую карту и другой картовод, на всякий случай. Еще могут быть глюки, если не установлены pull-up резисторы на интерфейсе, но у меня они проявлялись как полное зависание карты, помогала только повторная инициализация. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 28 марта, 2008 Опубликовано 28 марта, 2008 · Жалоба А может это зависит от того, чистый сектор или записанный? Ведь если в нём чё-то было, то надо сначала стереть, а на это нужно время. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
b-volkov 0 28 марта, 2008 Опубликовано 28 марта, 2008 · Жалоба Брал карточки прямо из упаковки - то ж самое. Резисторы стоят,16к Брал карточки прямо из упаковки - то ж самое. Резисторы стоят,16к Пробовал WinHEXом забивать и нулями и FF - не помогает. Если только у нее какой-то свой признак стертости сектора (или там - блока) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bve 1 28 марта, 2008 Опубликовано 28 марта, 2008 · Жалоба Для FLASH-устройств запись происходит крупными блоками, зависящими от емкости карточки и микросхем памяти, сидящих в ней. Т.е. для записи даже 1-го сектора производится внутреннее чтение блока, модификация и обратная запись. Причем блок предварительно должен быть "стерт". Если он не "стерт", то производится автоматическое его "стирание", что требует уйму времени. В стандарте АТА, например, есть специальная команда ERASE SECTORS. После этой команды блок внутри помечается как "стертый" и запись идет намного быстрее. Найдите аналогичную команду для Вашей карточки, "сотрите" там все, что не надо и попробуите писать - скорость должна быть больше и равномернее.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
b-volkov 0 1 апреля, 2008 Опубликовано 1 апреля, 2008 · Жалоба есть специальная команда ERASE SECTORS. После этой команды блок внутри помечается как "стертый" и запись идет намного быстрее. Найдите аналогичную команду для Вашей карточки, "сотрите" там все, что не надо и попробуите писать - скорость должна быть больше и равномернее.. И так пробовал стирать - разницы не заметил. Видимо выход один: наращивать буфер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SALOME 0 12 апреля, 2008 Опубликовано 12 апреля, 2008 · Жалоба Для FLASH-устройств запись происходит крупными блоками, зависящими от емкости карточки и микросхем памяти, сидящих в ней. Т.е. для записи даже 1-го сектора производится внутреннее чтение блока, модификация и обратная запись. Причем блок предварительно должен быть "стерт". Если он не "стерт", то производится автоматическое его "стирание", что требует уйму времени. В стандарте АТА, например, есть специальная команда ERASE SECTORS. После этой команды блок внутри помечается как "стертый" и запись идет намного быстрее. Найдите аналогичную команду для Вашей карточки, "сотрите" там все, что не надо и попробуите писать - скорость должна быть больше и равномернее.. У меня похожая проблема, но немного другая. Одинаковые карты пишут на разных задаваемых скоростях. Т.е. если частоту SCLK для SPI выбрать 10МГц, то одна карта пишется без проблем, а вторая - вообще отказывается. Уменьшаешь частоту до 1 МГц - пишет хорошо. Пишу блоками по 512К. Использую команду CMD25. При считывании параметров CSD карты сомандой CMD9 байт "TRAN_SPEED" показывает одинаковую скорость, например 25 МГЦ. Кстати что это за скорость? Я так поняла, что это и есть SCLK интерфейса SPI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 12 апреля, 2008 Опубликовано 12 апреля, 2008 · Жалоба Я так поняла, что это и есть SCLK интерфейса SPI. Да, это максимальная частота клоков. А симптомы, похоже, указывают на проблемы с железом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SALOME 0 12 апреля, 2008 Опубликовано 12 апреля, 2008 · Жалоба Да, это максимальная частота клоков. А симптомы, похоже, указывают на проблемы с железом. Не буду исключать. Но почему одинаковые карты ведут себя по разному? Как они могут на железо влиять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 12 апреля, 2008 Опубликовано 12 апреля, 2008 · Жалоба Но почему одинаковые карты ведут себя по разному? Пардон, не заметил, что они одинаковые. Странно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SALOME 0 12 апреля, 2008 Опубликовано 12 апреля, 2008 · Жалоба Пардон, не заметил, что они одинаковые. Странно. Ну может одна использовалась более интенсивно и в ней много битых секторов, которые надо обходить? Но тогда при чем тут скорость SCKLK? Ведь карта просто не хочет работать на высокой частоте. В чем тут может быть дело? Не хочется работать на пониженных частотах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 12 апреля, 2008 Опубликовано 12 апреля, 2008 · Жалоба Они точно одинаковые? У карт одного производителя могут быть внутренности из разных источников. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
InvisibleFed 0 5 мая, 2008 Опубликовано 5 мая, 2008 · Жалоба Тоже не рад скорости записи на SD. На одной и той же карте в оин и тот же блок пишу и получаю разброс от 1.4 мс до 7 мс. На других чуть быстрее или медленнее, но разброс тот же. Тут давалась рекомендация стрирать сектор (установленное количество блоков). Пробовал - результат неоднозначный (что-то изменилось, одни блоки (обычно 512 байт) пишутся быстрее с "чистого" листа, другие так же медленно). Вообще, я несколько в затруднении по части того, как определить количество блоков в секторе (или секторов в блоке? - терминология для SD и MMC разнится). Если исходить из SD Prod Manual 1.9, все размеры задаются тремя параметрами регитсра CSD: C_SIZE, MULT и BLOCK_LEN (обычно 512 байт). Общее количество блоков (секторов, в случае MMC) определяется как произведение C_SIZE и MULT. Если еще умножить на BLOCK_LEN, получим емкость карты в байтах. Так где граница сектора? C_SIZE или MULT? Сколько блоков по 512 байт в себя вмещает сектор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться