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

 
 
> Как увеличить скорость на HID AT89C5131, Как увеличить скорость на HID AT89C5131
StasK
сообщение Mar 31 2008, 04:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 31-03-08
Пользователь №: 36 348



Как увеличить скорость на HID, а то у меня 800 байт/сек как на низкоскоростном. D+ вроде присоединен к VRef через 1.5 кОм, что должно дать полноскоростное устройство (как у Агурова). Может дело в дескрипторе?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
toweroff
сообщение Jun 9 2008, 17:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Как я уже упоминал, с HID я не работал... Во-первых, у меня ping-pong, во-вторых - bulk. Конечных точек, соответственно, 3 - системная (0, 32 байта), ИН и ОУТ (4,5), их размеры по 64 байта

обработка 0-й точки в прерывании, рабочих точек - в основной задаче в цикле

контрольные точки задавались в подключенной библиотеке libusb, там же указывались параметры точек. Соответственно, когда менял номера, все тоже рушилось, и нихрена не работало smile.gif

возможно, HID имеет 0-ю точку как универсальную, и еще одну как дополнительную. Нужно смотреть, как настроен драйвер и управляющий софт сверху

Кстати, а для чего используется именно класс HID? Лень было искать драйвер, или специфика девайса такова?
Go to the top of the page
 
+Quote Post
StasK
сообщение Jun 9 2008, 18:25
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 31-03-08
Пользователь №: 36 348



Цитата(toweroff @ Jun 9 2008, 20:00) *
Как я уже упоминал, с HID я не работал... Во-первых, у меня ping-pong, во-вторых - bulk. Конечных точек, соответственно, 3 - системная (0, 32 байта), ИН и ОУТ (4,5), их размеры по 64 байта

обработка 0-й точки в прерывании, рабочих точек - в основной задаче в цикле

контрольные точки задавались в подключенной библиотеке libusb, там же указывались параметры точек. Соответственно, когда менял номера, все тоже рушилось, и нихрена не работало smile.gif

возможно, HID имеет 0-ю точку как универсальную, и еще одну как дополнительную. Нужно смотреть, как настроен драйвер и управляющий софт сверху

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



Надо посмотреть инфу о HID драйвере и как он выбирает конечные точки устройства, кроме Control.
Мне надо гнать 3700 двухбайтных точек с CCD в комп. На 64 кбайтах получается 8 посылок/сек, что вполне подходит. Поэтому решили использовать HID, чтобы пользователю было удобно, да и нам не надо думать о работоспособности под разными операционками.

Согласно этой статье на http://www.microsoft.com/whdc/archive/hid4.mspx
HID общается с Interface а не с Endpoint. Поэтому я не понимаю, почему при изменении номера endpoint на 4 или 5 ничего не работает.

There has been some confusion among Human Interface Device (HID) device implementers in determining whether their HID devices are draft #4 compliant. This confusion stems from a decision by the USB Implementers' Forum to associate the HID descriptor with the Interface, rather than with the Endpoint. The HID descriptor has been repositioned within the Configuration descriptor; the correct order is now Configuration/Interface/HID/Endpoint.

The HID USB driver supplied with Microsoft Windows operating systems looks at the order of the descriptors within the Configuration descriptor to determine whether a device is draft #4 compliant. If the driver sees a descriptor order of Interface/Endpoint/HID, it assumes this is an older device and sends all requests to the Endpoint. If it sees a descriptor order of Interface/HID/Endpoint, it assumes this is a draft #4 compliant device and sends all requests to the Interface.

Moving the HID descriptor has had two troublesome results:


Developers have been confused to see bmRequestType with a value of 82h in their bus trace when they were expecting to see 81h.


The Configuration descriptor is not parsed correctly under Windows 95 OSR 2.1. Notice that this is only an issue if you are writing or updating HID drivers for OSR 2.1. This is not a problem if you are using HID drivers supplied with Windows 98.

What are the cures?

If bmRequestType is 82h, your HID descriptor is associated with the Endpoint descriptor, rather than with the Interface descriptor. To fix this, relocate the HID descriptor so that it sits after the Interface descriptor and before the Endpoint descriptor. The device firmware that handles the setup packet needs to look for a request type of 81h, rather than 82h. Finally, for devices with multiple interfaces, such as a keyboard with built-in mouse, the wIndex field must reflect the interface for which a Report descriptor is being requested.

The Windows 95 OSR 2.1 USB class driver incorrectly assumes that the Endpoint descriptor immediately follows the Interface descriptor. A solution that works equally well on both Windows 95 and Windows 98 is to clear everything out of the Configuration descriptor returned from the device except Configuration, Interface, and Endpoint descriptors before being passed to USB functions. A sample function that performs this task is available for downloading.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- StasK   Как увеличить скорость на HID AT89C5131   Mar 31 2008, 04:44
- - Kolia   Для USB 2.0 в дескрипторе устройства надо задать н...   Apr 4 2008, 10:46
|- - StasK   Цитата(Kolia @ Apr 4 2008, 13:46) Для USB...   Apr 6 2008, 19:38
|- - StasK   А пример дескриптора к полноскоростному HIDу кто-н...   Apr 15 2008, 04:14
|- - Kolia   Цитата(StasK @ Apr 15 2008, 08:14) А прим...   Apr 15 2008, 06:57
|- - StasK   Я понял в чем было дело!!! config.h #...   May 20 2008, 00:43
|- - Goblin_Nick   И, вообще, надо переходить с этого дорогущего AT89...   May 21 2008, 09:27
|- - StasK   Цитата(Goblin_Nick @ May 21 2008, 12:27) ...   May 22 2008, 20:30
- - toweroff   StasK, и какая скорость достигнута?   May 27 2008, 18:53
|- - StasK   Цитата(toweroff @ May 27 2008, 21:53) Sta...   Jun 1 2008, 22:13
|- - toweroff   Цитата(StasK @ Jun 2 2008, 02:13) точно б...   Jun 2 2008, 13:28
||- - Golikov A.   Цитата(toweroff @ Jun 2 2008, 17:28) чот ...   Jun 7 2008, 21:05
||- - StasK   Цитата(toweroff @ Jun 2 2008, 16:28) чот ...   Jun 8 2008, 02:24
||- - Golikov A.   Цитата(StasK @ Jun 8 2008, 06:24) это, вр...   Jun 8 2008, 12:20
|||- - StasK   Цитата(Golikov A. @ Jun 8 2008, 15:20) а ...   Jun 8 2008, 18:25
||- - toweroff   Цитата(StasK @ Jun 8 2008, 06:24) это, вр...   Jun 8 2008, 13:42
|- - StasK   Цитата(StasK @ Jun 2 2008, 01:13) точно б...   Jun 9 2008, 16:39
||- - Golikov A.   Цитата(StasK @ Jun 9 2008, 21:40) Надо по...   Jun 9 2008, 18:37
|- - StasK   Так мне и нужно от прибора в компутор. А по поводу...   Jun 9 2008, 18:58
|- - Golikov A.   Цитата(StasK @ Jun 9 2008, 22:58) Так мне...   Jun 9 2008, 19:18
- - toweroff   а какой геморрой с дровами?? Я ж говорю - libusb, ...   Jun 10 2008, 07:25


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

 


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


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