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

Помогите подобрать файловую систему для microsd

Это так, но если данные идут непрерывно, без дефрагментации то можно просто установить размер блока данных, скажем 64 кБ и принимать их непрерывно

Конечно, Paulina, только можно ли это назвать полноценной файловой системой? :)

 

 

Ну посмотрите хоть, перед тем как свой огород городить.

Коллега,

на AVR скорость fatfs около 300 кб/c, поэтому вопрос быстрее она efsl или нет, второстепенный, поскольку автору нужно больше, насколько я помню начало топика.

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


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

Конечно, Paulina, только можно ли это назвать полноценной файловой системой? :)

 

разумеется, нет, но в первом сообщении указывалось, что:

Задачи самые скромные - только читать какой-нибудь файл. Не будет никаких каталогов - просто в корневом будет около 100 файлов

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


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

Конечно, Paulina, только можно ли это назвать полноценной файловой системой? :)

Коллега,

на AVR скорость fatfs около 300 кб/c, поэтому вопрос быстрее она efsl или нет, второстепенный, поскольку автору нужно больше, насколько я помню начало топика.

 

Так надо сначала написать процедуру чтения сектора и замерить скорость чтения/записи n-секторов подряд и в произвольном порядке. После этого будет понятно, что является узким местом, вся организация доступа через FAT или чтение сектора. Я подобное проделывал с efsl, там накладные расходы от fat не превышали 10%.

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


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

Так надо сначала написать процедуру чтения сектора и замерить скорость чтения/записи n-секторов подряд и в произвольном порядке. После этого будет понятно, что является узким местом, вся организация доступа через FAT или чтение сектора. Я подобное проделывал с efsl, там накладные расходы от fat не превышали 10%.

 

эффективность тем больше чем больше блок данных. если данные будут только транслироваться, то зачем ограничивать блок размером сектора, который всего 512 байт?

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


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

Пытаюсь прочесть хоть что-то с SD карты, чтобы понять, что все как-то работает и можно идти дальше, но карта отвечает только 0xFF (т.е. ничего), а программа ниже печатает только точки... В чем может быть дело, нет мыслей? Работаю с 8051 архитектурой и пока с программным SPI, фрагмент кода привожу ниже... Может, что-то не так с начальными установками уровней? :unsure:

 

    deselect();       // Снять CS --> 1
       for (i=0; i<10; ++i)       wr_spi_msb(0x00);        // Выдать  >72 CLK
    for (i=0; i<10; ++i)                   // some delay, нужно ли?
    DATA = 0;                               // Начальный уровень на входе CMD карты

  //========Сброс карты===============
    select();                    // Выдать CS_SD_Card --> 0
do
   {
    wr_spi_msb(0х40);                // SD card CMD_0="CMD_GO_IDLE_STATE" -  write byte MSB first via DATA pin
    wr_spi_msb(0);            // Argument = 0
    wr_spi_msb(0);            // Argument = 0
    wr_spi_msb(0);            // Argument = 0
    wr_spi_msb(0);            // Argument = 0
    wr_spi_msb(0x95);            // Send CRC

       for (i=0; i<8; ++i)           // read card response R1
        {
         card_status = rd_spi_READY_msb();        // прочесть байт из SD карты на ножке READY MSB first
         if (card_status != 0xFF) break;
         put_ch('.');
         }
    } while (card_status != 0x01);     


    deselect();                        // Снять CS --> 1
    put_ch('x');

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


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

Пытаюсь прочесть хоть что-то с SD карты, чтобы понять, что все как-то работает и можно идти дальше, но карта отвечает только 0xFF (т.е. ничего), а программа ниже печатает только точки... В чем может быть дело, нет мыслей? Работаю с 8051 архитектурой и пока с программным SPI, фрагмент кода привожу ниже... Может, что-то не так с начальными установками уровней? :unsure:

 

А spi правильно настроен? полярность, фазировка клока sck? В начале перед отправкой cmd0 попробуйте пустой байт (0xff) отправить.

Еще уберите put_ch('.') из внутреннего цикла (а лучше совсем).

Опять же функции работы с spi неизвестно какие.

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

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


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

Спасибо, все заработало - проблема банальна, неконтакт в разъеме (не родном) для SD )))

Еще понизил скорость SPI, а то резистивный делитель 5В-->3.3V даже с коротким кабелем ужасно валит фронты, а микросхемы преобразователя уровней пока не нашел подходящего и доступного (

 

Вопрос пока чисто теоретический на будущее (не нашел ответ в доках), если кто пробовал - а можно ли объединить SD pins IN и OUT проводным ИЛИ, чтобы работать с карточкой по одной двунаправленной шине данных при программном SPI ?

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


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

Посмотрите в сторону контроллера LPC2378.

 

У него есть аппаратный порт для подключения MMC/SD карт, причем, как я понял, SD - с 4 линиями данных:

 

"SD/MMC card interface pin description

Pin Name Type Description

MCICLK Output Clock output

MCICMD Input Command input/output.

MCIDAT[3:0] Output Data lines. Only MCIDAT[0] is used for Multimedia cards.

MCIPWR Output Power Supply Enable for external SD/MMC power supply.

 

...

 

CLK: One bit is transferred on both command and data lines with each clock cycle.

The clock frequency varies between 0 MHz and 20 MHz (for a multimedia card) or

0 MHz and 25 MHz (for a secure digital memory card)."

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


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

Посмотрите в сторону контроллера LPC2378.

Спасибо! У меня задача обновить старую 5V разработку, где в кач-ве внешней памяти были PCMCIA-карты, а прикручиваю SD. Все пока работает в прототипе на hrdw уровне, проблема только найти (розница для прототипа) преобразователи уровней. Пока поставил для 5В->3В NC7SZ125 (запитка от 3.3В), а данные 3В от SD подаю в 5В контроллер напрямую (

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


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

Спасибо! У меня задача обновить старую 5V разработку, где в кач-ве внешней памяти были PCMCIA-карты, а прикручиваю SD. Все пока работает в прототипе на hrdw уровне, проблема только найти (розница для прототипа) преобразователи уровней. Пока поставил для 5В->3В NC7SZ125 (запитка от 3.3В), а данные 3В от SD подаю в 5В контроллер напрямую (

 

Из 3 в 5 можно 74act/ahct(hct) серию попробовать, из 5 в 3 - 74lcx наример.

 

А не проще CF в режиме PCMCIA попробовать было (вроде должно поддерживать) ?

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

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


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

чтобы не создавать новой темки, спрошу тут - железки работают, взял Chan's FATFS lib, после шаманства с некоторыми переменными и текстом скомпилился без ошибок в Keil, но :

у меня Р89V51RD2 и всего 1КВ RAM, а скомпиленная по умолчанию библиотека занимает более 1К. В основном за счет того, что буфер 512КВ объявлен 2 раза - мною в main и внутри одной из процедур библиотеки как рабочий... Хватит ли в логике работы с FAT всего одного буфера при работе с одним драйвом и не объявить ли его Global, например, и убрать из нутра функции? А то оверлаппинг не помогает. :crying:

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


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

оверлаппинг не помогает. :crying:

Sorry, похоже сам виноват, буфер всего один ( Только все равно в 1КВ уложить не могу пока с ф-циями записи (((((

Кроме как чистить ненужные функции (типа перименования файлов и еще кое что...) мыслей нет

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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