kan35 7 3 января, 2012 Опубликовано 3 января, 2012 · Жалоба Собственно вопрос в теме. Карта - uSD по подключена по 4 битной шине, читается и пишется по DMA, скорость шины - 24МГц. При этом на чтение по USB получаю около 450Кб/с, на запись и подавно 150Кб/с. Если карту читать впустую (без USB), скорость дает до ~1Мб/с. Карта: 4- класс -в ноуте читается ок. 25Мб/с, записывается - 3.5Мб/с Карта читается и пишется только блочно, это конечно медленнее чем stream, но неужели настолько? или может быть карта в примере как-то специально инициализируется на такую медленную работу? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 3 января, 2012 Опубликовано 3 января, 2012 · Жалоба Собственно вопрос в теме. Запускал проект из предоставляемой 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DpInRock 0 3 января, 2012 Опубликовано 3 января, 2012 (изменено) · Жалоба При этом на чтение по USB получаю около 450Кб/с Для FS - это нормально. USB со скоростью чуть больше пяти Мегабайт в секунду А вот это только HS могло бы быть. А вот в чистом виде 5мегабайт в секунду на частоте 25Мегагерц (без USB) - это вполне нормально и реально. А вот как раз 1Мегабайт у ТС - маловато. Изменено 3 января, 2012 пользователем DpInRock Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 3 января, 2012 Опубликовано 3 января, 2012 · Жалоба А вот это только HS могло бы быть. А вот в чистом виде 5мегабайт в секунду на частоте 25Мегагерц (без USB) - это вполне нормально и реально. А вот как раз 1Мегабайт у ТС - маловато. Да, прошу прощения, это было на HS. Путем оптимизации проекта и задействования DMA удалось получить порядка восьми c небольшим мегабайт для чтения и семи с чем-то для записи. Но автор привел в конце результат, выразившийся в мегабайте в секунду. Это никуда не годится. Чистая правда. На FS я сам получал для такой же задачи 600 КБайт для чтения и для записи, но это был другой МК ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 4 января, 2012 Опубликовано 4 января, 2012 · Жалоба На FS я сам получал для такой же задачи 600 КБайт для чтения и для записи, но это был другой МК ... На STM32F103 я получаю через USB MSD около 1 мегабайта на чтение и ~950 килобайт в секунду на запись на карту памяти по SPI. Частота SPI, если не изменяет память, 18 мегабит. По четырехпроводному интерфейсу прямой обмен с карточкой может идти на десятки мегабайт чтение и около десяти на запись, в зависимости от карточки и частоты интерфейса. Но эти результаты были на SAM3U, но STM32 не должен быть хуже. Автору топика есть к чему стремиться :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 4 января, 2012 Опубликовано 4 января, 2012 · Жалоба Карта читается и пишется только блочно, это конечно медленнее чем stream, но неужели настолько? В разы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 0 4 января, 2012 Опубликовано 4 января, 2012 · Жалоба Плюс чем больше блоков обрабатывается за раз при мультиблочном чтении\записи, тем быстрее - меньше "лишней" (команда-ответ) информации гоняется по интерфейсу. К примеру, 16 блоков за раз (8 килобайтовый буфер) - самое то при отсутствии кучи внешней памяти. или может быть карта в примере как-то специально инициализируется на такую медленную работу? Посмотрите, как в примере организована работа с USB, помнится, двойная буферизация там не используется, а она даёт чувствительный прирост скорости. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться