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

 
 
 
Reply to this topicStart new topic
> Mass storage на LPC214x, работа с несколькими EP
Nixon
сообщение Feb 9 2008, 12:00
Сообщение #1


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



Привязал пример mass storage от кейла к SD-карте. Работает, но поскольку для обмена данными используется только один endpoint, то скорость чтения/записи очень низка.

Может кто-то уже сталкивался с проблемой ускорения? Разбираться, как все ускорить самому нет времени.


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 9 2008, 15:49
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Nixon @ Feb 9 2008, 15:00) *
Привязал пример mass storage от кейла к SD-карте. Работает, но поскольку для обмена данными используется только один endpoint, то скорость чтения/записи очень низка.

Может кто-то уже сталкивался с проблемой ускорения? Разбираться, как все ускорить самому нет времени.

1. У Mass Storage минимум 2 EP д.б. (не считая 0-й). Одна Bulk In другая Bulk Out.
2. От кол-ва EP скорость обмена не зависит. Если успевать данные в Bulk In писать (или из Bulk Out читать), так чтобы NAK-ов не было - full speed Mass Storage мегабайт в секунду качает. Для full speed это максимум - 16 пакетов по 64 байта в каждом кадре=1 мСек.

Я реально такой скорости добился. Правда не для ARM. Но для ARM даже проще. Т.к. у него есть EP с двумя буферами. Один буфер по USB передаётся(принимается), а другой в это время заполняется(читается). Для Mass Storage такая задача легко решается. Т.к. данных размером меньше кластера (мин 512 байт) вообще не бывает. А обычно по 64 кБайта и больше шлётся.
Go to the top of the page
 
+Quote Post
demiurge
сообщение Feb 26 2008, 20:47
Сообщение #3





Группа: Новичок
Сообщений: 2
Регистрация: 26-02-08
Пользователь №: 35 412



Друзья! Обращаюсь с помощью ко всем, кто на "ты" с LPC2148. Объясняю ситуацию. Нужно создать USB усторойство, которое бы в режиме Bulk в самом простом варианте (хотя бы через прерывания) позволяло бы передавать данные в обоих направлениях (In/Out). Проанализировал заготовки от Keil (HID, MassStorage,…). Но эти классы, на мой диллетанский взгляд, не подходят. Я подправил программу для MassStorage:1) выбросил всё, что касалось прежнего класса и SCASI интерфейса;2) в дескрипторах всё указал для абстрактного класса (0xFF);3) подправил функцию ввода/вывода через вторую логическую точку (Bulk).
После этого с помощью WinDriver создал драйвер и добился передачи (OUT) – в память LPC2148 все пишется корректно. Но IN трансфер не работает. Выяснил, что на IN прерывания нет (функция конечной точки IN не вызывается). Из описания на чип вычитал, что можно включить прерывание на NAK для IN точки с помощью команды Set Mode (0xF3). Но где её прописать и как проконтролировать Set Mode Register не знаю.
Буду рад любой подсказке.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:54
Рейтинг@Mail.ru


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