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

Работаю с AT91SAM7. Перекачивается поток информации с железки в комп.

Прикинулся FTDI-девайсом. Дрова встали, все работает.

Только скорость больше 400Kb/c получить не удается.

Есть подозрение, что ограничение по скорости дают дрова от ftdi (2.00.00 May 18, 2006).

Кто нибудь получал нормальную скорость для USB 2

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


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

Есть подозрение, что ограничение по скорости дают дрова от ftdi (2.00.00 May 18, 2006).

Кто нибудь получал нормальную скорость для USB 2

 

Тестом скорости не занимался, но обратите внимание драйвер со стороны ПК. Попробуйте написать свой.

И какие ендпоинты Вы используете для передачи и приема?

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


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

USB Device Viewer:

Endpoint Descriptor:

bEndpointAddress: 0x81

Transfer Type: Bulk

wMaxPacketSize: 0x0040 (64)

bInterval: 0x00

Endpoint Descriptor:

bEndpointAddress: 0x02

Transfer Type: Bulk

wMaxPacketSize: 0x0040 (64)

bInterval: 0x00

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


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

Работаю с AT91SAM7. Перекачивается поток информации с железки в комп.

Прикинулся FTDI-девайсом. Дрова встали, все работает.

Только скорость больше 400Kb/c получить не удается.

Есть подозрение, что ограничение по скорости дают дрова от ftdi (2.00.00 May 18, 2006).

Кто нибудь получал нормальную скорость для USB 2

 

Я читал что это проблема драйверов VCP (виртуального ком-порта). Если поставить другие дрова, которые через ДЛЛ работают, с того же сайта фтди, то скорость возрастет.

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


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

Работаю через DLL. Для VCP не знаю дескриптора и прочих нужностей.

простите , может немного не в тему , но зачем Вам , если вы работаете не как виртуал ком порт , вообще использование драйверов FTDI ?

у чипов FTDI работа через ДЛЛ имеется и она аналогична работе со стандартными CDC USB устройствами , но Вы же не юзаете ни их чип ни их возможности виртуального ком порта, так почему все таки их дрова ?

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


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

Так исторически сложилось. Сначала был девайс на Меге+Фтди. Соответственно был заточен компьютерный софт. Теперь Мегу заменили на АРМ, надобность в Фтди отпала, софт остался.

Если вы знаете хорошие дрова, примерно с теми же возможностями что и Фтди, только быстрее - скажите мне.

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


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

с d2xx драйверами получались стабильные 1 мегабайт/секунда.

от версии дров ничего не менялось особенно.

 

какие вы используете буфера/тайм ауты и т.д.?

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


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

/* Endpoint 2 descriptor */

0x07, // bLength

0x05, // bDescriptorType

0x02, // bEndpointAddress, Endpoint 02 - OUT

0x02, // bmAttributes BULK

0x40, // wMaxPacketSize: 64 bytes (button, x, y)

0x00,

0x00, // bInterval

Таймаутов как таковых нет. С d2xx по скорости было тоже самое, но с ними невозможно отлаживать

программу, любой останов на брейкпоинте вешает комп - синий экран.

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


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

/* Endpoint 2 descriptor */

0x07, // bLength

0x05, // bDescriptorType

0x02, // bEndpointAddress, Endpoint 02 - OUT

0x02, // bmAttributes BULK

0x40, // wMaxPacketSize: 64 bytes (button, x, y)

0x00,

0x00, // bInterval

Таймаутов как таковых нет. С d2xx по скорости было тоже самое, но с ними невозможно отлаживать

программу, любой останов на брейкпоинте вешает комп - синий экран.

а что это за коментарий такой про кнорку и x y ? у вас устройство часом не как HID объявлено ?

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


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

/* Endpoint 2 descriptor */

0x07, // bLength

0x05, // bDescriptorType

0x02, // bEndpointAddress, Endpoint 02 - OUT

0x02, // bmAttributes BULK

0x40, // wMaxPacketSize: 64 bytes (button, x, y)

0x00,

0x00, // bInterval

Таймаутов как таковых нет. С d2xx по скорости было тоже самое, но с ними невозможно отлаживать

программу, любой останов на брейкпоинте вешает комп - синий экран.

 

Вы немного не поняли меня.

Какие параметры заданы в SetLatencyTimer, SetUSBParameters, Set_USB_Device_TimeOuts

 

Это в Вашем приложении, которое использует dll.

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


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

Ну это как всегда, что то готовое берется за пример, камментарии остаются.

Нет, не HID.

 

Set_USB_Device_TimeOuts(2000,2000);

Остальное по умолчанию.

 

 

Set_USB_Device_TimeOuts(2000;2000)

Остальное по умолчанию.

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


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

установите SetLatencyTimer 2-3.

по умолчанию там стоит 16. это много. это сразу даст прирост 20-40 %

возможно следует изменить размер приемного буфера.

 

какой характер передачи данных?

вы непрерывно передаете большой объем?

 

у меня была длительная передача данных 100-500 мбайт.

и скорость держалась постоянно на одном уровне.

разумеется в том же хабе больше ничего не было.

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


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

>>установите SetLatencyTimer 2-3.

>>по умолчанию там стоит 16. это много. это сразу даст прирост 20-40 %

>>возможно следует изменить размер приемного буфера.

Нет еффекта.

 

>>какой характер передачи данных?

>>вы непрерывно передаете большой объем?

Передаются блоки по 48К. В секунду успевает пройти 8-9 блоков.

К стати, как померить время передачи блока без учета времени на его подготовку?

IAR+JTAG.

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


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

Померил реальную скорость одного пакета (засек по таймеру). Получилось около 950К/с.

Так что ... :1111493779:

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


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

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

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

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

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

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

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

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

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

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