cancel
Showing results for 
Search instead for 
Did you mean: 

USB HOST on stm32f469 and Composite Device

Aleksandr_Titkov
Associate

I have custom board on stm32f469. And I try add to HAL HID library my USB device. But I have some problem.

Device have 2 interfaces. 1 endpoint in first and 2 endpoins in second (interface).

In this case USBH_HID_GetHIDDescriptor give me descriptor, but for 1st interface.

How receive descriptors and data from 2nd interface?

Capture when I connect to PC: Device - Device ID (followed by the endpoint for USB devices)

--------------------------------------------------------------------------------------------------------------------------

Device | Length | Phase | Data                                               | Description      

--------------------------------------------------------------------------------------------------------------------------

 12.0           CTL | 80 06 00 01 00 00 12 00                        | GET DESCRIPTOR 

---------------------------------------------------------------------------------------------------------------------------

 12.0       18 IN  | 12 01 01 02 00 00 00 40 08 28 c9 81|

00 02 01 02 00 01 |               

---------------------------------------------------------------------------------------------------------------------------

12.0           CTL | 80 06 00 02 00 00 09 00 | GET DESCRIPTOR

--------------------------------------------------------------------------------------------------------------------------

 12.0        9 IN | 09 02 42 00 02 01 00 a0 32

---------------------------------------------------------------------------------------------------------------------------

12.0           CTL | 80 06 00 02 00 00 42 00 | GET DESCRIPTOR

----------------------------------------------------------------------------------------------------------------------------

12.0       66 IN  | 09 02 42 00 02 01 00 a0 32 09 04 00... (return full description)

----------------------------------------------------------------------------------------------------------------------------

I can repeat it in board. I see CTR in phost->Control.setup.d8. And I receive descriptors.

But next in PC cupture:

--------------------------------------------------------------------------------------------------------------------------

Device | Length | Phase | Data                                               | Description      

--------------------------------------------------------------------------------------------------------------------------

13.0         CTL | 80 06 00 02 00 00 09 00 | GET DESCRIPTOR

 13.0        9 IN | 09 02 29 00 01 01 00 a0 32 ( ! another size return!!! )

-------------------------------------------------------------------------------------------------------------------------

14.0           CTL | 80 06 00 02 00 00 09 00

 14.0        9 IN  | 09 02 22 00 01 01 00 a0 32

3 same CTR return 3 variors size of description. The same situation if I try receive HID_report_description. In stm only 1 report, in PC capture 2 different ( 1 unic for every interface)

The problem is that I cant receive data. Data located in 16.0 device (from PC capture). But I can receive data/descriptors only from device 12.0

Help undestand me, when I wrong in library implementation

0 REPLIES 0