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

Почему медленно работает MSD?

Собственно вопрос в теме.

Карта - uSD по подключена по 4 битной шине, читается и пишется по DMA, скорость шины - 24МГц.

При этом на чтение по USB получаю около 450Кб/с, на запись и подавно 150Кб/с. Если карту читать впустую (без USB), скорость дает до ~1Мб/с.

Карта: 4- класс -в ноуте читается ок. 25Мб/с, записывается - 3.5Мб/с

Карта читается и пишется только блочно, это конечно медленнее чем stream, но неужели настолько? или может быть карта в примере как-то специально инициализируется на такую медленную работу?

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


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

Собственно вопрос в теме.

 

Запускал проект из предоставляемой ST библиотеки, правда, в Кейле. Для STM32F207 для тех же 24МГц получалось читать данные с карточки через USB со скоростью чуть больше пяти Мегабайт в секунду. Странно, почему у вас такая низкая скорость ...

 

STM32F105/7 and STM32F2xx USB on-the-go Host and device library (UM1021):

 

http://www.st.com/internet/mcu/product/245082.jsp

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


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

При этом на чтение по USB получаю около 450Кб/с

Для FS - это нормально.

 

USB со скоростью чуть больше пяти Мегабайт в секунду

А вот это только HS могло бы быть.

 

А вот в чистом виде 5мегабайт в секунду на частоте 25Мегагерц (без USB) - это вполне нормально и реально.

 

А вот как раз 1Мегабайт у ТС - маловато.

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

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


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

А вот это только HS могло бы быть.

 

А вот в чистом виде 5мегабайт в секунду на частоте 25Мегагерц (без USB) - это вполне нормально и реально.

 

А вот как раз 1Мегабайт у ТС - маловато.

 

Да, прошу прощения, это было на HS. Путем оптимизации проекта и задействования DMA удалось получить порядка восьми c небольшим мегабайт для чтения и семи с чем-то для записи. Но автор привел в конце результат, выразившийся в мегабайте в секунду. Это никуда не годится. Чистая правда. На FS я сам получал для такой же задачи 600 КБайт для чтения и для записи, но это был другой МК ...

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


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

На FS я сам получал для такой же задачи 600 КБайт для чтения и для записи, но это был другой МК ...

На STM32F103 я получаю через USB MSD около 1 мегабайта на чтение и ~950 килобайт в секунду на запись на карту памяти по SPI.

Частота SPI, если не изменяет память, 18 мегабит.

 

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

Но эти результаты были на SAM3U, но STM32 не должен быть хуже.

 

Автору топика есть к чему стремиться :laughing:

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


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

Карта читается и пишется только блочно, это конечно медленнее чем stream, но неужели настолько?

В разы.

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


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

Плюс чем больше блоков обрабатывается за раз при мультиблочном чтении\записи, тем быстрее - меньше "лишней" (команда-ответ) информации гоняется по интерфейсу.

К примеру, 16 блоков за раз (8 килобайтовый буфер) - самое то при отсутствии кучи внешней памяти.

 

или может быть карта в примере как-то специально инициализируется на такую медленную работу?

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

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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