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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как увеличить скорость на 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
Kolia
сообщение Apr 4 2008, 10:46
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Для USB 2.0 в дескрипторе устройства надо задать номер версии спецификации USB в формате BCD:
0x00, 0x02, // bcdUSB (lsb first)
третий и четвертый байты дескриптора
Go to the top of the page
 
+Quote Post
StasK
сообщение Apr 6 2008, 19:38
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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/сек. help.gif
Go to the top of the page
 
+Quote Post
StasK
сообщение Apr 15 2008, 04:14
Сообщение #4


Участник
*

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



А пример дескриптора к полноскоростному HIDу кто-нть может показать? Плиз!!!!
Go to the top of the page
 
+Quote Post
Kolia
сообщение Apr 15 2008, 06:57
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 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
 
Go to the top of the page
 
+Quote Post
StasK
сообщение May 20 2008, 00:43
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Goblin_Nick
сообщение May 21 2008, 09:27
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 23-10-06
Из: Тула
Пользователь №: 21 599



И, вообще, надо переходить с этого дорогущего AT89C5131 на что-то более рациональное.
[/quote]

150р - это дорого для USB2.0 ???
Go to the top of the page
 
+Quote Post
StasK
сообщение May 22 2008, 20:30
Сообщение #8


Участник
*

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



Цитата(Goblin_Nick @ May 21 2008, 12:27) *
И, вообще, надо переходить с этого дорогущего AT89C5131 на что-то более рациональное.
150р - это дорого для USB2.0 ???


150 - дорого для С51, я думаю перейти на ARM Cortex-M3.
Go to the top of the page
 
+Quote Post
toweroff
сообщение May 27 2008, 18:53
Сообщение #9


Гуру
******

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



StasK, и какая скорость достигнута?
Go to the top of the page
 
+Quote Post
StasK
сообщение Jun 1 2008, 22:13
Сообщение #10


Участник
*

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



Цитата(toweroff @ May 27 2008, 21:53) *
StasK, и какая скорость достигнута?

точно больше 40k/sec
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 2 2008, 13:28
Сообщение #11


Гуру
******

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



Цитата(StasK @ Jun 2 2008, 02:13) *
точно больше 40k/sec


чот маловато.... я имею 3 Мбит/с, и то тормозится из-за обилия обращения во внешнюю память в больших циклах
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 7 2008, 21:05
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(toweroff @ Jun 2 2008, 17:28) *
чот маловато.... я имею 3 Мбит/с, и то тормозится из-за обилия обращения во внешнюю память в больших циклах



Здравствуйте народ!

Немного не в тему, но всеж про эту микруху и про хид. А у Вас для ХИД устройства есть функции обработки СЕТ_РЕПОРТ? У меня проблема при передачи репорта с компутера, на последнем происходит ошибка с таймоутом, хотя данные до устройства доходят.... Не подскажите что АТ89С513ХХХ должна отвечать на СЕТ_РЕПОРТ, чтобы компутер отработал выдачу отчета?

Я думал посылка данных нулевой длинны и есть Акноледж в фазе стутса, может я не прав? Все остальные фунекции работают, и с приемом репортов, и описаний, и устрйотво в системе регистрируется как хид, а этот сет_репорт из библиотеки хид.длл неработает...

Прослушка УСБТрайсом, рождает больше вопросов, чем ответов, какие-то лишние посылки, и запросы с ожиданием ответа... Посылка данных нулевой длинны принимается как передача от устройства, а не как акноледж... Подскажите плз кто разбирался...
Go to the top of the page
 
+Quote Post
StasK
сообщение Jun 8 2008, 02:24
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jun 8 2008, 12:20
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 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?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 8 2008, 13:42
Сообщение #15


Гуру
******

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



Цитата(StasK @ Jun 8 2008, 06:24) *
это, вроде, может происходить с некоторыми материнками. 64 кбайт гарантированно должно быть везде.


У меня единственное - не как HID сделано, а как bulk. Драйвера юзал libusb, портированные с linux
От компа к компу скорость не меняется и остается на уровне 3Мбит. При этом в конфигурации USB указывается 1.1, а не 2.0

Сообщение отредактировал toweroff - Jun 8 2008, 13:44
Go to the top of the page
 
+Quote Post

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

 


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


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