реклама на сайте
подробности

 
 
> Снова SD/MMC, Вопросы, на которые не нащел пока ответов
InvisibleFed
сообщение Apr 17 2008, 10:15
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 18-11-06
Из: Хабаровск
Пользователь №: 22 469



Подключаю карту SD к AVR. Вот вроде все, пишет, читает, регистры читает и все такое. Но вот возникли вопросы.

1. Правельно ли утверждение, что я могу писать в блок/сектор сколько угодно раз без стирания?
2. Если да, то нафига стирание (т. е. зачем сама операция)?
3. Как происходит адресация? Т. е. например в блоке/секторе 512 байт. Если я записываю 512 байт по адресу 0x00000001, то следующие 512 байт "начнуться" с адреса 0x00000001 + 0x00000200 (512) = 0x00000201 (513)?
4. Из регистра CSD судя по SDProdManual для карточек SanDisk можно вытащить информацию обо все параметрах-размерах (размер сектора/блока, их число, число байт => вычислить весь объем карточки). Справедливо ли это для карт прочих производителей? Как узнать объем вставленной карточки?
5. Часть секторов/блоков именуются как write protected. Как узнать об их распределении по адресному пространству карточки, где они расположены? Т. е. я, к примеру, пишу блок/сектор, а потом оказывается что туда нельзя писать, т. к. он защищен.

P. S. "блок/сектор" - единица информации, обычно в 512 байт. По непонятным причинам, как я понял, эти совершенно разные понятия конфликтуют в доках на карты SD (блок) и MMC (сектор).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jul 23 2009, 18:07
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Маловероятно, что при такой работе вообще вылезут битые сектора. На битом секторе карта вернет Write Error в Data Response токене при записи и Card ECC Failed в Data Error токене при чтении.
Go to the top of the page
 
+Quote Post
forever_student
сообщение Apr 11 2010, 15:25
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 5-04-09
Из: Москва
Пользователь №: 47 180



Всем доброго дня!
Столкнулся с таким непонятным явлением:
Инициализация 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 - Apr 11 2010, 15:27
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 11 2010, 15:44
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(forever_student @ Apr 11 2010, 17:40) *
Сколько клоков закладывать в хитрое место?

А почему это Вас сильно волнует? При наличии контроля responce после каждого байта этот "таймаут" может заложен весьма большим.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
forever_student
сообщение Apr 11 2010, 18:21
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 5-04-09
Из: Москва
Пользователь №: 47 180



Цитата(zltigo @ Apr 11 2010, 19:59) *
А почему это Вас сильно волнует? При наличии контроля responce после каждого байта этот "таймаут" может заложен весьма большим.

Насколько большим?
Если он будет мЕньшим, чем нужен для конкретной карты, то после ACMD 41 я получу responce 0хFF, и буду повторять ACMD 41 до бесконечности (пробовал 255 раз, результата никакого). Поэтому хочется или знать какое-то значение, при котором любая SDHC карта, поддерживающая SPI, ответит 0х00, или понять, где я чего-то неправильно сделал
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 11 2010, 18:54
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(forever_student @ Apr 11 2010, 20:36) *
Если он будет мЕньшим, чем нужен для...

Не понимаю, что Вы там написали, но вообще бесконтрольные магические клоки на карту выдавать просто не надо. То, что перед командой, это ожидание готовности. Ожидание готовности ТОЖЕ должно быть подконтрольным и после CMD55 перед ACMD41 сначала надо дождаться готовности. Лично у меня это отсчитывает операционка, посему не с тактах sad.gif, а в ms - 750ms почему? За давностью лет не помню sad.gif все было написано лет пять назад.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
forever_student
сообщение Apr 11 2010, 19:14
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 256
Регистрация: 5-04-09
Из: Москва
Пользователь №: 47 180



Цитата(zltigo @ Apr 11 2010, 23:09) *
... бесконтрольные магические клоки на карту выдавать просто не надо...

Sorry, неправильно выразился. Это просто байты 0хFF(т.е. 8 клоков=1 байт), передаваемые при неактивном CS (как те, что до CMD 0).
Т.е. после CMD 55 достаточно дать паузу ~800 мС, затем CMD 41?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 11 2010, 19:22
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(forever_student @ Apr 11 2010, 21:29) *
неправильно выразился. Это просто байты 0хFF(

Я о том-же. Вот и КОНТРОЛИРУЙТЕ ответ-готовность при передаче этих 0xFF.
Цитата
Т.е. после CMD 55 достаточно дать паузу ~800 мС, затем CMD 41?

Разумеется нет. Пауза тут вообще ни сном ни духом CD надо тактировать. Считать при этом время или байт-такты, это уже конкретная реализация.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- InvisibleFed   Снова SD/MMC   Apr 17 2008, 10:15
- - InvisibleFed   Неужели никто не может помочь? Наверняка кто-нить ...   Apr 18 2008, 05:12
|- - yarunt   Цитата(InvisibleFed @ Apr 18 2008, 08:12)...   Apr 18 2008, 05:56
- - InvisibleFed   Если Вы давали ответ на 3-й вопрос, то я немного п...   Apr 18 2008, 12:36
- - aaarrr   Цитата(InvisibleFed @ Apr 17 2008, 14:15)...   Apr 18 2008, 12:41
- - galjoen   Цитата(InvisibleFed @ Apr 17 2008, 14:15)...   Apr 18 2008, 13:35
|- - aaarrr   Цитата(galjoen @ Apr 18 2008, 17:35) Или ...   Apr 18 2008, 13:41
|- - galjoen   Цитата(aaarrr @ Apr 18 2008, 17:41) Сбойн...   Apr 18 2008, 14:01
|- - aaarrr   Цитата(galjoen @ Apr 18 2008, 18:01) Т.е....   Apr 18 2008, 14:11
|- - galjoen   Цитата(aaarrr @ Apr 18 2008, 18:11) Ровно...   Apr 18 2008, 14:47
- - InvisibleFed   Цитата512 байт по адресу 0x01 никто записать не по...   Apr 18 2008, 22:50
|- - SALOME   Цитата(InvisibleFed @ Apr 19 2008, 05:50)...   Apr 21 2008, 08:33
- - InvisibleFed   Спасибо за помощь. Ошибка действительно была в мое...   Apr 21 2008, 12:25
- - wwweider   я нашел программку на си для кодевижена которой от...   Apr 22 2008, 04:04
|- - SALOME   Цитата(wwweider @ Apr 22 2008, 11:04) я н...   Apr 22 2008, 11:00
|- - zltigo   Цитата(SALOME @ Apr 22 2008, 13:00) Подел...   Apr 22 2008, 11:12
|- - SALOME   Цитата(zltigo @ Apr 22 2008, 18:12) Да уж...   Apr 23 2008, 02:13
|- - zltigo   Цитата(SALOME @ Apr 23 2008, 04:13) .. по...   Apr 23 2008, 05:42
|- - SALOME   Цитата(zltigo @ Apr 23 2008, 12:42) Флешк...   Apr 23 2008, 05:56
||- - zltigo   Цитата(SALOME @ Apr 23 2008, 07:56) Я пра...   Apr 24 2008, 05:53
||- - SALOME   Цитата(zltigo @ Apr 24 2008, 12:53) Нет. ...   Apr 24 2008, 08:57
||- - galjoen   Цитата(zltigo @ Apr 24 2008, 09:53) Нет. ...   Apr 24 2008, 11:35
||- - aaarrr   Цитата(galjoen @ Apr 24 2008, 15:35) Что-...   Apr 24 2008, 12:25
||- - galjoen   Цитата(aaarrr @ Apr 24 2008, 16:25) Снача...   Apr 24 2008, 13:05
|- - SALOME   Цитата(zltigo @ Apr 23 2008, 12:42) Флешк...   Apr 24 2008, 05:41
- - jorikdima   прочитать документацию   Apr 22 2008, 06:12
- - wwweider   какую?   Apr 22 2008, 08:07
- - InvisibleFed   Например эту. Обратите снимание на регистр CSD и д...   Apr 22 2008, 09:32
- - wwweider   спасибо уже становиться понятнее, мне кажется в эт...   Apr 24 2008, 05:27
- - wwweider   это всё определяет контроллер на борту самой флешк...   Apr 24 2008, 05:49
- - InvisibleFed   Идем дальше, как говорится... Имею на руках две фл...   May 4 2008, 05:22
- - AndreyS   Добрый день. Не хотел создавать новую тему, так к...   May 15 2008, 20:51
|- - aaarrr   Цитата(AndreyS @ May 16 2008, 00:51) Вот ...   May 15 2008, 20:57
|- - AndreyS   Цитата(aaarrr @ May 16 2008, 00:57) Право...   May 15 2008, 21:07
|- - AndreyS   Добрый день. Может быть я плохо искал по форуму и...   Sep 10 2008, 08:10
- - sergeeff   С посекторной записью в SD вопрос неприятный. Мне ...   Sep 10 2008, 10:19
|- - AndreyS   Цитата(sergeeff @ Sep 10 2008, 14:19) С п...   Sep 10 2008, 10:54
- - М430   Доброго дня. Имею аналогичную проблему с MicroSD ...   Sep 15 2008, 14:15
- - aaarrr   28/0.11 = 254. Ну очень похоже на 256 - размер как...   Sep 15 2008, 20:23
|- - М430   Цитата(aaarrr @ Sep 15 2008, 23:23) 28/0....   Sep 16 2008, 06:13
- - М430   И еще интересный момент. В вышеописанных условиях ...   Sep 16 2008, 08:11
|- - aaarrr   Цитата(М430 @ Sep 16 2008, 12:11) Что за ...   Sep 18 2008, 08:05
|- - jorikdima   Цитата(aaarrr @ Sep 18 2008, 12:05) На эт...   Sep 18 2008, 09:31
- - jorikdima   У меня тоже проблемы с недетерменированностью врем...   Sep 16 2008, 09:25
- - LCD   Здравствуйте. Делаю поддержку флешек microSD на MS...   Oct 2 2008, 20:14
|- - AndreyS   Цитата(LCD @ Oct 3 2008, 00:14) Здравству...   Oct 3 2008, 06:23
|- - stepper88   Дабы не плодить темы, пишу сюда. Есть в наличии пл...   Sep 12 2012, 07:27
- - LCD   Да, чтобы помогли найти ошибку или дали исходники,...   Oct 3 2008, 07:41
- - LCD   Все, разобрался, вопрос больше не актуален   Oct 3 2008, 21:34
- - Cyber_RAT   Рассказали бы другим... а то я вот собираюсь прикр...   Oct 4 2008, 17:37
- - LCD   Я выложу diskio, когда доделаю его до конца, мне н...   Oct 7 2008, 17:27
- - ISD   Проблема с microSD Kingston 1Гб. Делаю чтение бло...   Oct 24 2008, 11:08
- - aaarrr   Так и понимать. Постоянную скорость Вам никто не о...   Oct 24 2008, 11:11
- - ISD   исходя из этого параметра можно считать, что чтени...   Oct 24 2008, 13:46
|- - aaarrr   Цитата(ISD @ Oct 24 2008, 17:46) Чет медл...   Oct 24 2008, 13:53
- - ISD   Если работать на 2 МГц CLK, надо буфер более 25КБ ...   Oct 24 2008, 14:07
- - LCD   Цитата(ISD @ Oct 24 2008, 18:07) Если раб...   Oct 25 2008, 13:37
- - ISD   Потому, что при 2Мгц CLK за 100мс должно прочитать...   Oct 27 2008, 07:19
- - Angelo   На второй странице этой ветки SALOME задаёт вопрос...   Jul 23 2009, 17:00
- - forever_student   ЦитатаВот и КОНТРОЛИРУЙТЕ ответ-готовность при пер...   Apr 11 2010, 19:54
- - zltigo   Цитатавсе 0хFF. Это правильная реакция карты готов...   Apr 11 2010, 20:14
- - forever_student   Передаю CMD55, жду responce 0x01, CS оставляю акти...   Apr 11 2010, 20:39
- - zltigo   Цитата(forever_student @ Apr 11 2010, 22...   Apr 11 2010, 21:36
- - forever_student   Цитата(zltigo @ Apr 12 2010, 01:51) А вот...   Apr 12 2010, 05:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 15:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016