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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Помогите подобрать файловую систему для microsd
Dog Pawlowa
сообщение Nov 25 2008, 07:49
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Paulina @ Nov 24 2008, 21:21) *
Это так, но если данные идут непрерывно, без дефрагментации то можно просто установить размер блока данных, скажем 64 кБ и принимать их непрерывно

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


Цитата(sergeeff @ Nov 24 2008, 23:55) *
Ну посмотрите хоть, перед тем как свой огород городить.

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


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Paulina
сообщение Nov 25 2008, 13:55
Сообщение #32


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 18-05-08
Пользователь №: 37 607



Цитата(Dog Pawlowa @ Nov 25 2008, 10:49) *
Конечно, Paulina, только можно ли это назвать полноценной файловой системой? smile.gif


разумеется, нет, но в первом сообщении указывалось, что:
Цитата
Задачи самые скромные - только читать какой-нибудь файл. Не будет никаких каталогов - просто в корневом будет около 100 файлов
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Nov 25 2008, 15:18
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(Dog Pawlowa @ Nov 25 2008, 11:49) *
Конечно, Paulina, только можно ли это назвать полноценной файловой системой? smile.gif
Коллега,
на AVR скорость fatfs около 300 кб/c, поэтому вопрос быстрее она efsl или нет, второстепенный, поскольку автору нужно больше, насколько я помню начало топика.


Так надо сначала написать процедуру чтения сектора и замерить скорость чтения/записи n-секторов подряд и в произвольном порядке. После этого будет понятно, что является узким местом, вся организация доступа через FAT или чтение сектора. Я подобное проделывал с efsl, там накладные расходы от fat не превышали 10%.
Go to the top of the page
 
+Quote Post
Paulina
сообщение Nov 25 2008, 16:19
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 18-05-08
Пользователь №: 37 607



Цитата(sergeeff @ Nov 25 2008, 18:18) *
Так надо сначала написать процедуру чтения сектора и замерить скорость чтения/записи n-секторов подряд и в произвольном порядке. После этого будет понятно, что является узким местом, вся организация доступа через FAT или чтение сектора. Я подобное проделывал с efsl, там накладные расходы от fat не превышали 10%.


эффективность тем больше чем больше блок данных. если данные будут только транслироваться, то зачем ограничивать блок размером сектора, который всего 512 байт?
Go to the top of the page
 
+Quote Post
inlog
сообщение Nov 8 2009, 17:22
Сообщение #35





Группа: Участник
Сообщений: 5
Регистрация: 23-10-09
Пользователь №: 53 173



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

Код
    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');
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post
Paulina
сообщение Nov 9 2009, 17:17
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 18-05-08
Пользователь №: 37 607



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


А spi правильно настроен? полярность, фазировка клока sck? В начале перед отправкой cmd0 попробуйте пустой байт (0xff) отправить.
Еще уберите put_ch('.') из внутреннего цикла (а лучше совсем).
Опять же функции работы с spi неизвестно какие.

Сообщение отредактировал Paulina - Nov 9 2009, 17:19
Go to the top of the page
 
+Quote Post
inlog
сообщение Nov 11 2009, 18:39
Сообщение #37





Группа: Участник
Сообщений: 5
Регистрация: 23-10-09
Пользователь №: 53 173



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

Вопрос пока чисто теоретический на будущее (не нашел ответ в доках), если кто пробовал - а можно ли объединить SD pins IN и OUT проводным ИЛИ, чтобы работать с карточкой по одной двунаправленной шине данных при программном SPI ?
Go to the top of the page
 
+Quote Post
Mik174
сообщение Nov 11 2009, 22:38
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 357
Регистрация: 6-01-07
Пользователь №: 24 139



Посмотрите в сторону контроллера 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)."
Go to the top of the page
 
+Quote Post
inlog
сообщение Nov 15 2009, 20:28
Сообщение #39





Группа: Участник
Сообщений: 5
Регистрация: 23-10-09
Пользователь №: 53 173



Цитата(Mik174 @ Nov 12 2009, 02:38) *
Посмотрите в сторону контроллера LPC2378.

Спасибо! У меня задача обновить старую 5V разработку, где в кач-ве внешней памяти были PCMCIA-карты, а прикручиваю SD. Все пока работает в прототипе на hrdw уровне, проблема только найти (розница для прототипа) преобразователи уровней. Пока поставил для 5В->3В NC7SZ125 (запитка от 3.3В), а данные 3В от SD подаю в 5В контроллер напрямую (
Go to the top of the page
 
+Quote Post
Ronin
сообщение Nov 17 2009, 10:21
Сообщение #40


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 10-02-05
Из: Краснодар
Пользователь №: 2 558



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


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

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

Сообщение отредактировал Ronin - Nov 17 2009, 10:31
Go to the top of the page
 
+Quote Post
inlog
сообщение Nov 24 2009, 17:54
Сообщение #41





Группа: Участник
Сообщений: 5
Регистрация: 23-10-09
Пользователь №: 53 173



чтобы не создавать новой темки, спрошу тут - железки работают, взял Chan's FATFS lib, после шаманства с некоторыми переменными и текстом скомпилился без ошибок в Keil, но :
у меня Р89V51RD2 и всего 1КВ RAM, а скомпиленная по умолчанию библиотека занимает более 1К. В основном за счет того, что буфер 512КВ объявлен 2 раза - мною в main и внутри одной из процедур библиотеки как рабочий... Хватит ли в логике работы с FAT всего одного буфера при работе с одним драйвом и не объявить ли его Global, например, и убрать из нутра функции? А то оверлаппинг не помогает. crying.gif
Go to the top of the page
 
+Quote Post
inlog
сообщение Nov 24 2009, 19:11
Сообщение #42





Группа: Участник
Сообщений: 5
Регистрация: 23-10-09
Пользователь №: 53 173



Цитата(inlog @ Nov 24 2009, 20:54) *
оверлаппинг не помогает. crying.gif

Sorry, похоже сам виноват, буфер всего один ( Только все равно в 1КВ уложить не могу пока с ф-циями записи (((((
Кроме как чистить ненужные функции (типа перименования файлов и еще кое что...) мыслей нет
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 16:07
Рейтинг@Mail.ru


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