Jump to content

    
Sign in to follow this  
InvisibleFed

Снова SD/MMC

Recommended Posts

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

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

 

--- кусь ---

 

 

Добрый день.

 

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Edited by ISD

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Edited by ISD

Share this post


Link to post
Share on other sites

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

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

Zltigo отвечает:

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

 

Мой вопрос.

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Инициализация 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 кГц, карты новые.

Edited by forever_student

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this