Jump to content

    

J_Aleks

Новичок
  • Content Count

    4
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. да, report можно пристрелить... и без него ловится интерфейс... вот usbview что кажет: TM32 Custom Human interface Manufacturer: STMicroelectronics Serial Number: 326239533535 Speed: 480Mb/s (high) Bus: 1 Address: 45 USB Version: 2.00 Device Class: 00(>ifc ) Device Subclass: 00 Device Protocol: 00 Maximum Default Endpoint Size: 64 Number of Configurations: 1 Vendor Id: 0483 Product Id: 5750 Revision Number: 2.00 Config Number: 1 Number of Interfaces: 1 Attributes: c0 MaxPower Needed: 100mA Interface Number: 0 Name: (none) Alternate Number: 0 Class: ff(vend.) Sub Class: ff Protocol: ff Number of Endpoints: 2 Endpoint Address: 81 Direction: in Attribute: 2 Type: Bulk Max Packet Size: 512 Interval: 0ms Endpoint Address: 01 Direction: out Attribute: 2 Type: Bulk Max Packet Size: 512 Interval: 0ms
  2. Ну в HS дескрипторе я сразу поменял: /* USB CUSTOM_HID device HS Configuration Descriptor */ __ALIGN_BEGIN static uint8_t USBD_CUSTOM_HID_CfgHSDesc[USB_CUSTOM_HID_CONFIG_DESC_SIZ] __ALIGN_END = { 0x09, /* bLength: Configuration Descriptor size */ USB_DESC_TYPE_CONFIGURATION, //0x02 /* bDescriptorType: Configuration */ USB_CUSTOM_HID_CONFIG_DESC_SIZ, //0x41 /* wTotalLength: Bytes returned */ 0x00, 0x01, /* bNumInterfaces: 1 interface */ 0x01, /* bConfigurationValue: Configuration value */ 0x00, /* iConfiguration: Index of string descriptor describing the configuration */ 0xC0, /* bmAttributes: bus powered */ 0x32, /* MaxPower 100 mA: this current is used for detecting Vbus */ /************** Descriptor of CUSTOM HID interface ****************/ /* 09 */ 0x09, /* bLength: Interface Descriptor size */ USB_DESC_TYPE_INTERFACE, //0x04 /* bDescriptorType: Interface descriptor type */ 0x00, /* bInterfaceNumber: Number of Interface */ 0x00, /* bAlternateSetting: Alternate setting */ 0x02, /* bNumEndpoints */ 0xFF, /* bInterfaceClass: CUSTOM_HID */ 0xFF, /* bInterfaceSubClass : 1=BOOT, 0=no boot */ 0xFF, /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */ 0, /* iInterface: Index of string descriptor */ /******************** Descriptor of CUSTOM_HID *************************/ /* 18 */ 0x09, /* bLength: CUSTOM_HID Descriptor size */ CUSTOM_HID_DESCRIPTOR_TYPE, //0x21 /* bDescriptorType: CUSTOM_HID */ 0x11, /* bCUSTOM_HIDUSTOM_HID: CUSTOM_HID Class Spec release number */ 0x01, 0x00, /* bCountryCode: Hardware target country */ 0x01, /* bNumDescriptors: Number of CUSTOM_HID class descriptors to follow */ 0x22, /* bDescriptorType */ USBD_CUSTOM_HID_REPORT_DESC_SIZE, //38 /* wItemLength: Total length of Report descriptor */ 0x00, /******************** Descriptor of Custom HID endpoints ********************/ /* 27 */ 0x07, /* bLength: Endpoint Descriptor size */ USB_DESC_TYPE_ENDPOINT, //0x05 /* bDescriptorType: */ CUSTOM_HID_EPIN_ADDR, //0x81 /* bEndpointAddress: Endpoint Address (IN) */ 0x02, /* bmAttributes: bulk 0x00, /* wMaxPacketSize: 2 Byte max */ 0x02, CUSTOM_HID_HS_BINTERVAL, //0x00 /* bInterval: Polling Interval */ /* 34 */ 0x07, /* bLength: Endpoint Descriptor size */ USB_DESC_TYPE_ENDPOINT, //0x05 /* bDescriptorType: */ CUSTOM_HID_EPOUT_ADDR, //0x01 /* bEndpointAddress: Endpoint Address (OUT) */ 0x02, /* bmAttributes: bulk 0x00, /* wMaxPacketSize: 2 Bytes max */ 0x02, CUSTOM_HID_HS_BINTERVAL, //0x00 /* bInterval: Polling Interval */ /* 41 */ }; неясно, накой секция с /* 18 */ , вроде выбивается из общего строя, но пробовал исключать, ни на что не влияло... и обмен булками тоже сразу поставил... Report я уже показывал: /* USER CODE BEGIN 1 */ 0x06, 0x00, 0xff, // USAGE_PAGE (Generic Desktop) 0x09, 0x01, // USAGE (Vendor Usage 1) 0xa1, 0x01, // COLLECTION (Application) //7 0x85, 0x01, // REPORT_ID (1) 0x09, 0x01, // USAGE (Vendor Usage 1) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x75, 0x08, // REPORT_SIZE (8) 0x95, CUSTOM_HID_EPIN_SIZE, // REPORT_COUNT (4) 0xb1, 0x82, // FEATURE (Data,Var,Abs,Vol) //21 0x85, 0x01, // REPORT_ID (1) 0x09, 0x01, // USAGE (Vendor Usage 1) 0x91, 0x82, // OUTPUT (Data,Var,Abs,Vol) //27 0x85, 0x02, // REPORT_ID (4) 0x09, 0x02, // USAGE (Vendor Usage 4) 0x75, 0x08, // REPORT_SIZE (8) 0x95, CUSTOM_HID_EPIN_SIZE, // REPORT_COUNT (4) 0x81, 0x82, // INPUT (Data,Var,Abs,Vol) //37 /* USER CODE END 1 */ 0xC0 /* END_COLLECTION */ В общем пребываю в не понятках..., вроде все вылизал... но тупит, P/S сорри за форматирование, что то оно при вставке развалилось...( P/S/S а вот коммент расшифруйте плис ......P.S. После настройки bulk обмена, все Report Descriptor-ы и иже с ними можно удалять....
  3. 0x95, CUSTOM_HID_EPIN_SIZE допустим - CUSTOM_HID_EPIN_SIZE = 64 это что, ассоциация с длиной посылки, или 64 блока по 64 байта... и таких нюансов судя по всему хватает..., и что за что цепляется не совсем понятно... Вот и интересен рабочий макет для перегона данных на макс. скорости... почему в КУБ не засунули такой примитив непонятно...но там своя глубина мысли... и самое гадкое, что на прсторах сети подобные макеты необнаруживаются, или искал не там...
  4. Прошу помощи у вселенского разума... суть проблемы... есть отладочная плата, STM32F746ZG + модуль расширения USB3300, задача получить максимально возможную скорость обмена с PC... желательно, точка отправления: проект на CubeMX, какой нибудь CASTOM HID поправленый в нужную сторону, с одной стороны, ну пусть работает как эхо, что нибудь принял, это же выплюнул... другой стороны что нибудь простенькое например на QT, либа libusb, шлем килограмм байтов в эндпойнт, читаем этот же килограм в ответ, ну пусть количество килограмм за секунду... Цель, максимально приблизиться к аппаратной скорости порта в 480 МГЦ... На просторах инета рабочих макетов такой пары не обнаружил, везде только проэкты с мышами и джойстиками в FS моде... да расплывчатые рассуждения, из категории, вот я вчера пытал контроллер с USB... Короче, если не жалко, выложите такой рабочий тестовый макет, или ткните носом в практическую реализацию... а то уже моск расплавился, обмен получается забавно плавающих результатах от 500 килобит до 50-60 мегабит, причем непредсказуемо... да и увековечитесь в анналах...