Перейти к содержанию
    

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

Делаю поддержку флешек microSD на MSP430.

 

--- кусь ---

 

 

Добрый день.

 

А вопрос то в чем???

Вы хотите чтобы в исходнике нашли ошибку???

Или дали бы вам свои исходники???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Все-таки помог "костыль" в процедуре инициализации: я поставил в цикл дергание CS и сброс (CMD0). Но проблема с отсутствием данных при чтении осталась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рассказали бы другим... а то я вот собираюсь прикручивать MMC 1-2Gb - стоит ли идти по тем же граблям...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема с microSD Kingston 1Гб. Делаю чтение блоками в 32 байта в цикле. Карта на определенном адресе очень долго не выдает Data Token (пока до 1мс задержку докрутил) . Посмотрел по докам сандиск на SD карты - а там максимум в 100мс обозначен!!!!! Это как понимать?

Изменено пользователем ISD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

исходя из этого параметра можно считать, что чтение блока в 512 байт по SPI в худшем случае займет 100мс + 512*8*Fclk+команда.? Чет медлено очень :07:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чет медлено очень :07:

Ну, не на каждом же чтении возникает такое безобразие. Буферизируйте данные, если нужна стабильная скорость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если работать на 2 МГц CLK, надо буфер более 25КБ держать. Причем непонятна частота возникновения этой задержки. Как же тогда народ на АВР плееры делает? Или это только SD-карт касается? В MMC вроде меньше задержка....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потому, что при 2Мгц CLK за 100мс должно прочитаться 25000 байт (это теоретически, практически -минус команда 7 байт, минус DataToken и CRC * кол-во блоков) (конечно, если надо поток постоянным держать). Непонятно, как в MP3 плеере, сначала буферизируют столько?

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

Изменено пользователем ISD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На второй странице этой ветки SALOME задаёт вопрос:

Я правильно понимаю, что с ростом количества битых блоков будет уменьшаться размер памяти, выдаваемый регистром CSD?

Zltigo отвечает:

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

 

Мой вопрос.

Карта используется как большой массив памяти, данные линейно пишутся подряд, так же линейно читаются, и после прочтения все удаляются. Т.е. файловой системы нет. Как в таком случае будут выглядеть битые сектора? Т.е. предположу, что при попытке записать в битый сектор карта вернёт ошибку. Но какую именно? Как понять (по ошибке) что это именно битый сектор, и его нужно просто пропустить? Что ответит карта при прочтении битого сектора? Опять же как это понять, чтоб данные из этого сектора пропустить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Маловероятно, что при такой работе вообще вылезут битые сектора. На битом секторе карта вернет Write Error в Data Response токене при записи и Card ECC Failed в Data Error токене при чтении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всем доброго дня!

Столкнулся с таким непонятным явлением:

Инициализация SDHC карты для работы по SPI

CMD 0 - ответ 0х01

CMD 8 - ответ 0х01

 

ACMD 41 :

CMD 55 - ответ 0х01

/* хитрое место */

CMD 41 - ответ 0х00

 

Непонятно вот что :

4 карты (2шт. Transcend 8 Gb и 2 шт.Kingston 4 Gb) работают

если в хитром месте подать больше 7 клоков при неактивном CS

1 карта (Kingston 8 Gb) работает если в хитром месте подать более 255 клоков при неактивном CS

1 карта (Kingston 8 Gb) работает если в хитром месте подать более 511 клоков при неактивном CS

Наверное, можно нарваться на карту, где еще более широкое "хитрое место".

В Physical Layer Simplified Specification Version 2.00 ничего на этот счет не нашел.

Сколько клоков закладывать в хитрое место?

P.S. Инициализация идет при частоте клока ~250 кГц, карты новые.

Изменено пользователем forever_student

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...