|
Как увеличить скорость на HID AT89C5131, Как увеличить скорость на HID AT89C5131 |
|
|
|
Mar 31 2008, 04:44
|
Участник

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

|
Как увеличить скорость на HID, а то у меня 800 байт/сек как на низкоскоростном. D+ вроде присоединен к VRef через 1.5 кОм, что должно дать полноскоростное устройство (как у Агурова). Может дело в дескрипторе?
|
|
|
|
|
Apr 6 2008, 19:38
|
Участник

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

|
Цитата(Kolia @ Apr 4 2008, 13:46)  Для USB 2.0 в дескрипторе устройства надо задать номер версии спецификации USB в формате BCD: 0x00, 0x02, // bcdUSB (lsb first) третий и четвертый байты дескриптора Так так и записано: {9,0x21,0x0002,0,1,0x22,0x2100} а все равно 800/сек.
|
|
|
|
|
Apr 15 2008, 04:14
|
Участник

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

|
А пример дескриптора к полноскоростному HIDу кто-нть может показать? Плиз!!!!
|
|
|
|
|
Apr 15 2008, 06:57
|
Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762

|
Цитата(StasK @ Apr 15 2008, 08:14)  А пример дескриптора к полноскоростному HIDу кто-нть может показать? Плиз!!!! Вот на мышку (USB 2.0). В даташите на микруху написано, что она поддерживает Full-Speed, это соответствует спецификации USB1.1 У меня есть диск с примерами к книге Агурова могу выложить если надо.
Прикрепленные файлы
Mouse.txt ( 1.12 килобайт )
Кол-во скачиваний: 111
|
|
|
|
|
May 20 2008, 00:43
|
Участник

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

|
Я понял в чем было дело!!!
config.h #define EP_INTERVAL_1 0x20
usb_kbd_enum.c code struct { struct usb_st_configuration_descriptor cfg; struct usb_st_interface_descriptor ifc; struct usb_st_hid_descriptor hid ; struct usb_st_endpoint_descriptor ep1 ; Uchar rep[SIZE_OF_REPORT] ; } usb_configuration = { { 9, CONFIGURATION, CONF_LENGTH, NB_INTERFACE, CONF_NB, CONF_INDEX, CONF_ATTRIBUTES, MAX_POWER}, { 9, INTERFACE, INTERFACE_NB, ALTERNATE, NB_ENDPOINT, INTERFACE_CLASS, INTERFACE_SUB_CLASS, INTERFACE_PROTOCOL, INTERFACE_INDEX }, { 9, HID, 0x1101, 8, 1, REPORT, 0x3B00 }, { 7, ENDPOINT, ENDPOINT_NB_1, EP_ATTRIBUTES_1, EP_SIZE_1, EP_INTERVAL_1 },
The example sets it to 32 ms. When the device is configured to full-speed (attach pull-up to D+), you can reduce EP_INTERVAL_1 to 1 (ms). When configured to a low-speed (D- pull-up), the minimum is 10 ms.
А у меня этот EP_INTERVAL_1 был в нуле и, наверное, по умалчанию определяется как low-speed с 10 ms. А надо поставить #define EP_INTERVAL_1 0x01 для full-speed
И, вообще, надо переходить с этого дорогущего AT89C5131 на что-то более рациональное.
Сообщение отредактировал StasK - May 20 2008, 00:47
|
|
|
|
|
May 22 2008, 20:30
|
Участник

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

|
Цитата(Goblin_Nick @ May 21 2008, 12:27)  И, вообще, надо переходить с этого дорогущего AT89C5131 на что-то более рациональное. 150р - это дорого для USB2.0 ??? 150 - дорого для С51, я думаю перейти на ARM Cortex-M3.
|
|
|
|
|
Jun 1 2008, 22:13
|
Участник

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

|
Цитата(toweroff @ May 27 2008, 21:53)  StasK, и какая скорость достигнута? точно больше 40k/sec
|
|
|
|
|
Jun 7 2008, 21:05
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата(toweroff @ Jun 2 2008, 17:28)  чот маловато.... я имею 3 Мбит/с, и то тормозится из-за обилия обращения во внешнюю память в больших циклах Здравствуйте народ! Немного не в тему, но всеж про эту микруху и про хид. А у Вас для ХИД устройства есть функции обработки СЕТ_РЕПОРТ? У меня проблема при передачи репорта с компутера, на последнем происходит ошибка с таймоутом, хотя данные до устройства доходят.... Не подскажите что АТ89С513ХХХ должна отвечать на СЕТ_РЕПОРТ, чтобы компутер отработал выдачу отчета? Я думал посылка данных нулевой длинны и есть Акноледж в фазе стутса, может я не прав? Все остальные фунекции работают, и с приемом репортов, и описаний, и устрйотво в системе регистрируется как хид, а этот сет_репорт из библиотеки хид.длл неработает... Прослушка УСБТрайсом, рождает больше вопросов, чем ответов, какие-то лишние посылки, и запросы с ожиданием ответа... Посылка данных нулевой длинны принимается как передача от устройства, а не как акноледж... Подскажите плз кто разбирался...
|
|
|
|
|
Jun 8 2008, 02:24
|
Участник

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

|
Цитата(toweroff @ Jun 2 2008, 16:28)  чот маловато.... я имею 3 Мбит/с, и то тормозится из-за обилия обращения во внешнюю память в больших циклах это, вроде, может происходить с некоторыми материнками. 64 кбайт гарантированно должно быть везде. Цитата(Golikov A. @ Jun 8 2008, 00:05)  Здравствуйте народ!
Немного не в тему, но всеж про эту микруху и про хид. А у Вас для ХИД устройства есть функции обработки СЕТ_РЕПОРТ? У меня проблема при передачи репорта с компутера, на последнем происходит ошибка с таймоутом, хотя данные до устройства доходят.... Не подскажите что АТ89С513ХХХ должна отвечать на СЕТ_РЕПОРТ, чтобы компутер отработал выдачу отчета?
Я думал посылка данных нулевой длинны и есть Акноледж в фазе стутса, может я не прав? Все остальные фунекции работают, и с приемом репортов, и описаний, и устрйотво в системе регистрируется как хид, а этот сет_репорт из библиотеки хид.длл неработает...
Прослушка УСБТрайсом, рождает больше вопросов, чем ответов, какие-то лишние посылки, и запросы с ожиданием ответа... Посылка данных нулевой длинны принимается как передача от устройства, а не как акноледж... Подскажите плз кто разбирался... Я прикрепил листинги для контроллера и для компа.
host1.zip ( 83.4 килобайт )
Кол-во скачиваний: 167
seq_scans.zip ( 122.18 килобайт )
Кол-во скачиваний: 308
Сообщение отредактировал StasK - Jun 8 2008, 02:21
|
|
|
|
|
Jun 8 2008, 12:20
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата(StasK @ Jun 8 2008, 06:24)  это, вроде, может происходить с некоторыми материнками. 64 кбайт гарантированно должно быть везде. Я прикрепил листинги для контроллера и для компа.
host1.zip ( 83.4 килобайт )
Кол-во скачиваний: 167
seq_scans.zip ( 122.18 килобайт )
Кол-во скачиваний: 308а вот у вас в функции ФаелВрайт, есть магическая стрчока в 9 байт отчета вписать 15, почему? обработки репортов через контрольную точку я так понял вы не делали... и функции сетфича и сетрепорт не использовали, только фаелврайт. Вот по поводу этой функции у меня и вопросы... есть какие-то особенности при заполнении буфера репорта или нет? к чему там это число 15?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|