Муфты электромонтажные от производителя Fucon

Как получить физический объем SD карты в связке AVR ATmegaXX

Новичок
 
Регистрация: 28.03.2011
Сообщений: 69
Репутация: 11
1 10
0 0
 
16.10.2013 13:41 #1
В работе с микроконтроллерами я не совсем чайник. Опыт в работе с SD у меня есть на уровне FAT32. И как определить свободное место на SD с FAT32 проблем нет.
А вот как определить физическое пространство SD я не знаю. Винда же при форматировании как то определяет размер SD и вписывает в кластер для последующей работы.
Подскажите куда глянуть(даташиит на SD у меня есть), какую команду использовать или посоветуйте библиотеку, пример или еще что.
Спасибо
__________________
Глаза боятся, мозг кипит, руки делают.
Оценка
В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.
Новичок
 
Регистрация: 16.10.2013
Сообщений: 2
Репутация: 12
2 0
0 0
 
16.10.2013 18:24 #2
Надо прочитать CSD регистр командой CMD9 размер карты указан как ...

Memory Capacity = BLOCKNR * BLOCK_LEN
BLOCKNR = (C_SIZE + 1) * MULT
MULT = 2C_SIZ_MULT+2 (C_SIZE_MULT < 8)
BLOCK_LEN = 2READ_BL_LEN (READ_BL_LEN < 12)
для примера карта 64Mb:
C_SIZE биты CSD [73:62] = E27h = 3623
C_SIZE_MULT биты CSD [49:47] = 011b = 3
READ_BL_LEN биты CSD [83:80] = 1001b = 9
(3623+1)*(2^(3+2))*(2^9)/1024/1024=3624*32*512/1024/1024 = 56.625MB
Последний раз редактировалось xkeen; 16.10.2013 в 19:00.
Оценка
Новичок
 
Регистрация: 28.03.2011
Сообщений: 69
Репутация: 11
1 10
0 0
 
17.10.2013 10:31 #3
Цитата:
Сообщение от xkeen
Надо прочитать CSD регистр командой CMD9 размер карты указан как ...

Memory Capacity = BLOCKNR * BLOCK_LEN
BLOCKNR = (C_SIZE + 1) * MULT
MULT = 2C_SIZ_MULT+2 (C_SIZE_MULT < 8)
BLOCK_LEN = 2READ_BL_LEN (READ_BL_LEN < 12)
для примера карта 64Mb:
C_SIZE биты CSD [73:62] = E27h = 3623
C_SIZE_MULT биты CSD [49:47] = 011b = 3
READ_BL_LEN биты CSD [83:80] = 1001b = 9
(3623+1)*(2^(3+2))*(2^9)/1024/1024=3624*32*512/1024/1024 = 56.625MB
Огромное спасибо!
Если вам не трудно, и у вас это не займет много времени посмотрите часть кода на С который я подготовлю. Куда можно вам отправить.
Еще раз спасибо!
__________________
Глаза боятся, мозг кипит, руки делают.
Оценка
Новичок
 
Регистрация: 16.10.2013
Сообщений: 2
Репутация: 12
2 0
0 0
 
17.10.2013 13:08 #4
Цитата:
Сообщение от WhiteSpirit
Огромное спасибо!
Если вам не трудно, и у вас это не займет много времени посмотрите часть кода на С который я подготовлю. Куда можно вам отправить.
Еще раз спасибо!
пишите в личку
Оценка
Ответ
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 18:14.
Обратная связь РадиоЛоцман Вверх