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

 
 
> Снова 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
Ответов
wwweider
сообщение Apr 22 2008, 04:04
Сообщение #2


Местный
***

Группа: Validating
Сообщений: 301
Регистрация: 5-07-07
Пользователь №: 28 894



я нашел программку на си для кодевижена которой от меня требуется только номер сектора и массив из 512 данных.
теперь вопрос как мне узнать диапазон секторов для любой вставленной флешки с которыми можно работать?
Go to the top of the page
 
+Quote Post
SALOME
сообщение Apr 22 2008, 11:00
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349



Цитата(wwweider @ Apr 22 2008, 11:04) *
я нашел программку на си для кодевижена которой от меня требуется только номер сектора и массив из 512 данных.
теперь вопрос как мне узнать диапазон секторов для любой вставленной флешки с которыми можно работать?

Ну обычно в секторе размещается 512 байт. Поделите объем флэшки (написано на самой карте) на 512 и получите количество секторов.


--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 22 2008, 11:12
Сообщение #4


Гуру
******

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



Цитата(SALOME @ Apr 22 2008, 13:00) *
Поделите объем флэшки (написано на самой карте) на 512 и получите количество секторов.

Да уж sad.gif. Вся информация выдается самой флешкой, размер сектора можно задать в случае необходимости. Для этого просто следует ознакомиться с системой команд (CMD9 Get CSD). То, что написано на флешке к реальности отношения не имеет, да и читать этикетки прграммно сложно smile.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SALOME
сообщение Apr 23 2008, 02:13
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349



Цитата(zltigo @ Apr 22 2008, 18:12) *
Да уж sad.gif. Вся информация выдается самой флешкой, размер сектора можно задать в случае необходимости. Для этого просто следует ознакомиться с системой команд (CMD9 Get CSD). То, что написано на флешке к реальности отношения не имеет, да и читать этикетки прграммно сложно smile.gif.

Вы все правильно говорите. Вся информация находится в самой флэшке. Но судя по всему у аффтора проблемы с доступом в регистр CSD, на который уже не однократно указывалось:
"я нашел программку на си для кодевижена которой от меня требуется только номер сектора и массив из 512 данных". Боюсь, что здесь не тот уровень, на котором можно получить доступ к регистру CSD найти где в нем храниться информация о размере карты и сделать правильный расчет. Хорошо бы в этой "программке си" найти процедуру определения размера карты. Это был бы лучший вариант.
А по поводу несоответствия надписи на флэшке: Вы имеете ввиду тот факт, что 1Кбайт=1024байт? или еще что-то?


--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 23 2008, 05:42
Сообщение #6


Гуру
******

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



Цитата(SALOME @ Apr 23 2008, 04:13) *
.. по поводу несоответствия надписи на флэшке: Вы имеете ввиду тот факт, что 1Кбайт=1024байт? или еще что-то?

Разумеется нет. Вот, например, гигабайтовая флешка:
Код
mount
Card:SDC[22] Size:995.656MB/512 F:25MHz(14745600) WP:[Off]

stat
FAT32. Number of FATs: 2. Bytes per Cluster: 16384
Root entries  : 512. Sectors per FAT: 243
Total Clusters: 62184. Free: 52927
FAT  start (LBA)         : 250
DIR  start (LBA, Cluster): 736
DATA start (LBA)         : 768


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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SALOME
сообщение Apr 23 2008, 05:56
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 311
Регистрация: 11-06-07
Из: Российская империя, 1861г.
Пользователь №: 28 349



Цитата(zltigo @ Apr 23 2008, 12:42) *
Флешка там конечно внутри стоит гигабайтовая, но часть ее используется под служебные цели и под запас для замены битых блоков. Посему размер спрашивать только у самой флешки.

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


--------------------
Итак увидел я, что нет ничего лучше, чем наслаждаться человеку делами своими (Еккл) .
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 24 2008, 05:53
Сообщение #8


Гуру
******

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



Цитата(SALOME @ Apr 23 2008, 07:56) *
Я правильно понимаю, что с ростом количества битых блоков будет уменьшаться размер памяти, выдаваемый регистром CSD?

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
galjoen
сообщение Apr 24 2008, 11:35
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(zltigo @ Apr 24 2008, 09:53) *
Нет. Просто пополнятся из резерва. После исчерпания резерва, битые сектора полезут наружу и будут уже маркироваться, как битые на файловой системе.

Что-то я не понял, что в CSD есть сведения о файловой системе на этой флешке? Это ведь ОС будет если захочет/сможет их маркировать как битые?
В своё время я пробовал при записи в свой самодельный MassStorage возвращать Sense Key=3, ASC=3, ASCQ=0 (WRITE FAULT) - Win зацикливалась на записи. Хотя м.б. это у меня какой-то другой глюк был. Или ОС как-то подругому узнаёт, что сектор битый?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 24 2008, 12:25
Сообщение #10


Гуру
******

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



Цитата(galjoen @ Apr 24 2008, 15:35) *
Что-то я не понял, что в CSD есть сведения о файловой системе на этой флешке? Это ведь ОС будет если захочет/сможет их маркировать как битые?

Сначала маскировать будет сама карта, система об этом и не узнает.
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
||- - SALOME   Цитата(zltigo @ Apr 24 2008, 12:53) Нет. ...   Apr 24 2008, 08:57
||- - 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
- - aaarrr   Маловероятно, что при такой работе вообще вылезут ...   Jul 23 2009, 18:07
- - forever_student   Всем доброго дня! Столкнулся с таким непонятны...   Apr 11 2010, 15:25
- - zltigo   Цитата(forever_student @ Apr 11 2010, 17...   Apr 11 2010, 15:44
- - forever_student   Цитата(zltigo @ Apr 11 2010, 19:59) А поч...   Apr 11 2010, 18:21
- - zltigo   Цитата(forever_student @ Apr 11 2010, 20...   Apr 11 2010, 18:54
- - forever_student   Цитата(zltigo @ Apr 11 2010, 23:09) ... б...   Apr 11 2010, 19:14
- - zltigo   Цитата(forever_student @ Apr 11 2010, 21...   Apr 11 2010, 19:22
- - 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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